Backpropagation
다층 퍼셉트론(MultiLayer Perceptron, MLP)에 사용되는 Backpropagation 학습 알고리즘의 정의와 이를 이해하기 위해 체인룰, 시그모이드 함수 미분법, 교차 엔트로피 함수에 대해 알아본다.
Backpropagation
- 역방향으로 오차를 전파시키면서 각 층의 가중치를 업데이트하고 최적의 학습 결과를 찾아가는 방법(알고리즘)
- 내가 뽑고자 하는 target값과 실제 모델이 계산한 output이 얼마나 차이가 나는지 구한 후 그 오차값을 다시 뒤로 전파해가면서 각 노드가 가지고 있는 변수들을 갱신하는 알고리즘이다.
- 출력층 바로 전 layer에서부터 기울기(미분값)을 계산하고 이를 점점 거꾸로 전파시키면서 전 layer들에서의 기울기와 서로 곱하는 형식으로 나아가면 최종적으로 출력층의 output에 대한 입력층에서의 input의 기울기(미분값)을 구할 수가 있다.
Chain Rule
- 미분한다는 말은 ‘기울기를 구한다’는 것과 같다. 이는 또다른 말로 ‘변화량을 구한다’라고도 할 수 있다.
- 함수 f,g가 있을 때 f와 g가 모두 미분 가능하고 F=f(g(x))로 정의된 함수이면 F는 미분 가능하다. 이때 F를 미분한다면 다음 순서로 체인룰을 적용해 계산할 수 있다.
- x가 변화했을 때 함수 g가 얼마나 변하는가를 확인한다.
- 함수 g의 변화로 인해 함수 f가 얼마나 변하는가를 확인한다.
- 함수 f의 인자가 함수 g이면 최종 값 F의 변화량에 기여하는 각 함수 f와 g의 기여도를 알 수 있다.
Sigmoid Function 미분
- 1986년 렘멜하트 등의 논문에서는 시그모이드를 활성함수로 사용한다.
- 경사 하강법을 사용하여 가중치 최적화 문제를 해결하기 위해서는 연결 가중치에 대한 손실함수의 편미분을 구해야한다. 이때 시그모이드 함수의 미분값이 사용된다.
Cross Entropy Function
- 다중 클래스 분류 문제의 경우 교차 엔트로피(cross entropy) 함수가 적합하다.
- 엔트로피가 크다는 것은 사건 A의 확률이 낮다는 것으로, 엔트로피는 “어떤 상태에서의 불확실성”이라 할 수도 있다. 예측하기가 어려운 사건일수록 정보량이 많아지고, 엔트로피도 커지게 된다.
- 정보 이론에 따르면 흔히 볼 수 있는 사건(상대적으로 확률이 큰 사건)일수록 정보량이 낮고, 매우 희귀하게 발생하는 사건(상대적으로 확률이 작은 사건)은 정보량이 매우 크다.
- 정보량에 로그가 사용되는 이유는 다음과 같은 정보량의 성질 때문이다. 이 4가지 조건을 모두 만족하는 것이 로그이다.
- 정보량은 항상 0보다 크다.
- 항상 발생하는 사건은 정보량이 0이다.
- 자주 일어나는 사건일수록 정보량은 0에 가깝다.
- 독립적인 사건들의 정보량 합은 각 사건의 합이어야 한다.
- 교차 엔트로피 오차는 정답에 해당하는 출력이 커질수록(정답에 근접할수록) 0에 다가가다가, 그 출력이 1일 때 0이 된다.(불확실성이 없다)
- 반대로 정답에 해당하는 출력이 작아질수록(정답에서 멀어질수록) 오차는 커진다.
댓글남기기