역전파 알고리즘 (Backpropagation) , L2 Regularization 간단 정리
역전파 즉, 오차 역전파법/오류 역전파 알고리즘이라 불리우는 Backpropagation은 다층 퍼셉트론 학습에서 사용되는 통계적 기법을 의미한다.
인공신경망 (Artificial Neural Network)을 학습 시킬 때 사용하는 일반적인 알고리즘이며, 장점으로는 계산적 편의성을 내세우고 있다.
역전파 알고리즘의 특징으로는, Input과 Output을 알고 있는 상태 즉, 지도학습에서 신경망을 학습시킨다.
[수식]
target : 결과값으로 얻기 바라는 값
output : 실제로 얻은 결과값
E : 오차
여기서 total 값은, 모든 output에서 발생한 오차의 합이며, 최종 목적은 오차에 관한 함수 E 값을 0에 가깝도록 하는 것이다.
오차가 최대한 0에 가까워 진다면, 그때를 기준으로 정답 값들을 산출할 수 있다.
알고리즘 그 자체는 단순한 편이며, 크게 3단계로 이루어져 있고, 1~3을 학습횟수만큼 반복하며 오차를 0에 가깝게 줄여나간다.
1단계
기존에 설정되어 있는 가중치 W 를 사용해 net(활성함수를 적용하기 이전)과 out (활성함수를 적용한 이후)를 계산한다. (Forward PASS)
2단계
전체 오차를 각 가중치로 편미분한 값을 기존의 가중치에서 뺀다. (오차를 줄이고 편미분값을 더하며 최대값을 찾아내는 과정이다)
3단계
모든 가중치 W에 2단계를 실행한다. (output쪽부터 Input쪽까지 역방향으로)
이후 epoch만큼 1단계~3단계를 반복한다.
한계점
가장 보편적이지만 한계점은 존재한다.
경사하강법의 특성상 항상 Global Minimum 즉, 전체의 최솟값을 찾을 수 있다고 보장할 수 없다. 파인부분이 많을수록, 러닝 초기값이 이상할수록 틀릴 확률이 증가한다.
L2 Regularization (L2 정규화)
데이터를 학습시키면서, OverFitting 문제가 발생하는 경우가 많다.
가장 확실한 해결 방안은 학습데이터의 양을 충분히 늘리는 것이다.
하지만 학습데이터를 충분히 얻지 못하는 경우도 분명히 있고, 그럴 때 사용해볼 수 있는 방법중 하나로 Regularization 즉, 일반화(정규화)이다.
이 용어는 통계학에서 사용되던 용어로, 통계적 추론을 할 때, Cost Function을 최소화하는 쪽으로 진행을 하게 되는데, 그러다보면 특정 가중치 값들이 커지면서 오히려 결과를 나쁘게 만들어 버리는 경우가 발생한다.
이 그림과 같이, 일반화를 통하여 가장 이상적인 그래프를 그릴 수 있도록 만들면, 결과를 보다 좋게 만들 수 있다.
그중에서도 L2 Regularization은 아래와 같은 수식으로 표현이 가능하다.
: 원래의 Cost Function
: 학습 데이터의 개수
: regularization 변수
: 가중치
위 식처럼 일반화 항목이 들어가면, 원래 Cost Function이 작아지는 방향으로만 진행되는 것이 아닌, w값들도 최소가 되는 방향으로 진행하게 된다.
L2 regularization의 특징으로는 모든 파라미터의 제곱 만큼의 크기를 목적 함수에 제약으로 걸어 가중치 값을 고르게 편다.