경사하강법

경사하강법은 기계학습모델 및 신경망을 훈련하는데 일반적으로 사용되는 최적화 알고리즘이다. [IBM] gradient-descent

경사하강법은 신경망이 스스로를 개선하는 방법 중에 하나이다. 신경망은 예측을 하고, 예측이 얼마나 틀렸는지 알려주는 손실함수를 사용한다. 이때, 이 손실을 줄일 수 있는 방법으로 경사하강법을 사용한다. 경사하강법은 손실함수의 기울기를 계산하고, 이 기울기를 따라 조금씩 나아가며 손실을 줄인다. 이런 방법을 반복하면 신경망은 예측을 개선하고 모델을 최적화하게 된다. [wikidocs] 경사하강법

출발점은 우리가 성능을 평가하기 위한 임의의 지점일 뿐이다. 그 시작점에서 우리는 도함수(또는 기울기)를 찾고 거기에서 접선을 사용하여 기울기의 가파른 정도를 관찰할 수 있다. 기울기는 매개변수, 즉 가중치와 편향에 대한 업데이트를 알려준다. 시작점의 기울기는 더 가파르지만 새로운 매개변수가 생성됨에 따라 수렴점으로 알려진 곡선의 가장 낮은 지점에 도달할 때까지 기울기가 점차 감소해야한다. [IBM] gradient-descent

경사(기울기)에 대한 수식 표현은 아래와 같다.

$$ \frac{\partial l(w, b)}{\partial w} = \frac{\partial l(w, b)}{\partial y} \frac{\partial y}{\partial w} =\frac{l(w, b)의 증가량}{w의 증가량} $$

경사(기울기)에 대한 코드 표현은 아래와 같다.

현재 손실 값에 대한 경사(기울기)를 자동 미분을 사용하여 계산한다.

loss.backward()

학습률

머신러닝과 신경망 훈련에서 매우 중요한 하이퍼파라미터로, 최소 단계에 도달하기 위해 취하려는 단계의 크기(가중치가 업데이트되는 크기)이다. 학습률이 높으면 더 큰 단계가 발생하지만 최소 단계를 초과할 위험이 있고 반대로 학습률이 낮으면 단계 크기가 작아진다. 정밀도가 더 높다는 장점이 있지만 반복 횟수는 최소값에 도달하는데 더 많은 시간과 계산이 필요하기 때문에 전반적인 효울성을 떨어뜨린다. [IBM] gradient-descent

Untitled

학습률은 모델과 데이터에 따라 달라지므로, 실험과 검증을 통해 최적의 값을 찾는 것이 중요하다.

가중치 w값 업데이트의 수식 표현은 아래와 같다.

$$ w^* = w - \alpha \frac{\partial l(w, b)}{\partial w}  $$

계산된 기울기(경사)를 사용하여 가중치 w값을 업데이트하는 코드 표현은 아래와 같다.