건조젤리의 저장소

10-3. NN dropout and model ensemble 본문

공부 기록/모두를 위한 딥러닝 (Basic)

10-3. NN dropout and model ensemble

건조젤리 2019. 11. 11. 15:00

김성훈 교수님의 강의내용을 정리한 내용입니다.

출처 : http://hunkim.github.io/ml/

 

모두를 위한 머신러닝/딥러닝 강의

 

hunkim.github.io


오버 피팅이란 학습 데이터에 모델이 과도하게 적응하여 새로운 데이터에 대한 분별력을 잃어버리는 현상을 말합니다.

모델이 오버 피팅인지 알 수 있는 방법은 학습 데이터와 테스트 데이터의 정확도 차이를 보면 알 수 있습니다.

 

지난 시간에는 오버 피팅을 해결하기 위해 Regularization(일반화) (7장 참고) 를 이용했습니다.

 

이번 시간에는 Dropout기법을 알아보도록 하겠습니다.

Dropout

Dropout이란 학습 시 임의의 노드를 0으로 설정하는 방법입니다.

이 방법을 이용하면 특정노드에 모델이 의존적으로 바뀌는 것을 억제할 수 있다.

 

또한 학습 데이터에 의해 가중치들의 서로 동조화 되는 현상을 억제할 수 있고

모델 결합에 의한 투표효과(Voting)이 생기게 되고 학습의 성능이 개선된다고 한다.

 

참고: https://m.blog.naver.com/PostView.nhn?blogId=laonple&logNo=220818841217&proxyReferer=https%3A%2F%2Fwww.google.com%2F


Tensorflow에서는 Dropout을 이미 구현해 놓았다.

이 함수를 사용할때 우리는 Dropout비율을  잘 설정하면 된다.

주의할 점은 테스트를 할 때는 비율을 1로 설정해야 한다는 점이다.

앙상블이란 독립적으로 모델을 만든 뒤 각 모델을 학습시킨 후,

테스트 시 각 모델의 결과들을 합하여 최종 결과를 뽑아내는 방법을 말한다. (Voting)

 

이러한 방법을 통해 4~5%의 성능 향상을 얻을 수 있다.

 

(Dropout의 원리와 관련이 있다!)

Comments