본문 바로가기

부스트캠프 AI Tech/[Week2] Deep Learning basic

[Week2] DL Basic - Optimization [Day2]

*Optimization

 

 

*Important Concepts in Optimization

  • Generalization
  • Under-fitting vs. over-fitting
  • Cross validation
  • Bias-variance tradeoff
  • Bootstrapping
  • Bagging and boosting

 

 

 

*Generalization

  • 일반적으로 training error가 줄어들지만, 어느 순간을 지나면 test error는 증가함
  • Generalization performance : Test error - Training error

 

 

 

 

 

*Underfitting vs. Overfitting

  • underfitting : 네트워크가 간단하거나 train횟수가 적어 학습 데이터를 잘 맞추지 못함
  • overfitting : Training data에 대해 좋은 성능을 보이지만 Test data를 잘 맞추지 못함

 

 

 

 

 

*Cross-validation

  • train data중 일정 비율만큼 validation data를 만들어 학습이 얼마나 잘 되고 있는지 확인
  • traing data <-> validation data 비율?   
    • k-fold validation : k개의 partition으로 나눠 k-1개를 학습하고 나머지 1개로 validation
  • cross-validation을 통해 최적의 hyper-parameter를 찾는다
  • Test data는 엄밀하게 training에 관여하지 않음

 

 

 

 

*Bias and Variance

  • Variance : 비슷한 입력들을 넣었을때 출력이 얼마나 일관되게 나오는지
  • Bias : 평균적으로 봤을때 target에 가까운지
  • Bias and Variance Tradeoff

 

 

 

 

 

*Bootstrapping

  • 고정된 학습데이터 중 일부를 활용하여 여러개의 모델을 만들어 각 모델의 consensus를 통해 전체적인 uncertanty를 예측

 

 

 

 

*Bagging vs. Boosting   (ensemble method)

  • Bagging(Bootstrapping aggregating) : random sample data를 통해 n개의 단일 모델을 만들고 평균을 냄 -> 일반적으로 성능이 더 좋음. 
  • Boosting : random sample data를 통해 다수의 모델을 만들지만 훈련과정에서 앞 모델이 틀린 부분에 가중치를 부여하며 sequential하게 학습

 

 

 

*Gradient Descent Methods

  • Stochastic gradient descent
  • Mini-batch gradient descent -> 대부분의 딥러닝에서 활용
  • Batch gradient descent

 

 

 

 

*Batch-size Matters

  • flat minimizer > sharp minimizer (Generalization gap이 작다)
    • sharp minimum은 training function에서 약간만 멀어져도 testing function의 에러가 높아짐
    • flat minimum은 training function에서 약간 멀어져도 testing fucntion 에러가 비슷

  • small batch-size에서는 성능이 일반적으로 좋음

 

 

 

 

*Gradient Descent Methods 종류

 

  • (Stochastic) Gradient descent
    • step size를 적절히 잡는게 중요
  • Momentum
    • 베타항을 두어 이전 모멘텀(방향)과 현재 그레디언트를 합쳐 학습 진행
    • Mini-batch로 그레디언트가 여러번 바뀌는 상황에서 좋은 성능
  • Nesterov Accelerate
    • GD + Momentum 형태
    • Momentum보다 local minima에 더 정확하고 빨리 수렴
  • Adagrad
    • 적게 변한 파라미터는 많은 가중치를 두고, 많이 변한 파라미터는 적은 가중치를 두어 학습
    • Gt가 계속해서 커지므로 학습이 진행될수록 학습이 멈춰지는 단점이 있음
  • Adadelta
    • Adagrad의 Gt가 계속해서 커지는 현상을 방지
    • Learning rate이 없음 (많이 안쓴다)
  • RMSprop
    • EMA of gradient squares
  • Adam
    • Adaptive Moment Estimation
    • EMA of gradient squares + Momentum 형태

 

 

 

 

 

*Regularization의 종류 : 학습에 제약을 두어 Generalization을 잘 하기 위함 

  • Early stopping
  • Parameter norm penalty
    • Neural Network 파라미터가 너무 커지지 않게 방지
  • Data augmentaion
    • 일반적으로 데이터가 많을수록 DL의 성능은 좋아짐
    • So, we need data augmentation
  • Noise robustness
    • 입력데이터와 weight에 noise를 인위적으로 넣는다
  • Label smoothing
    • Label과 Image를 mix
    • why high performance?
  • Dropout
    • 일부 뉴런을 0으로 만들어 나머지 각각의 뉴런들이 Robust한 feature를 얻기를 기대
  • Batch normalization
    • layer의 statistics를 정규화

*Optimizer의 발전