최적화 문제는 다음과 같은 개념으로 분류할 수 있으며 통계학으로 부터 전해진 내용들이다.
- Generalization
- Under-fitting, Over-fitting
- Cross validation
- Bias-variance tradeoff
- Bootstrapping
- Bagging, Boosting
Generalization
학습 Iteration이 반복될 수록 Train set에 대한 error는 줄어들게 된다. 하지만 Test set에 대한 error는 증가하게 되는데 Test set과 Train set의 error 차이를 Generalization gap이라고 한다. Generalization이 좋다는 말은 Train, Test 데이터 성능이 둘 다 좋다는 이야기 이다.
Under-fitting
학습이 충분히 진행되지 않은 모델 or Network가 너무 간단한 모델
Over-fitting
Test set에 대한 학습이 많이되어 새로운 데이터(Test set)에 대한 결과가 안좋은 모델
Cross-validation (K-fold)
Train data를 K로 분할하고 K-1개로 학습, 나머지 1개로 Validation을 진행하는데 수많은 Hyperparameter들의 최적값을 찾기 위해 사용하거나 최대한 Train data를 사용하기 위해 사용하는 방법이다.
Bias-variance tradeoff
Cost 함수를 최소화 하기 위해 bias, variance, noise를 줄일 수 있다. 하지만 동시에 줄이는 것은 불가능하다 (하나의 변수가 줄어들면 다른 하나는 증가) 이를 tradeoff라 한다.
Bootstrapping
데이터 중에서 랜덤으로 일부만 사용해서 모델을 여러개 만들고 모델들의 결과들을 취합하는 방법이다.
Bagging, Boosting
Bagging은 여러개의 모델을 만들어 결과들의 평균으로 output을 만든다. (여러개의 모델 사용)
Boosting은 학습된 데이터중 제대로 결과가 나오지 않은 데이터를 모아 다시 학습시켜 모델의 성능을 올리는 방법이다. (결과적으로 모델 1개)
경사하강 메소드에 적용하는 여러가지 알고리즘이 있다. 이 알고리즘들은 역전파 과정에서 gradient를 단순히 빼주는것 뿐만아니라 추가 연산을 해서 극소값에 도달하도록 도움을 주는 알고리즘이다.
학습을 방해하도록 하는 방법이며 Test set에도 잘 동작하도록 한다.(Generalization이 잘 되게 하고 싶을 때 사용한다.)
Early stopping : 학습이 진행됨에 따라 Train set에 대한 error는 점점 줄어들지만 Test set에 대한 error는 일반적으로 증가한다. 이를 막기위해 Validation set을 이용하며 Validation에 대한 error가 증가할 때 학습을 멈춘다.
Parameter norm penalty : 완만한 함수일수혹 일반적으로 Generalization이 좋을 것이기 대문에 loss에 Parameter Norm Penalty를 더해준다.
Data augmentation : 일반적으로 Data set이 적을때 전통적인 ML보다 Deep Learning이 성능이 더 좋다고 할수 없다. (Data set이 많을 때 성능이 좋다) 따라서 label의 값이 변하지 않는 선에서 데이터에 변화(rotate, crop,...)를 주어 Data set을 늘리는 방법이다.
Noise robustness: input이나 weight에 noise를 준다.
Label smoothing
Dropout: 일부 노드에 무작위로 0을 곱해 학습속도와 결과를 향상시킬 수 있다.
Batch normalization
각 Layer마다 Input 분포가 달라짐에 따라 학습 속도가 느려지는 현상인 Internal Covariance shift라는 현상이 있다. 이를 방지하기 위한 기법으로 Layer의 Input 분포를 정규화 하여 학습 속도를 빠르게 할 수 있다.
h는 input의 분포이며 가 없다면 정규화하는 수식과 일치한다. 는 각각 분포를 shift시켜 scaling 하는 값이며 back propagation을 통해 학습한다.
학습 단계에서는 만나보지 않았던 상황에서 정확한 예측을 하기 위해 사용하는 추가적인 가정이다. 이 가정을 통해 훈련 데이터 뿐만아니라 학습 데이터에도 잘 동작하는 Generalization을 하기 위해 사용한다.
파이썬 딥러닝 파이토치(이경택 ISBN 978-89-5674-857-3)
https://velog.io/@euisuk-chung/Inductive-Bias%EB%9E%80 (inductive bias)