모두를 위한 딥러닝

[DL] 모두를 위한 딥러닝 10-3 NN dropout

승무_ 2022. 4. 5. 10:00

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

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

 

지난 시간에는 오버 피팅을 해결하기 위해 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


*)한단을 더 만들어 dropout한걸 다음 layer로 보낸다.

*)0.7->70%만 참여해 30% OUT

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

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

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

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

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

 

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

 

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