Optimization
<Optimization>
Optimization 목차
Generalization
Under-fitting, over-fitting
Cross validation
Bias-variance tradeoff
Bootstrapping
Bagging and boosting
Gradient Descent Methods
Batch-size 정하기
Optimizer 종류
Generalization
Generalization이 좋다 = Test error와 Training error 차이가 적다 != 실제로 좋은 모델이다*
*training error가 크고 test error와 차이가 적으면 (둘 다 error가 크면) generalization이 좋아도 성능은 나쁜 것..
Under-fitting, over-fitting
Cross validation
학습 데이터와 validation data를 어떻게 나눌지 => 최적의 하이퍼파라미터를 찾는 과정
ex) K-fold
Bias-variance tradeoff
bias, variance, noise
cost를 minimize한다는 것은 bias^2, variance, noise의 합을 minimize 하는 것이다.
따라서, noise가 껴있는 데이터라면, bias, variance를 줄이기가 힘들다. (이미 noise가 일정 수준 존재하기 때문)
Bootstrapping
학습 데이터를 100프로 사용하는 것이 아니라, 나눠서 여러 개의 모델을 만드는 것(sub-sampling), 평균을 내서 사용하거나 등의 기법을 활용하는데 사용
Bagging and boosting
Bagging = Bootstrapping aggregating = 캐글에서 말하는 Ensemble(앙상블) 기법이 이것
Boosting = 여러 개의 모델을 seqeuntial하게 합침
Gradient Descent Methods
1. Stochastic Gradient Descent = SGD
2. Mini-batch Gradient Descent => 대부분의 딥러닝
3. Batch Gradient Descent
Batch-size 정하기
Batch size를 줄이면 일반적으로 Generalization performance가 좋아진다.
Optimizer 종류
tensorflow, pytorch에 이미 구현되어 있으니 고르기만 하면 된다.
1. SGD (Stochastic Gradient Descent)
2. Momentum
3. Nesterov Accelerate Gradient (NAG)
4. Adagrad
5. Adadelta
learning rate가 없어서 잘 활용은 안된다.
6. RMSprop
7. Adam
<Regularization>
Regularization 목차
Early stopping
Parameter norm penalty
Data augmentation
Noise robustness
Label smoothing
Dropout
Batch normalization