본문 바로가기
딥러닝/cs231n

7. Training Neural Networks 2

by sonysame 2024. 4. 29.

1. Optimization : Adam이 성능이 가장 좋고 가장 많이 쓰이는 알고리즘!

training 데이터의 loss값 낮추는 것

learning rate은 hyperparameter!

  • SGD+Momentum : 가속도 있음 따라서 기울기가 0인 지점(local minima, saddle points)에서도 update가 진행될 수 있다.  
    (SGD는 mini batch를 사용)
    여기서 rho는 보통 0.9, 0.99이용
    기울기가 0인 지점

    여기서 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에서 많이 쓰이지 않는다!
    Regularization
  • 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으로 시작함!

https://github.com/BVLC/caffe/wiki/Model-Zoo

https://github.com/pytorch/vision

'딥러닝 > 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