DEEP LEARNING/COURSERA

[COURSERA] Improving Deep Neural Networks 4

손혜정 2018. 5. 13. 11:01

Logistic Regression을 생각해 볼때,


 Regularization은 Loss Function 뒤에 Regularization 항을 추가하면 된다.

 일반적으로 R1, R2 Regularization이 있으며 아래와 같다.


왜 b에 대해서는 항을 추가하지 않는지 궁금해할수도 있다. b는 상수값인데 네트워크 파라미터에서 W에 비해 b는 너무 작기때문에 보통 생략을 한다.


여기서, 람다는 파이썬에서 제공되는 기능의 이름이기 때문에 우리가 실제로 사용할때는 lambd로 사용을 하도록 하자.




모든 레이어에 대해서 J가 아래라고할떄, (w[l],b[l]은 마지막 레이어의 파라미터들)

각 레이어 l에 대한 hidden Units들이 존재하기 때문에 W : ( n[l-1]*n[l-1]) 차원이다.

따라서,



위와같이 Regularization 항이 되며, R2라고 불리는게 더 익숙하게씨만 "Frobenius norm"이라고 불린다. 또한 사용도 ||w||2 가 아닌 ||w||F라고 사용한다.


이제, 이것을 어떻게 미분하여 적용할것인가?


기존의 Loss function의 미분은 다음과 같았다.


 dW[l] = (form backprop)

 W[l] := W[l] - adW[l]


그리고 Regularization 항은 backprop 뒤에 추가해주는 것이기 때문에


W[l] := W[l] - a [(backprop) + Reg2] 이고 이를 다시 풀어쓰면

위와 같아진다.

결국 W[l]의 값을 좀 더 작게 만듦으로써 과적합을 줄이도록 하는것이다.


이 방법은 L2 Regularization, 또한 Weight descent라고 불린다 :)