본문 바로가기

AI/이론

dropout 적용코드 살펴보기

드롭아웃이란 트레이닝 중 오버피팅이 발생하는 것을 막기 위해 일부 뉴런이 동작하지 않도록 하는 것이다. 

 

 

 

 

 

CIFAR-10 이미지 분류를 위한 CNN을 구성해보자! (Keras)

Overview이 문서에서는 CIFAR-10 dataset에 대한 이미지 분류를 Keras를 사용한 CNN(Convolution Neural Network)로 구현해보도록 하겠습니다.

gruuuuu.github.io


 

은닉층에 드롭아웃(dropout)을 확률 pp 로 적용하는 경우, 은닉 유닛들을 pp 확률로 제거하는 것이 됩니다. 이유는, 그 확률을 이용해서 출력을 0으로 설정하기 때문입니다. 이를 적용한 네트워크는 아래 그림과 같습니다. 여기서 h2h2  h5h5 가 제거되었습니다. 결과적으로 yy 를 계산할 때, h2h2  h5h5 는 사용되지 않게 되고, 역전파(backprop)을 수행할 때 이 것들에 대한 그래디언트(gradient)들도 적용되지 않습니다. 이렇게 해서 출력층으ㄹ 계산할 때 h1,,h5h1,…,h5 중 어느 하나에 전적으로 의존되지 않게 합니다. 이것이 오버피팅(overfitting) 문제를 해결하는 정규화(regularization) 목적을 위해서 필요한 것입니다. 테스트 시에는, 더 확실한 결과를 얻기 위해서 드롭아웃(dropout)을 사용하지 않는 것이 일반적입니다.

 

3.13. 드롭아웃(dropout) — Dive into Deep Learning documentation

 

ko.d2l.ai

 

'AI > 이론' 카테고리의 다른 글

[ML] 참고  (0) 2021.04.06
[ML] CNN  (0) 2021.04.06
기계학습과 데이터마이닝  (0) 2021.02.18
인공지능, 기계학습, 데이터 마이닝  (0) 2021.02.18
[ML] Random forest regression  (0) 2021.02.12