Data Science/Deep Learning

1. Overfitting의 해결

HJChung 2020. 4. 25. 17:09

1. Overfitting이란

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

데이터셋의 구성은 학습 데이터/ 검증 데이터/ 테스트 데이터로 구성되어 있습니다. 

- 학습 데이터: 학습 과정에 보여지고, 실제 모델을 학습하는 데에 사용되는 데이터 (50-70%)

- 검증 데이터: 학습 과정에 보여지는 데이터이지만, 모델 학습에 사용하지 않고 학습이 잘 되는지 검증하는데만 사용하는 데이터( 5-15%)

- 테스트 데이터: 학습 과정에서는 사용하지 않고, 학습을 마친 모델을 평가하기 위해 단 한번만 사용하는 데이터(30-50%)

출처: fastcampus

 

 

이때 그림과 같이 Train set에서는 학습 점수가 잘 나오는데, Dev set에서는 잘 나오지 않을 때, 일반화가 잘 되지 않아서 overfitting이 발생했다고 볼 수 있습니다.

 

 

 

 

 

2. Overfitting 방지 방법

1) Early Stopping 

: 최적 학습 지점에서 학습을 중단하는 방법으로, Validation loss가 여러 Epoch 동안 감소하지 않으면 Overfitting으로 간주하여 학습을 중단합니다. 그러나 위의 그래프처럼 smooth하게 나오지 않고 fluctuation이 발생하기 때문에 tolerance를 지정하여 시점을 판단해야 합니다. 

 

2) Dropout

: 지정한 비율의 뉴런을 제거하고 학습하는 방법입니다. 

테스트 시에는 모든 뉴런을 사용하기 때문에, 여러 Network를 Ensemble한 효과(random하게 선택된 data로 학습하고, 각각의 network를 합쳐서 테스트 시에 사용한다는 점에서) 를 가집니다. 

 

3) Batch Normalization

: batch normalization은 모든 계층의 feature가 동일한 Scale이 되어 scale에 따라 학습이 편향되는 것을 막을 수 있다고 

https://libertegrace.tistory.com/entry/Lecture-6-Training-Neural-Networks-Part-1

 

Lecture 6. Training Neural Networks Part 1

Training Neural Network는 전체적으로 1. One time setup activation functions,preprocessing, weight initialization, regularization, gradient checking 2. Training dynamics babysitting the learning proc..

libertegrace.tistory.com

에 정리하였습니다. 

즉, feature을 그대로 사용하지 않고 변형하여 학습하기 때문에 overfitting을 개선하는데 도움을 줍니다.