-
3. OptimizationAI/2주차 2021. 8. 10. 13:31
Generalization
많은 경우에 일반화 성능을 높이는 것이 중요하다.
Overfitting vs Underfitting
- Overfitting: 학습 오류가 테스트 오류보다 매우 작을 때 과적합이 일어났다고 한다.
- Underfitting: 모델이 너무 간단하여 학습 오류가 줄어들지 않는 것
Cross Validation
특정 데이터에 대해 과적합이 일어나는 것을 막기 위해서 모든 train data를 validation에 사용. 하이퍼 파라미터를 정할 때 유용하다.
Bias-Variance tradeoff
Cost를 최소화 한다는 것은 bias, variance, noise를 줄이는 것과 같으며, bias와 variance에는 반비례 관계가 일반적으로 존재한다.
Bootstrapping
Any test or metric that uses random sampling with replacement
Bagging and Boosting
- Bagging (Bootstrapping aggregating)
- Boosting: 분류하기 어려운 데이터에 대해 집중
Gradient Descent Methods
- SGD
- Mini-Batch Gradient Descent
- BGD
Batch가 큰 경우 sharp minimizer에 converge 하고, 작을 경우 flat minimizer에 converge 한다. Flat minimum이 generalizatoin에 더 유리하다.
https://arxiv.org/abs/1609.04836
Optimizer
- SGD
- Momentum: momentum이 포함된 graident를 update
- Nestrerov Accelerate: Lookahead gradient를 계산. Momentum보다 local minimum을 잘 찾을 수 있다.
- Adagrad: 적게 등장한 parameter에 대해서 크게 업데이트하고, 빈번하게 등장한 parameter에 대해서는 작게 업데이트 하는 방식으로 learning rate을 adapt한다. 학습이 계속 진행되면 $ G_t $ 가 점점 커져서 학습이 일어나지 않게 되는 문제가 발생한다.
- Adadelta: Accumulation window를 제한하여 adagrad의 문제를 해결. 이때 exponential moving average 방식을 사용. Learning rate이 존재하지 않는다.
- RMSprop: Adagrad에 EMA 적용
- Adam: Adaptive Moment Estimation (Adam)으로 일반적으로 잘 작동한다. momentum과 gradient정보들을 모두 활용.
Regularization
- Early Stopping
- Parameter norm penalty: 비용함수에 weight의 크기를 더해서 weight가 너무 커지는 것을 막는다. 함수를 smooth하게 만든다.
- Data augmentation: 데이터를 증가시킴
- Noise robustness: 입력 데이터와 weight에 노이즈를 집어넣음
- Label smooting: 데이터를 섞어준다. Deicision boundary를 부드럽게 만들어줌. EX) CutMix, Mixup, Cutout
- Dropout
- Batch normalization: 데이터의 평균과 분산을 정규화 시킨다.
https://arxiv.org/abs/1803.08494
'AI > 2주차' 카테고리의 다른 글
6. Generative Models (2) 2021.08.13 5. RNN (0) 2021.08.12 4. Convolution (0) 2021.08.11 2. 딥러닝 Basic & MLP (0) 2021.08.09 1. 데이터 시각화 (0) 2021.08.09