1. Optimization : Adam이 성능이 가장 좋고 가장 많이 쓰이는 알고리즘!
training 데이터의 loss값 낮추는 것
learning rate은 hyperparameter!
- SGD+Momentum : 가속도 있음 따라서 기울기가 0인 지점(local minima, saddle points)에서도 update가 진행될 수 있다.
(SGD는 mini batch를 사용)
여기서 rho는 보통 0.9, 0.99이용
여기서 rho는 보통 0.9, 0.99이용
SGD는 지그재그로 최적화가 되지만(noise 발생), Momentum이 있을 때는 noise를 평균화시켜서 지그재그한 정도가 줄어든다. - Nesterov Momentum
- Adagrad
- RMSProp
- Adam : RMSProp+Momentum
- L-BFGS
Optimization은 training 데이터의 loss값을 줄이는 것이었고 이번에는,
training 데이터와 valiatation 데이터의 gap을 줄이는 것(overfitting)
-> Model Ensemble & Regularization
Model Ensemble: use multiple snapshots of a single model during training& average results
2. Regularization
-> training할 때 random noise를 주고, test할 때는 noise를 marginalize해서 overfitting을 줄인다.
- L1, L2 regularization
L1, L2는 neural net에서 많이 쓰이지 않는다!
- Dropout
train에서는 overfitting하지 않게 랜덤성을 부여, test에서는 랜덤성을 average out
- 주로, Fully Connected layer에서 함
- test할 때는 dropout probability만큼 multiply해준다!
- Batch Normalization : dropout과 마찬가지로 train에서는 랜덤성 부여, test에서는 랜덤성을 average out
- Data Augmentation : random crops and scales, color jittering이미지를 변형 시킴
- (신규) DropConnect : output이 아닌 w를 0으로
- (신규) Fractional Max Pooling : train에는 필터를 랜덤하게 조합, test에서는 average out
- (신규) Stochastic Depth : train에는 depth를 랜덤으로 drop, test에서는 전체 네트워크 사용
3. Transfer Learning
데이터의 양이 적을 때, 풀고자 하는 문제와 비슷하면서 사이즈가 큰 데이터로 이미 학습되어 있는 모델을 이용
Object Detection, Image Captioning 모두 이미지넷의 CNN으로 시작함!
'딥러닝 > cs231n' 카테고리의 다른 글
9. CNN Architectures (0) | 2024.05.05 |
---|---|
8. Deep Learning Software (0) | 2024.04.29 |
6. Training Neural Networks 1 (0) | 2024.04.08 |
5. Convolutional Neural Networks (0) | 2024.04.08 |
4. Introduction to Neural Networks (0) | 2024.04.02 |