IT Repository

(7) Regularization 본문

Basic fundamentals

(7) Regularization

IT찬니 2020. 1. 13. 17:51

 

 

 

 

Regularization

Regularization이란 Overfitting을 막기 위해, 모델 내에서 트레이닝 셋의 Global Minimum에 최적화되지 않도록 훈련에 제약을 걸어두는 방법입니다.
즉, 훈련을 조금 방해해서 트레이닝 셋을 외워버리는 것을 막기 위한 방법입니다.

 

L2 Regularization

$\text{Loss} = \text{MSE} + R(\lambda) \\ R(\lambda) = \lambda \cdot ||w||^2$
($\lambda$: Regularization의 강도를 결정하는 상수, $||w||^2$: L2-Norm)

L2 Regularization의 기본 개념은 간단합니다.
모델이 인식하는 Loss를 더 크게 만들어서 훈련이 수렴해버리는 것을 막고자 함입니다.
Loss를 더 크게 만들기 위해서 Loss에 L2 Norm값을 더해주게 됩니다.
L2-Norm의 $w$값은 학습을 통해 계속해서 업데이트되며, 오직 $\lambda$값으로 최종적인 L2-Norm의 값을 결정하게 됩니다.

(1)
이제 훈련이 진행된다고 가정해보죠.
훈련이 진행됨에 따라 모델은 트레이닝 셋의 Loss가 Global Minimum으로 수렴하게 될 것입니다.
이는 모델이 트레이닝 셋에 최적화되었음을 의미하고 Overfitting과 같은 의미가 되어버립니다.

(2)
이제는 L2 Regularization을 적용했다고 가정해봅시다.
$R(\lambda)$는 $w$라는 파라미터가 있었고, 훈련이 진행되면서 $R(\lambda)$ 역시 Global Minimum을 향하게 될 것입니다.
L2 Regularized Loss를 구하면 트레이닝 셋과 $R(\lambda)$의 Global Minimum을 더하게 됩니다.

이는 두 값의 타협점으로 수렴하게 하는 효과가 생기게 됩니다.
즉, 트레이닝 셋의 Global Minimum을 벗어나도록 하여 Overfitting을 피하게 되는 효과를 발생시켰습니다.

 

Dropout

Dropout의 개념은 이전의 L2 Regularization보다 더 간단합니다.
모델의 Capacity가 너무 큰 것이 Overfitting의 문제라면 강제로 Capacity를 줄이는 것입니다.
즉, 일정 확률(P)로 랜덤하게 선택된 node를 꺼버리는 것입니다. (= W를 0으로 만듬)

Dropout은 간단한 방법이지만 단순함에 비해 상당한 장점을 가지고 있습니다.

(1)
강제적으로 모델 파라미터의 수를 줄여줍니다.
단순하게 파라미터의 수를 줄여버림으로써 복잡하게 예측하지 않고 간단하게(General) 예측하도록 만들어 줍니다.

(2)
특정 node를 꺼버림으로써 상대적으로 잘 훈련되지 않는 다른 node들의 훈련을 돕습니다.

큰 규모의 모델을 학습하다보면 특정 node의 영향력이 너무 커질때가 있습니다.
예를 들자면 A, B의 두 개의 node가 있을 때, A의 영향력이 너무 커서 B의 값이 무엇이 되든지간에 결과에 영향을 주지 못하는 것을 말합니다.
훈련을 통해 최적화하는 경우에 B의 값은 A의 영향력으로 인해, 최적화되지 않고 임의의 값이 되어버립니다. (결과에 영향이 없기 때문입니다.)
Dropout은 A의 영향력을 없애버림으로써 B가 제대로 학습할 수 있도록 만들어 줍니다.

(3)
Dropout은 일종의 앙상블 효과를 얻게 해줍니다.
랜덤한 node를 꺼버리기 때문에 어떤 node가 선택되었는지에 따라 다른 모델이 되는 셈입니다.
서로 다른 모델의 결과를 통해 최적화해나가기 때문에 앙상블과 유사한 효과를 낼 수 있습니다.

참고.
앙상블은 작은 모델 여러 개의 결과를 합쳐서 최종 결과를 내는 모델 설계방법입니다.
이러한 앙상블을 잘 적용하는 방법은 각 모델을 최대한 서로 다른 모델으로 구성하는 것입니다.
잘 와닿지 않는다면 "장님의 코끼리 만지기" 사례를 생각해보면 좋을 것입니다.

(참고. Dropout은 각 Batch마다 적용하게 됩니다.)

'Basic fundamentals' 카테고리의 다른 글

(9) Other Techniques of Optimize  (0) 2020.01.13
(8) Gradient Vanishing  (0) 2020.01.13
(6) Overfitting  (0) 2020.01.13
(5) Model Capacity  (0) 2020.01.13
(4) What is Backpropagation?  (0) 2020.01.06
Comments