티스토리 뷰
신경망 학습 절차
전제: 신경망에는 가중치와 편향이 있고, 이들을 훈련 데이터에 적응하도록 조정하는 과정을 '학습'이라 함. 신경망 학습은 다음 4단계로 수행함.
1단계: 미니배치 - 훈련 데이터 중 일부를 무작위로 가져옴. 이렇게 선별한 데이터를 미니배치라 하며 그 미니배치의 손실함수의 값을 줄이는 것이 목표
2단계: 기울기 산출 - 미니배치의 손실함수 값을 줄이기 위해 각 매개변수의 기울기를 구함. 기울기는 손실 함수의 값을 가장 작게 하는 방향을 제시함.
3단계: 매개변수 갱신: 가중치 매개변수를 기울기 방향으로 아주 조금 갱신함.
4단계: 1~3단계를 반복하여 손실 함수가 최솟값일 때의 가중치 매개 변수를 찾음.
이를 최적화(optimization)라 부르고 이를 수행하는 알고리즘이 바로 Optimizer.
Optimizer

1. GD(Gradient Descent)
경사를 따라 내려가면서 Weight를 업데이트 해 최솟값을 찾음
한번 학습할 때 모든 데이터에 대해 가중치를 조절
단점:
모든 자료의 기울기를 다 검토해야함.
(최솟값이 아닌)극솟값을 찾았을 때 업데이트가 종료되면 최솟값을 찾지 못하는 문제 발생

2.SGD(Stochastic Gradient Descent)
GD와 달리 데이터를 미니배치로 무작위로 선정함. '확률적으로 무작위로 골라낸 데이터'에 대해 경사 하강법(GD)을 수행함.
단점:
비등방성함수(방향에 따라 기울기가 다른 함수)에서는 탐색 경로가 비효율적임.(예를 들어 직선으로 찾을 수 있는 최솟값을 지그재그로 찾는다던지)
3. Momentum
물리계에서 공이 굴러가는 방향은 중력뿐 아니라 관성에도 영향을 받음.
SGD는 중력만 고려했다면, Momentum은 관성까지 고려함.
기울기 방향으로 힘을 받아 물체가 가속되는 물리 법칙이라 생각하면 됨. 여러 가중치 중, 손실 함수에 대해 비교적 일정한 방향으로 기울어지는 가중치는 최솟값을 찾는 경로에 더 많은 영향을 주게 됨.
물체가 아무런 힘을 받지 않아도 서서히 하강하는 역할도 수행함.

4. AdaGrad
신경망 학습에선 학습률이 중요함. 학습률이 너무 작으면 학습 시간이 길어지고, 반대로 너무 크면 반산하여 학습이 제대로 이루어지지 않음.
AdaGrad는 개별 매개변수에 적응적으로 학습률을 조정하면서 학습을 진행하는 알고리즘.
매개변수의 원소 중에서 크게 갱신된 원소는 학습률이 다른 원소에 비해 더 많이 낮아짐.

AdaGrad는 학습을 진행할수록 갱신 강도가 약해짐. 무한히 학습하다보면 어느 순간 갱신량이 0이 되어 전혀 갱신되지 않게 됨. 이 문제를 개선한 기법이 RMSProp. 이것은 과거의 모든 기울기를 균일하게 더해가는게 아닌, 먼 과거의 기울이는 서서히 잊고 새로운 기울기 정보를 크게 반영함. 이를 지수이동평균이라 하며, 과거의 기울기의 반영 규모를 기하급수적으로 감소시킴.
5. Adam
Momentum과 AdaGrad를 합친 알고리즘. 하이퍼파라미터의 '편향 보정' 효과도 있음.
Optimizer 비교






