Generalization (일반화)
![](https://velog.velcdn.com/images/chanu48/post/243fb704-538a-4ea1-bd88-5ce7a1d02830/image.png)
Cross-Validation
![](https://velog.velcdn.com/images/chanu48/post/4497f12b-79db-4eab-b945-e2e352323e74/image.png)
- 학습 데이터를 K개로 나눠 K-1개로 학습을 시키고 나머지로 validation을 test
- 최적의 hyperparameter set을 찾을 때 사용
Bias and Variance
![](https://velog.velcdn.com/images/chanu48/post/c84e7841-7c3c-4c9f-93e3-3ce7e849dcfb/image.png)
Bootstrapping
- 학습 데이터를 sampling해 여러 개를 만들어 여러 model 또는 metric을 만드는 기법
- Bagging (Bootstrapping aggregating)
- 여러 모델들을 가지고 output을 voting, averaging 기법으로 도출 (Ensemble)
- Boosting
- weak learner를 sequential하게 combine해 하나의 strong learner를 만듦
![](https://velog.velcdn.com/images/chanu48/post/f0761af5-5c7e-435e-9546-4416619d1f95/image.png)
Gradient Descent Methods
batch-size를 크게 하면 sharp-minimizer로 수렴하고 작게하면 flat-minimizer로 수렴한다.
![](https://velog.velcdn.com/images/chanu48/post/8c968421-050c-44dd-bd94-722a9624cf76/image.png)
Sharp-minimum에서 약간만 멀어져도 testing function에서는 매우 높은 값이 나옴
- training에 활용되지 않은 test-data에서 잘 작동하지 않을 수 있다.
1. Momentum
![](https://velog.velcdn.com/images/chanu48/post/d2d55629-f320-4016-b63d-80387c455675/image.png)
- β : gradient 방향의 hyperparameter
- t+1번째의 gradient는 버리고 momentum과 t시점의 gradient를 합친 accumulation으로 update
- 한 번 흘러가기 시작한 gradient의 방향을 어느정도 유지시켜 gradient가 왔다갔다해도 잘 학습하는 효과
2. Nesterov Accelerate Gradient (NAG)
![](https://velog.velcdn.com/images/chanu48/post/4923e13b-afd5-445f-8b0e-751687bd7cdf/image.png)
- momentum보다 더 빨리 local minimum에 converge
3. Adagrad
- 뉴럴 네트워크에서 많이 변한 parameter는 적게 변화시키고 적게 변한 parameter는 많이 변화
![](https://velog.velcdn.com/images/chanu48/post/7b09f807-d19d-4783-b612-f6ae491983f4/image.png)
- Gt : 지금까지 gradient가 얼마나 변했는지를 제곱하여 더함
- G는 계속해서 커지며, 무한대로 가면 0으로 수렴해 W가 update되지 않음
4. Adadelta
- Adagrad에서 G가 계속해서 커지는 현상을 막음
- window-size만큼의 gradient 변화만 보려함
- Learning rate가 없음
![](https://velog.velcdn.com/images/chanu48/post/927eb7ef-9003-4483-8b46-2092d53fa0b5/image.png)
5. RMSprop
- Adadelta에 learning rate를 적용
![](https://velog.velcdn.com/images/chanu48/post/d7787294-6ddd-4ca9-85c4-6b13d1a16b29/image.png)
6. Adam (Adaptive Moment Estimation)
- momentum과 EMA of gradient squares를 combine
![](https://velog.velcdn.com/images/chanu48/post/d692bfc2-532f-462a-9135-4c319e612701/image.png)
Regularization
학습을 방해해 학습 데이터 외 데이터에도 성능이 잘 나오도록 하는 것이 목표
Early Stopping
- validation error가 training error보다 커지면 학습 중단
Parameter Norm Penalty
Data Augmentation
- label이 변경되지 않는 한에서 data 증강
Noise Robustness
Label Smoothing
- train 단계에서 데이터 두 개를 뽑아 mix up 시킴
- mix up, cutmix
Dropout
Batch Normalization
- 적용하고자 하는 layer의 statistics를 정규화
실습
![](https://velog.velcdn.com/images/chanu48/post/d036c4ed-7c73-4655-8953-5d7cc58672c7/image.png)
10000번의 iteration을 돌았음에도 SGD는 잘 예측하지 못하지만,
adam은 거의 정확하게 예측하는 것을 확인 가능
→ 웬만하면 adam optimizer로 모델을 설계하자
※ 모든 이미지의 출처는 네이버 커넥트재단 부스트캠프 AI Tech 5기입니다. ※
이런 유용한 정보를 나눠주셔서 감사합니다.