1. Dropout(드롭아웃) 이란?
Foward Propagation에서 일정확률(0부터 1사의 확률)로 선택된 일부 Node 혹은 Neuron 들의 결과값을 0으로 설정하는 방식이다 . 즉, 선택된 일부 Node 혹은 Neuron을 제거하는 기법이다.
제거되는 뉴런의 종류와 개수는 오로지 random하게 결정된다. Dropout Rate는 하이퍼파라미터이며 일반적으로 0.5로 설정한다.
🤔 그렇다면 Dropout을 사용하는 이유가 무엇일까요?
Dropout은 어떤 특정한 feature만을 과도하게 학습함으로써 발생할 수 있는 Overfitting을 방지할 수 있다. 즉, 일반화의 성능을 올릴 수 있는 것이다.
만일 특정한 피처(관련성이 높은 피처)가 예측결과값과 큰 상관관계가 있다고 가정해보자. 만일 Dropout을 진행하지 않고 모델을 학습하게 된다면, 특정 Feature에 과도하게 의존하여(높은 가중치를 두어) 학습이 진행되어 나머지 Feature에서는 제대로 학습이 진행되지 않을 수 있다.
반면, Dropout을 진행하여 상관관계가 큰 특정 feature을 제외하고도 다양한 feature에서 좋은 결과를 얻을 수 있도록 모델이 최적화된다면 , 특정 Feature에만 결과가 좌지우지 되는 문제를 방지할 수 있다. 이것이 모델의 일반화 관점에서 Drop-out을 사용하는 이유이다.
- 원래 모델은 관련성이 높은 정보들을 활용하려고 한다.
- Dropout을 적용하면 모델이 비교적 적게 학습했던 정보들을 고려할 수 있다.
- 이를 통해 모델 일반화에 있어 도움이 된다.
- ( 관련성이 높은 feature을 제외하고도, 다양한 feature을 활용하여 모델이 학습되기 때문 )
2. 추론할 때 Dropout
training time에서는 drop_rate의 확률로 노드의 출력을 0으로 만든다.
- 원 논문에서 사용하는 확률p는 drop할 확률이 아닌, 다음 노드로 출력을 전달할 확률이다.
test time에는 출력을 (1-drop_rate) 만큼 곱해주어 training time 때의 기대 출력과 동일하게 만들어준다.
- drop_rate가 0.4라면 출력에 0.6을 곱해준다.
이게 무슨말이지.. 싶었는데 다음 설명을 보면서 이해했다.
예를 들어 출력노드가 3개인 선형계층이 있다고 가정하자. 그런데 만약 p=0.67 의 확률로 드랍아웃이 적용되었다면, 학습할때는 평균적으로 2개의 노드만 살아남을 것이다.
따라서 학습시에는 다음 계층은 평균적으로 3개 중 2개의노드로부터 값을 전달 받을 것이다. 하지만 추론 시 다음계층은 항상 모든 노드로부터 값을 전달받을 것이다.
즉, 추론시에 다음계층은 평균적으로 학습시보다 1.5배 큰 입력값을 전달받게 된다. 그러므로 추론시에는 가중치 파라미터에 p=0.67을 곱해주어 이를 상쇄해야 한다. (Scale의 역할을 합니다)
3. Inverted Dropout
pytorch 에서 사용하고 있는 Dropout 방법이다.
- training time에는 drop_rate의 확률로 노드의 출력을 0으로 만들고 (비활성화), 출력이 0이 아닌 (활성화)된 노드의 출력에 1 / (1-drop_rate) = 1 / p를 곱해주어 그 값을 키운다.
- dropout test time에 p를 곱해준 것 처럼, inverted dropout 는 학습시 1/p를 곱해 학습과 추론의 차이를 없애고자 한다.
- 이렇게 되면 test time에는 아무런 연산없이(Activation 값 조절 X) 그대로 출력해준다.
✏️ 참고자료
https://devs0n.tistory.com/168
https://heytech.tistory.com/127
이어드림스쿨 4기 DS Track 강의
'STUDY > ML&DL' 카테고리의 다른 글
[DL] Data Augmentation (1) | 2024.06.20 |
---|---|
[DL] Batch Normalization (1) | 2024.06.19 |
[DL] Activation Function , Non-linear Function (0) | 2024.06.18 |
[DL] CrossEntropy , KL Divergence (0) | 2024.06.14 |
[CV] Diffusion이란? (1) | 2024.04.26 |