Loss Function의 Gradient를 계산하고, Gradient가 0에 가까워질 때까지 parameter 를 반복적으로 조정한다.
Chain Rule을 통해 Gradient를 계산하고 기울기의 반대 방향으로 small step 이동하며 parameter를 업데이트한다. 이때 learning rate ()를 곱하여 Step size를 조정한다. 시간이 지남에 따라 Loss Function 가 줄어들어, 결국 Loss를 최소화하는 방향으로 이동한다.
매 반복 시행마다 가중치를 업데이트하기 위해 학습 데이터 전체를 사용하기 때문에, 학습 데이터가 커지면 학습에 소요되는 비용이 매우 커진다.
Stochastic Gradient Descent는 가중치 업데이트 과정에서 학습 데이터 전체를 사용하지 않고, 샘플 데이터 하나만 사용한다. 즉, 학습 샘플 데이터 한 개로 계산한 에러를 바탕으로 가중치를 업데이트하고 다음으로 넘어간다.
Mini-Batch Gradient Descent는 가중치 업데이트 과정에서 샘플 데이터를 여러 개 사용한다. 예를 들어 배치 사이즈가 32이면 32개의 샘플을 사용하여 Gradient의 평균을 구하고, 이 값을 사용하여 가중치를 업데이트한다. 배치 사이즈가 1인 경우 SGD와 동일하다.
학습 중 weight를 업데이트할 때 step size를 결정한다.
learning rate가 너무 작으면 local minimum에 갇히거나 학습 속도가 너무 느려질 수 있다. 반대로 learning rate가 너무 크면 global optimum을 지나칠 수 있다.