Overfitting
Training Dataset에 너무 최적화되어 Test Dataset에서 낮은 정확도를 얻는 현상
- 너무 Deep한 Layer일때 Overfitting 발생
- 위 사진의 빨간 선부터 Overfitting 발생
Solution for Overfitting
- 더 많은 Training Dataset
- Regularization (정규화)
- Dropout
Dropout
- Train시 neuron들을 랜덤하게 사용하지 않음
※ Dropout 사용시 주의할점!
model.train()과 model.eval() 에 대해 알아야 합니다.
model.eval()은 eval mode에서 사용할 것이라고 모든 레이어에 선언하는 것이며,
BatchNomalization과 Dropout들은 train mode 대신에 eval model로 작동합니다.
또한 eval 에서 torch.no_grad()는 Backpropagation에 사용하는 계산량을 줄여서 처리 속도를 높입니다.
(eval mode에서는 dropout은 비활성화, BatchNomalization은 학습에서 저장된 파라미터를 사용)
Code
출처:
https://www.youtube.com/watch?v=wTxMsp22llc&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=32&t=2s
'Deep Learning > Pytorch' 카테고리의 다른 글
17_Pytorch_CNN (Convolutional_Neural_Network) (0) | 2021.09.30 |
---|---|
16_Pytorch_Batch_Normalization (0) | 2021.09.29 |
14_Pytorch_Weight Initialization (0) | 2021.09.09 |
13_Pytorch_Activation_Gradient Vanishing (0) | 2021.09.08 |
12_Pytorch_Multi_Layer_Perceptron_XOR (0) | 2021.08.25 |