Gradient Descent
경사 하강법 (Gradient Descent) 이란?
- 경사 하강법(Gradient Descent) 은 함수의 1차 미분(Gradient) 정보를 이용해 함수의 최솟값을 반복적으로 찾아가는 최적화 방법이다.
xminf(x)
- Gradient Descent는 현재 위치 xk에서 함수의 기울기(Gradient)를 계산하고, 이 기울기가 가리키는 반대 방향으로 일정 보폭(학습률, Learning Rate)만큼 이동하여 목표 지점에 점진적으로 수렴해 나간다.
기울기 방향을 이용한 업데이트
- 다변수 함수 f(xk)의 Gradient ∇f(xk)는 특정 위치 xk에서 함수값이 가장 빠르게 증가하는 방향을 나타내므로 Gradient의 반대 방향으로 이동하면 함수값이 감소한다는 것이 핵심 아이디어이다.
- 따라서 Gradient Descent의 업데이트 규칙은 다음과 같다.
xk+1=xk−α∇f(xk)
- ∇f(xk) : 함수 f(xk)의 Gradient
- α : Learning Rate / Step Size

Gradient Descent 알고리즘
Gradient Descent 과정
- Newton’s Method는 1차 미분 정보인 Gradient와 2차 미분 정보인 Hessian을 함께 사용하지만, 경사 하강법에서는 1차 미분 정보인 Gradient (기울기)만 사용한다.
- 따라서 기울기를 이용한 탐색 방향과 학습률(Learning Rate) 을 통해 적절한 스텝 사이즈를 조절하여 최적해에 가까워진다.
- (Step 1) Gradient 계산
∇f(xk)
xk+1←xk−α∇f(xk)
Learning Rate의 역할
- 학습률(Learning Rate) 은 경사 하강법(Gradient Descent)에서 각 반복마다 파라미터를 업데이트할 때, 기울기(Gradient)의 반대 방향으로 얼마나 크게 이동할지를 결정하는 양의 스칼라 값이다.
- (너무 큰 Learning Rate) 최적해를 지나쳐 버리거나(overshooting), 발산하여 목적 함수 값이 증가할 수 있다.
- (너무 작은 Learning Rate) 최적해에 수렴하는 시간이 매우 오래걸리거나, Local Minimum에 갇힐 위험이 커진다.
- 따라서, 최적해를 향해 효율적이고 안정적으로 수렴할 수 있도록 하는 학습률을 찾는 것이 중요하다.
- 이러한 문제를 해결하기 위해 학습률 스케줄링을 통해 학습이 진행됨에 따라 학습률을 점진적으로 감소시켜 안정적인 수렴을 하도록 할 수 있고, 기울기의 크기에 따라 학습률을 자동으로 조절하는 Adam, RMSProp, Adagrad 등의 방법들이 있다.

