Dropout
# Tag:
- Source/KU_ML2
Dropout
ANN를 학습할 때, Nodes 간 연결된 edge 일부를 끊어 학습시키는 방법.
edge를 끊을 지의 여부는 확률 로 결정된다. (weight를 0으로 설정하는 것과 동일하다.)
실제 inference(test) time에서는, dropout 없이 진행된다.

이 때, Train에서 나오는 output에는 를 곱한다. weight가 일부분만 들어가므로, 그 결과 값의 크기가 그만큼 적게 곱해졌을 것을 고려하는 것이다.
Why does it works?
Black Box모델인만큼, 정확한 수치적 해석은 불가능하나 이에 대한 여러 가지 해석은 존재한다.
- Noise robust: noise가 weight 몇개를 0으로 둠으로써 제거되더라도, 제대로 해석할 수 있어 함을 의미한다.
- hidden units compatible with others: 다른 노드로의 연결이 없어지도라도, 그 노드가 해당 노드의 Representation까지 나누어 학습할 수 있게 한다고 볼 수 있다.
- smaller weights: L2 Regularization으로 이어진다고 볼 수 있다. 큰 weights 일수록, feature에 민감하게 반응하므로 Overfitting이 일어나는 것을 막기 위한 Penalty로써 작용 가능한 것이다.
- Ensemble of thinned networks: weight가 없어진 model들 각각의 ensemble로써, 그를 통해 더 좋은 성능을 보여주는 것이라 볼 수 있다.