본문 바로가기
▶개발/머신러닝&딥러닝(ML,DL)

딥러닝 Backpropagation, L2 regularization

by 브라더 준 2018. 6. 2.

@ Backpropagation

- 자동적으로 W와 b를 학습하기 위해서는 영향값(어떠한 점에서의 미분값)이 필요함.



- 그러나 NN이 매우 복잡한 형태이므로 미분을 하는 것이 매우 어렵다. 각각의 input에서 output에 미치는 영향을 모두 알아내는 것이 어렵다. 

- 그래서, Paul, Hinton이 Backpropagation 알고리즘을 고안해냄. 이는 예상값과 실제 출력의 차이, 즉 cost를 갖고 뒤에서 부터 앞으로 쭉 되돌아오면서 미분값(영향을 미치는 것)을 어떻게 조정해야 하는지 알 수 있음.





- 여기서 두 가지의 방법을 차례대로 적용하여야 한다. 첫번째로 forward, 학습데이터에 주어진 w, x, b를 이 그래프에 대입한다

- 그리고 backward로 실제 미분값을 구함. 이 과정에서 복합된 미분을 간단한 미분들의 곱으로  적용.하여 풀어냄.



- 식이 복잡하더라도 뒤에서부터 차근차근 영향값(미분)을 계산한다. 여기서 복합된 미분들을 간단한 미분들의 곱의 형태로 표현하여 풀어낼 수 있음(Chain Rule). 즉 f에 관한 x의 변화도는 f에 관한 g의 변화도와 g에 관한 x에 변화도(local - g=x*y)을 곱하여 알 수 있음.




@ L2 regularization

- overfitting은 trainning data에만 지나치게 적응하여 test data에 제대로 반응하지 못하는 현상이다. 

- 여기서 L2 regularization은 가장 일반적으로 사용되는 일반화 기법이다. overfitting은 가중치 매개변수의 값이 커서 발생하는 경우가 많기에 가중치가 클수록 패널티를 부과하여 overfitting을 억제한다.


-목적함수에서 직접적으로 모든 파라미터들의 제곱된 규모에 제약을 주는 것으로 구현될 수 있다. 즉, 네트워크에서 모든 가중치에 대해, 우리는 1/2 λ w^2 를 목적함수에 더한다(λ는 정규화 강도). 

-앞에 붙은 1/2은 이 파라미터 w에 대해 그라디언트를 구할 때 2λw 대신 λw 이기 때문에 자주 보인다. L2 정규화는 직관적으로 값이 큰 가중치 벡터들에게 제약을 주는 것으로 해석할 수 있고, 가중치 벡터들이 퍼지는 것을 선호한다. 선형 분류기 절에서 했듯이, 가중치와 입력변수 사이의 곱해지는 상호작용 때문에 입력 변수의 대부분 보다 몇몇 입력 변수를 더 많이 사용하는 것 대신에 이들 입력 변수의 전부를 사용하는 것을 돕는 매력적인 성향을 가진다. 마지막으로, 기울기 강화 파라미터 업데이트 동안, L2 정규화를 사용하는 것은 궁극적으로 모든 가중치가 연속적으로 붕괴됨을 의미한다. W += -lambda * W 로 0을 향해 간다.



참고사이트 : 

http://ishuca.tistory.com/382

http://umbum.tistory.com/222

반응형