Generalization
Cross-validation
일반적으로 train data를 train, validation로 나누어 train data로 학습한 모형을 학습에 사용되지 않는 validation data에 얼마나 잘 작동하는지 검증하고, test data에 적용하는 방식으로 사용한다.
이 방식은 train data를 어떠한 비율로 나누냐에 따라 성능이 다르게 나타난다. 예를 들어, train data의 수가 적으면 학습시키는 양이 적어서 성능이 잘 나오지 않는 문제가 발생한다.
이러한 경우에 Cross-validation을 사용하는데, trian data를 동일한 개수의 k개로 나누어 k-1개로 학습시키고 나머지 1개로 검증하는 방식을 사용한다.
Cross-validation을 통해 최적의 hyper parameter를 찾고, 이것을 고정시킨 후 모든 데이터를 사용하여 학습시킨다.
Bias and Variance
Bagging vs Boosting
Bootstrap
Bagging
Boosting
Gradient Descent Methods
Batch-size Matters
large batch를 사용하면 sharp minimum에 도달하고, small batch를 사용하면 flat minimum에 도달하는데 flat minimum에 도달하는 것이 더 좋다는 연구 결과가 있다.
Flat Minimum
Sharp Minimum
Gradient Descent
Momentum
Nesterov Accelerated Gradient
NAG은 momentum과 비슷하지만 gradient를 계산하는 방식이 다르다.
momentum은 현재 위치에서의 gradient를 계산하는 반면, NAG는 한 번 이동한 후의 위치에서 gradient를 계산하는 방식
momentum은 관성에 의해 멈춰야 할 지점에서 멈추지 못하고 local minimum으로 수렴하지 못하는 경우가 생기지만, NAG는 이동한 후의 위치에서의 gradient를 계산하기 때문에 계산이 빠르고, 적절한 시점에 제동의 역할을 함으로 local minimum에 수렴하는데에 용이하다.
Adagrad
지금까지의 parameter가 얼만큼 변해왔는지에 따라 gradient를 계산하는 방식
지금까지 파라미터가 얼마나 변해왔는지를 저장하는 변수가 G이다.
지금까지 파라미터가 많이 변해왔다면, 앞으로 적게 변화 시킬 것이고, 반대로 지금까지 파라미터가 적게 변해왔다면, 앞으로 많이 변화 시킨다.
Adadelta
Adagrad의 G가 무한대로 수렴하게 되면 결국 업데이트가 되지 않기 떄문에, 이를 보완하기 위해 window(시간)에 따른 gradient의 변화를 보는 방식이 Adadelta 이다.
Learning rate가 없기 때문에 사실상 바꿀 수 있는 요소가 많이 없기 때문에, 많이 활용되지는 않는다.
RMSprop
Adam
최적화 방법론 정리
Regularization
Early stopping
Parameter Norm Penaty
네트워크 파라미터들이 너무 커지지 않게 조절하는 것
네트워크가 만들어내는 함수의 공간 속에서 함수를 최대한 부드럽게 보고 그로 인해 일반화가 잘 되어지는 것을 가정하는 것
Data Augmentation
딥러닝, 머신러닝에서 가장 중요한 것 중 하나가 데이터의 양이다.
데이터의 양이 많다면 웬만해서는 모두 잘 작동하지만, 양이 적다면 잘 작동하지 않는다.
데이터가 한정적이고 수집하기 어려울 경우 변환, 뒤집기 등 어떤 식으로든 주어진 데이터를 늘리는 것을 Data Augmentation 이다.
단, label이 변하지 않는 조건 하에서 데이터를 늘려야 한다.
Noise Robustness
Label Smoothing
Dropout
Batch Normalization