1. 훈련 샘플 배치 x와 이에 상응하는 타깃 y를 추출한다.
2. x로 네트워크를 실행하고 예측 y_pred를 구한다.
3. 이 배치에서 y_pred와 y사이의 오차를 측정하여 네트워크의 손실을 계산한다.
4. 네트워크의 파라미터에 대한 손실 함수의 그래디언트를 계산한다.
5. 그래디언트의 반대 방향으로 파라미터를 조금 이동시킨다.
미니 배치 확률적 경사 하강법
미니 배치 SGD (mini-batch stochastic gradient descent)
배치 : 데이터 분할 시의 배치 사이즈
확률적 : 각 배치 데이터가 무작위로 선택됨을 의미 🌟 step값을 적절하게 고르는 것이 중요하다!
step 이 너무 작을 경우
지역 최솟값(local minimum) 에 갇힐 수 있다. → 지역 최솟값이 아닌 전역 최솟값을 찾아야하므로
step 이 너무 클 경우 함수 곡선 내의 완전한 임의 위치로 이동할 수 있다.
옵티마이저 (최적화 방법)
: 최소 손실 방향으로 하이퍼 파라미터를 업데이트하는 과정
모멘텀(Momentum) : 현재 기울기 값뿐만 아니라 현재 속도 또한 함께 고려를 하여 값을 조정하는 것
모멘텀은 SDG의 local minimum을 해결해줄 수 있다.
최적점을 찾아가며 해당 최적점에 연관된 방향으로 가속화를 시키는 역할을 한다.
Adagrad
과거 gradient를 제곱하여 계속 더해간다. 학습이 덜 된 변수는 학습을 더 빨리, 학습이 많이 된 변수는 학습 참여 횟수를 줄이는 식으로 하여 랜덤값들을 효율적으로 빠르게 학습시켜, 최적화하는 방법이다.
무한히 학습을 진행하다보면 값이 무한히 커져, 최소값에 도달하기도 전에 0에 수렴하게 되어 갱신이 이루어지지 않을 수도 있다.
RMSProp
지수 가중 이동 평균(Exponentially weighted moving average)
gradient의 단순 누적이 아닌 최신 gradient의 누적 비율을 늘려서 반영하는 방법이다.
Adam
학습률을 변경하는 RMSProp과 최적화에 의한 갱신 경로를 변경하는 Momentum을 조합하여 만들어진 옵티마이저