개발일기

AI - Dropout을 통한 과대적합 방지 본문

AI/Deep Learning - Machine Learning

AI - Dropout을 통한 과대적합 방지

Flashback 2025. 1. 1. 15:14
728x90
반응형

모델의 과대적합을 방지하기 위해 사용하는 기법이다. 모델의 층이 넓고 깊어지면 훈련용 데이터를 과도하게 적합하여 학습하는 경향이 있다. 이를 바탕으로 학습된 모델은 훈련할 때 만나지 못한 새로운 데이터를 만났을 때 낮은 예측력을 보이게 된다. 이를 바탕으로 훈련 데이터에 너무 익숙하지 않도록 몇몇 노드는 학습에서 제외시키는게 드롭아웃이다. 지정한 확률을 바탕으로 일부 노드의 연결을 끊어 모델이 학습하는 가중치 파라미터의 개수를 줄어들게 하여 과대적합을 방지한다. 이를 토대로 훈련 과정에서는 몇몇 노드만 학습시키지만 검증 시점에서는 모든 노드를 활용하여 검증을 진행한다.

 

드롭아웃을 적용하지 않은 뉴런은 왼쪽과 같이 모든 노드가 연결되어 있다. 하지만 드롭 아웃을 적용하면 몇몇 노드의 연결이 끊어져 연결되어 있는 것을 확인할 수 있다.

 

tf.keras.layers.Dropout(0.3) # 30%의 노드를 제외하고 학습 진행

tensorflow에서는 위와 같이 Dropout을 적용하고자 하는 층에 코드를 추가하여 간단하게 적용할 수 있다. Dropout의 비율이 높으면 학습이 제대로 되지 않을 가능성이 존재하니 적당한 비율의 Dropout 적용을 통해 학습이 이뤄져야 한다.


 

참고 사이트: 

https://wikidocs.net/120053

 

dropout (드롭아웃)

드롭아웃(Dropout)은 신경망 학습 과정에서 과적합을 방지하기 위해 사용되는 기법이다. 이 방법은 학습 단계마다 무작위로 일부 뉴런을 비활성화(즉, 드롭아웃) 시킴으로써, 신…

wikidocs.net

 

https://paperswithcode.com/method/dropout

 

Papers with Code - Dropout Explained

Dropout is a regularization technique for neural networks that drops a unit (along with connections) at training time with a specified probability $p$ (a common value is $p=0.5$). At test time, all units are present, but with weights scaled by $p$ (i.e. $w

paperswithcode.com

 

728x90
반응형
Comments