*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
- 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를 적절히 잡는게 중요
- step size를 적절히 잡는게 중요
- Momentum
- 베타항을 두어 이전 모멘텀(방향)과 현재 그레디언트를 합쳐 학습 진행
- Mini-batch로 그레디언트가 여러번 바뀌는 상황에서 좋은 성능
- Nesterov Accelerate
- GD + Momentum 형태
- Momentum보다 local minima에 더 정확하고 빨리 수렴
- Adagrad
- 적게 변한 파라미터는 많은 가중치를 두고, 많이 변한 파라미터는 적은 가중치를 두어 학습
- Gt가 계속해서 커지므로 학습이 진행될수록 학습이 멈춰지는 단점이 있음
- Adadelta
- Adagrad의 Gt가 계속해서 커지는 현상을 방지
- Learning rate이 없음 (많이 안쓴다)
- RMSprop
- EMA of gradient squares
- EMA of gradient squares
- Adam
- Adaptive Moment Estimation
- EMA of gradient squares + Momentum 형태
*Regularization의 종류 : 학습에 제약을 두어 Generalization을 잘 하기 위함
- Early stopping
- Parameter norm penalty
- Neural Network 파라미터가 너무 커지지 않게 방지
- Neural Network 파라미터가 너무 커지지 않게 방지
- Data augmentaion
- 일반적으로 데이터가 많을수록 DL의 성능은 좋아짐
- So, we need data augmentation
- Noise robustness
- 입력데이터와 weight에 noise를 인위적으로 넣는다
- 입력데이터와 weight에 noise를 인위적으로 넣는다
- Label smoothing
- Label과 Image를 mix
- why high performance?
- Dropout
- 일부 뉴런을 0으로 만들어 나머지 각각의 뉴런들이 Robust한 feature를 얻기를 기대
- 일부 뉴런을 0으로 만들어 나머지 각각의 뉴런들이 Robust한 feature를 얻기를 기대
- Batch normalization
- layer의 statistics를 정규화
- layer의 statistics를 정규화
*Optimizer의 발전
'부스트캠프 AI Tech > [Week2] Deep Learning basic' 카테고리의 다른 글
[Week2] DL Basic - Generative Models [Day5] (0) | 2021.08.13 |
---|---|
[Week2] DL Basic - Transformer [Day4] (0) | 2021.08.12 |
[Week2] DL Basic - RNN [Day4] (0) | 2021.08.12 |
[Week2] DL Basic - CNN [Day3] (0) | 2021.08.11 |
[Week2] DL Basic - MLP(Multi-Layer-Perceptron) [Day1] (0) | 2021.08.09 |