- 딥러닝은 신경망을 학습하는 것
- 신경망은 각각의 층 형태로 구성되어 있는데, 각각의 층은 각각의 노드를 가지고 있음
- 또한, 각각의 층에 있는 각각의 노드는 직전 계층과 직후 계층에 있는 노드와 상호 연결되어 있음
- 노드는 수치를 포함하고 있으며, 보통 0.0 ~ 1.0 사이의 값을 가지도록 설정한다고 함
- 신경망에서의 전달은 입력층으로 시작하여 은닉층을 거쳐 출력층으로 전달되는 방식인데, 입력층은 각각의 입력값을 가진 입력노드들을 가지고 있으며 다음층(은닉층)으로 이동할 때 연산 과정을 거친다. 또한 은닉층에서 출력층으로 이동할 때도 연산 과정을 거쳐 최종 출력값이 나오게 된다.
- 어떤 층(a1)에서 다음 층(a2)으로 이동할 때 a1의 각 노드값 각 가중치들의 합과 편차를 합한 값(x1w1+ x2w2 + … + xnwn + b)을 구하고, 해당 값을 활성화 함수를 통해 값을 조정하여 a2의 같은 라인에 있는 노드로 전달함
- 이 때, 사용되는 활성화 함수는 대표적으로 시그모이드 함수, ReLU 함수가 있음
- 위의 입력값을 전달하는 과정에서 가중치(w, 노드 간 연결 강도)와 편차(b, 분계점 역할)를 이용하여 출력값에 영향을 주는데, 이유는 어떤 입력값이 얼만큼 영향을 주어 출력값이 변하는지 확인하고, 이를 조절하면서 출력값과 우리가 원하는 목표값의 차이를 줄일 수 있기 때문
- 가중치와 편차를 어떻게 조절할지는 오차를 활용하여 설정할 수 있다
- 오차를 구하는 함수는 cost function이라 하는데, 해당 함수는 어떤 매개변수(w, b)를 주었을 때 도출되는 각 노드들의 출력값과 목표값의 오차들을 합하여 평균값을 반환함
- 반환값(오차)을 최소화하기 위해 cost function의 매개변수(w, b) 값을 기울기를 통해 조정해준다.
- 다시말해 현재 매개변수(w, b)를 통해 도출된 값에서 cost function이 가질 수 있는 최소값(최소 오차)으로 이동할 수 있도록 기울기를 구하여 기울기에 비례하여 이동시킨다
- 그렇지만 찾은 최소값이 진짜 최소값(global minimum)인지, 그 구간의 최소값인지(local minimum) 보장할 수 없으므로, cost function의 출발지점을 여러 곳에 설정하여 최소값을 찾음으로써 진짜 최소값을 찾을 확률을 높여준다
- 결국 신경망 학습의 궁극적인 목표는 목표값과 출력값의 차이(오차)를 최소화하는 것이라 할 수 있음