목록딥러닝 (42)
Broccoli's House
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 학습 관련 기술 : 초기 가중치 설정 가중치의 초깃값 - 가중치의 초깃값을 지정해주는 일은 학습에서 매우 중요한 부분이다. 지정해 주지 않으면 컴퓨터가 무작위로 가중치의 초깃값을 지정하고 학습을 해나가는데, 만약 가중치의 초깃값이 최적값과 멀리 떨어져있다면 학습하는데 오랜 시간이 걸리게 된다. 또한 오래 학습할 경우 과대적합(Overfitting)의 가능성을 내포하고 있으므로 초기 가중치를 설정하여 빠르게 학습하는 것이 매우 중요하다. - 가중치 감소(Weight Decay) : 가중치 감소는, 간단히 말해서 가중치 매개변수의 값이 작아지도록 학습하는 방법이다. 가중치 값을 작게 하여 과대적합이 일어나지 않게 하는 것이다. 특정 가중치 값을 0으..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 학습 관련 기술 : 매개변수 갱신 매개변수 갱신 - 최적화(Optimization) : 학습 모델과 실제 레이블과의 차이는 손실 함수로 표현되며, 학습의 목적은 오차, 손실 함수의 값을 최대한 작게 하도록하는 매개변수(가중치, 편향)를 찾는 것이다. 즉, 매개변수의 최적값을 찾는 문제이며, 이러한 문제를 푸는 것을 최적화라 한다. - 손실 함수를 최소화하는 매개변수를 찾는 방법에는 여러 가지가 있다. 가장 간단하게는 손실 함수의 그래프에서 가장 낮은 지점을 찾아가도록 손실 함수의 기울기를 구해 최적값을 찾아가는 확률적 경사 하강법(SGD)과 이 방법의 단점을 보완한 모멘텀 및 AdaGrad, Adam 방법 등이 있다. 이것들을 하나하나 알아보도록..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 오차역전파법 : 역전파 및 예시 계산 그래프 - 계산 그래프(Computational Graph) : 계산 그래프란 계산 과정을 그래프로 나타낸 것이다. 그래프는 자료구조의 일종으로 여러 개의 노드(node)와 그 노드들을 잇는 선, 엣지(edge)로 표현된다. 덧셈 역전파 - z=x+y 수식을 계산 그래프로 나타내면 왼쪽 위와 같다. 우측은 좌측의 계산 그래프의 역전파이다. 계산 그래프의 최종 출력이 L이라하면, z가 L에 끼치는 영향력은 ∂L/∂z으로 표현된다. 마찬가지로, x가 최종 출력 L에 끼치는 영향력은 ∂L/∂x, y가 최종 출력 L에 끼치는 영향력은 ∂L/∂y이다. ∂L/∂x에 연쇄 법칙을 적용하면 ∂L/∂x는 ∂L/∂z에 ∂z/∂..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 오차역전파법 : 소개 오차역전파법 - 오차역전파법(Back Propagation) : 신경망 학습에서, 신경망의 가중치(weight)에 대한 손실 함수의 기울기를 구하기 위해 미분을 사용했다. 미분 계산은 단순하고 구현하기 쉽지만, 시간이 오래걸리는 단점이 존재한다. 즉 초기 가중치에서의 손실 함수를 계산하고 그것을 미분하여 다음 가중치 계산에 사용하는데, 뉴런이 많아져 각 노드의 매개변수(가중치, 편향)가 많아지면 그 모든 매개변수를 학습시키기란 매우 어렵다는 것이다. 이것을 효율적으로 하기 위한 것이 오차역전파 알고리즘이다. - 학습이란 각 뉴런의 매개변수(가중치, 편향)에 의해 계산된 최종 출력을 토대로 손실함수(데이터의 레이블과 실제 출력..
5회차 - (4) 훈련 데이터 수집 및 저장 훈련 데이터 수집 - 딥러닝 모델을 만들어 학습시키기 위하여 앞서 작성했던 파이썬 코드들을 사용하여 훈련 데이터를 수집한다. 하나의 파이썬 파일 안에 스크린 이미지를 추출하는 코드와 로지텍 G27에서 조향, 엑셀, 브레이크 데이터를 추출하는 코드를 동시에 작성하는 경우, 전체 코드가 복잡해지고 깔끔하지 못하다. 따라서 두 개를 분리하여 다른 파이썬 파일 안에서 작성하고 훈련 데이터를 모으는 파이썬 파일을 새로 만들어, 모듈로써 각 기능을 하는 함수를 불러오도록 한다. 이미지 추출 모듈 및 함수 작성 - 컴퓨터 스크린을 촬영하고 이미지의 크기 조절 및 흑백 처리를 해주는 함수를 작성하고, 이미지를 저장해주는 함수를 따로 작성한다. 그 이유는 훈련 데이터를 다 모..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 신경망 학습 : 경사 하강법 경사법 - 경사법(Gradient Method) : 머신러닝 모델은 학습 시에 최적의 매개변수(가중치와 편향)를 찾는다. 최적이란, 손실 함수가 최솟값이 될 때의 매개변수 값이다. 따라서 기울기를 이용하여 손실 함수의 최솟값을 찾으려는 것이 바로 경사법이다. 일반적으로 기계 학습을 최적화하는데 사용되고, 특히나 신경망 학습에 많이 사용된다. - 손실함수의 첫 위치에서 기울기를 구한다. 기울기가 (+)이면 음의 방향으로, (-)이면 양의 방향으로 일정 거리만큼 이동한 다음, 그 위치에서의 기울기를 다시 구한다. 그리고 그것을 토대로 다시 일정 거리를 이동하는 것을 반복하여, 손실 함수의 값을 점차적으로 줄여나가는 것이 ..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 신경망 학습 : 손실 함수 손실 함수 - 손실 함수(cost function) : 손실 함수란 신경망이 학습할 수 있도록 해주는 지표이다. 머신러닝 모델의 출력값과 사용자가 원하는 출력값의 차이, 즉 오차를 말한다. 이 손실 함수 값이 최소화되도록 하는 가중치와 편향을 찾는 것이 바로 학습이다. 일반적인 손실 함수로 평균 제곱 오차나 교차 엔트로피 오차를 사용한다. 평균 제곱 오차 - 평균 제곱 오차(Mean Squared Error : MSE) : 계산이 간편하여 가장 많이 사용되는 손실 함수이다. 기본적으로 모델의 출력 값과 사용자가 원하는 출력 값 사이의 거리 차이를 오차로 사용한다. 그러나 오차를 계산할 때 단순히 거리 차이를 합산하여 평..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 신경망 학습 학습 - 학습(Learning) : 신경망의 각 노드들은 입력에 가중치를 곱하여 편향을 더한 값을 활성화 함수를 거쳐 출력한다. 학습이란, 신경망 모델의 출력이 사용자가 원하는 값에 수렴하도록 수많은 노드들이 가지고 있는 각각의 가중치와 편향들을 자동으로 획득하는 것을 말한다. 즉, 사용자가 원하는 출력과 모델의 출력이 동일시되거나 수긍할만한 오차에 수렴하는 가중치와 편향을 알아서 찾아가는 것이 바로 머신러닝의 학습이다. - 손실함수(cost function) : 손실 함수는 신경망이 학습할 수 있도록 해주는 지표이다. 사용자가 원하는 출력과 머신러닝 모델 출력 값의 차이 즉, 오차를 말한다. 일반적으로 이 손실 함수 값이 최소화되도..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 군집 알고리즘 : DBSCAN DBSCAN - DBSCAN(Density-Based Spatial Clustering of Applications with Noise) : DBSCAN은 밀도를 기반으로 하여 군집화하는 매우 유용한 군집 알고리즘이다. k-평균 군집이나 계층적 군집 알고리즘의 경우 데이터 간의 거리를 이용하여 클러스터를 나누는데에 반해, DBSCAN 알고리즘은 데이터 포인트가 세밀하게 몰려 있어 밀도가 높은 부분을 군집화하는 방식이다. - 먼저 DBSCAN 알고리즘은 특성 공간(Feature Space)에서 데이터가 밀집해있는 지역의 포인트를 찾는다. 이러한 지역을 특성 공간의 밀집 지역(Dense Region)이라 한다. 이러한 ..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 군집 알고리즘 : 병합 군집 병합 군집 - 병합 군집(Agglomerative Clustering) : 각각의 데이터 포인트를 하나의 클러스터로 지정하고, 지정된 개수의 클러스터가 남을 때까지 가장 비슷한 두 클러스터를 합쳐 나가는 알고리즘. 두 클러스터를 합쳐 나가는 방식에는 모든 클러스터 내의 분산을 가장 작게 증가시키는 두 클러스터를 합치는 방식(Ward), 클러스터 포인트 사이의 평균 거리가 가장 짧은 두 클러스터를 합치는 방식(Average), 클러스터 포인트 사이의 최대 거리가 가장 짧은 두 클러스터를 합치는 방식(Complete) 등이 있다. Ward 방식이 대부분의 데이터 세트에 알맞게 동작한다. - 초기에는 각 포인트가 하나의 클..