새소식

머신러닝 & 딥러닝

[최적화] 경사 하강법(Gradient Descent)

  • -

경사 하강법(Gradient Descent)은 최적화 알고리즘 중 하나로, 손실 함수를 최소화하기 위해 매개변수(parameter)를 업데이트하는 방법이다. 이 방법은 함수의 그래디언트(기울기)를 따라 가장 작은 손실 값을 찾으려고 한다. 경사 하강법은 머신러닝 및 딥러닝에서 널리 사용되는 최적화 방법이다.

경사 하강법의 기본 아이디어는 매개변수를 현재 위치에서 손실 함수의 그래디언트와 반대 방향으로 업데이트하여 손실 값을 줄이는 것이다.

 

gradient descent

 

손실 함수를 $L(θ)$라고 할 때, 매개변수 $\theta$의 그래디언트는 다음과 같이 정의된다.

 

$\nabla_\theta L(\theta) = \left[ \frac{\partial L(\theta)}{\partial \theta_1}, \frac{\partial L(\theta)}{\partial \theta_2}, \cdots, \frac{\partial L(\theta)}{\partial \theta_n} \right]$

 

경사 하강법을 사용하여 매개변수를 업데이트하는 공식은 다음과 같다.

 

$\theta_{t+1} = \theta_t - \alpha \nabla_\theta L(\theta_t)$

 

여기서 $\theta$는 시간 스텝 $t$에서의 매개변수, $\alpha$는 학습률(learning rate)라고 하는 하이퍼파라미터다. 학습률은 경사 하강법의 업데이트 크기를 조절하는 역할을 한다.

 

 

학습률의 크기에 따라 경사 하강법의 성능에 여러 문제가 발생할 수 있다.

학습률이 너무 작을 때

  • 속도가 느려져 수렴하는 데 오랜 시간이 걸린다.
  • 최적점에 도달하기 전에 학습이 멈출 수 있다.
  • 지역 최솟값(local minimum)에 갇힐 가능성이 높아진다.

 

학습률이 너무 클 때

  • 최적점을 지나쳐 버릴 수 있으며, 이로 인해 발산할 수 있다.
  • 손실 함수의 값이 불안정해지고, 진동이 심해진다.

 

따라서 학습률은 적절한 크기로 설정해야 한다. 너무 크지도, 너무 작지도 않은 학습률을 선택하면, 알고리즘이 수렴하는 속도가 적절하게 유지되면서 전역 최솟값(global minimum)에 도달할 가능성이 높아진다. 이를 위해 여러 학습률을 실험해 보거나, 학습률 스케줄링 기법을 사용하여 학습 과정 동안 학습률을 조절할 수 있다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.