Gradient descent
미분 가능 함수의 로컬 최소값을 찾기 위한 1차 반복 최적화 알고리즘입니다.
즉. 손실함수값이 낮아지는 방향으로 가기 위해 1차 미분계수를 이용하는 알고리즘이다
👉 경사하강법에서 우리가 결정해야 할 것은 다음과 같다
Batch gradient descent
👉 전체 데이터에서 계산된 그래디언트로 업데이트합니다.
👉 기존의 Gradient Descent 방식은 내가 가진 데이터를 다 넣어서 미분값을 계산하다보니 계산량이 많아 학습이 오래걸린다는 문제점이 있다
🆀 그렇다면 기존 Gradient Descent 방식보다 더 빠른 방법이 있을까?
🅰 모든 데이터의 미분값을 구하지 말고 일부 데이터로만 계산해보자
SGD(Stochastic gradient descent)
👉 추출된 데이터 한개에 대해서 계산된 기울기로 업데이트 한다
MGS(Mini-batch gradient descent)
👉 전체 데이터 중 일부 샘플에 대해 계산된 기울기로 업데이트 한다
🆀 SGD와 MGS는 어떤 차이가 있을까?
👉 공통점
👉 차이점
💁♀️ 대부분 SGD을 사용할때 하나의 데이터가 아닌 미니배치를 사용하므로 Mini-batch gradient descent를 SGD라고 부른다
🆀 계산량을 줄이면서 최적의 값의 수렴하기 위해 Mini-batch를 얼마만큼 하는 게 좋을까?
🅰 큰 배치사이즈보단 작은 배치사이즈가 최적의 값으로 수렴하기 좋다
On Large-batch Training for Deep Learning: Generalization Gap and Sharp Minima, 2017
- "It has been observed in practice that when using a larger batch there is a degradation in the quality of the model, as measured by its ability to generalize."
"실제로 더 큰 배치를 사용할 때 일반화 능력으로 측정할 때 모델의 품질이 저하되는 것이 관찰되었습니다."- "We ... present numerical evidence that supports the view that large batch methods tend to converge to sharp minimizers of the training and testing functions. In contrast, small-batch methods consistently converge to flat minimizers... this is due to the inherent noise in the gradient estimation."
"우리는 ... 대규모 배치 방법이 훈련 및 테스트 기능의 예리한 최소화로 수렴되는 경향이 있다는 견해를 뒷받침하는 수치적 증거를 제시합니다. 반대로 소규모 배치 방법은 일관되게 평면 최소화로 수렴합니다... 이것은 고유한 그래디언트 추정에 노이즈가 있습니다."
👉 결론 : 배치사이즈를 작게 가져가야 평평한 최소화로 수렴되므로 모델의 예측력이 더 좋다
🆀 배치사이즈를 구했으니 스텝방향과 스텝사이즈는 어떻게 하는게 좋을까?
스텝방향을 조정해보자!
- Momentum
- Nesterov accelerated gradient
스텝사이즈를 조정해보자!
- Adagrad
- Adadelta
- RMSprop
스텝방향과 스텝사이즈 둘다 조정해보는건 어떨까!
- Adam
- Nadam
💁♀️ Adagrad로 교육이 장기간 진행되면 어떻게 될까?
RMSprop은 Geoff Hinton이 강의에서 제안한 미공개 적응형 학습률 방법입니다.
RMSprop is an unpublished, adaptive learning rate method proposed by Geoff Hinton in his lecture.
Adaptive Moment Estimation (Adam) leverages both past gradients and squared gradients.
Adaptive Moment Estimation(Adam)은 과거 그래디언트와 제곱 그래디언트를 모두 활용합니다.