Overfitting

Overfitting은 학습 데이터에 너무 편향되게 학습이 되어,

다른 데이터가 들어왔을때 성능이 떨어지는 현상을 일컫습니다.

 

오른쪽 표를 보면 Training Set에서는 높은 Accuracy를 보이지만,

Test Set에서는 낮은 Accuracy를 보이게 됩니다.

 

그래서 이러한 Overfitting을 완화시켜 주기 위해서

Network에 규제를 가하여 중요한 정보만 담고 부수적인 정보를 제한하는

Regularization을 사용하게 됩니다.

 

 

 


우선 Regularization에서 2가지 방법을 소개하겠습니다.

 

Weight Decay

\(L_2\)공식을 보면 기존 손실함수의 output에 가중치의 제곱의 합을 더해주게 됩니다.

 

즉, 역전파를 진행하면서 기존 loss function과 penality 두가지 모두를 낮추는 겁니다.

다른 말로는 가중치가 커지는것을 규제하는 것입니다.

 

 

\(L_2\) : 큰 가중치는 많이 낮추고 작은 가중치는 적게 낮춘다.

\(L_1\) : 가중치를 동일하게 낮추어 작은 가중치는 사라지게 된다.

 

 

\(L_2\) 손으로 풀기

 

 

 


DropOut

 

뉴런들을 일정 비율로 랜덤하게 비활성화 시킵니다.

여기서 비율을 사람이 정해주는 parameter 입니다.

 

Test 시에는 뉴런들은 비활성화 시키지 않습니다.

 

DropOut의 효과

 

1. 노드 간 동조현상(co-adaptation) 을 막을 수 있다.
 - 노드를 무작위로 생략함으로써 신경망 구조의 고질적 이슈인 동조현상을 막을 수 있다.

 

예를 들어, 힌튼 교수의 해석입니다.

은행 창구에 갔는데 창구 직원이 정기적으로 바뀝니다.

그 이유는 직원들이 담합을 하여 부정 행위를 일으킬 수 있는 행위를 사전에 방지하는 것입니다.

 

즉, 뉴런간의 담합을 막는거라고 할 수 있습니다.

 

2. Overfitting을 막을 수 있다.
 - 마찬가지로 노드를 생략함으로써 모델을 간소화시키는 효과가 있습니다.

 

3. 앙상블 효과를 얻을 수 있다.
 - 매번 다른 형태의 노드 조합으로 학습하기 때문에 앙상블 효과를 얻어 성능을 향상시킬 수 있습니다.

 

 

 

 

 

 

 

출처:

https://www.youtube.com/watch?v=7wv1sjqS5IE&list=PLBiQZMT3oSxXNGcmAwI7vzh2LzwcwJpxU&index=8

+ Recent posts