경사 하강법

AI
gemma-4-31b
작성자
익명
작성일
2026.07.12
조회수
62
버전
v2

📋 문서 버전

이 문서는 2개의 버전이 있습니다. 현재 최신 버전을 보고 있습니다.

경사 하강법

개요

경사 하강법(Gradient Descent)은 머신러닝에서 모델의 파라미터를 최적화하기 위한 기본적인 최적화 알고리즘입니다. 이 방법은 비용 함수(cost function)의 기울기(gradient)를 계산하여, 매개변수를 반복적으로 조정해 최소값을 찾는 과정입니다. 경사 하강법은 신경망, 회귀 모델 등 다양한 학습 알고리즘에서 핵심적인 역할을 합니다.


1. 기본 개념

1.1 정의

경사 하강법은 목표 함수를 최소화하기 위해 매개변수를 반복적으로 업데이트하는 방법입니다. 수학적으로, 이는 다음과 같은 식으로 표현됩니다:

$$ \theta_{t+1} = \theta_t - \eta \cdot \nabla J(\theta_t) $$

  • $\theta$: 모델의 매개변수
  • $\eta$: 학습률(learning rate)
  • $J(\theta)$: 비용 함수

1.2 목적

  • 모델 정확도 향상: 데이터와 예측값 간 오차를 최소화합니다.
  • 최적화: 복잡한 다변량 함수의 최솟값을 효율적으로 찾습니다.

2. 경사 하강법의 종류

2.1 배치 경사 하강법 (Batch Gradient Descent)

  • 특징: 모든 데이터 포인트를 사용해 기울기를 계산합니다.
  • 장점: 안정적인 수렴, 낮은 변동성
  • 단점: 대규모 데이터 처리에 비효율적

2.2 확률적 경사 하강법 (Stochastic Gradient Descent, SGD)

  • 특징: 하나의 데이터 포인트만 사용해 기울기를 계산합니다.
  • 장점: 빠른 수렴, 메모리 효율성
  • 단점: 고주파 변동으로 인한 불안정성

2.3 미니배치 경사 하강법 (Mini-batch Gradient Descent)

  • 특징: 데이터를 작은 배치로 나누어 계산합니다.
  • 장점: 배치와 SGD의 중간적 균형, 병렬 처리 가능
  • 단점: 하이퍼파라미터(배치 크기) 조정 필요
방법 데이터 사용량 속도 안정성
배치 전체 느림 높음
SGD 하나 빠름 낮음
미니배치 작은 배치 중간 중간

3. 알고리즘 작동 원리

3.1 단계별 과정

  1. 초기 매개변수 설정: 무작위 값으로 시작합니다.
  2. 비용 함수 계산: 현재 매개변수로 예측값과 실제값의 오차를 측정합니다.
  3. 기울기 계산: 비용 함수에 대한 편미분을 통해 기울기를 구합니다.
  4. 매개변수 업데이트: 학습률을 곱한 기울기를 현재 매개변수에서 뺍니다.
  5. 반복: 수렴 조건(예: 변화량이 작아짐)에 도달할 때까지 반복합니다.

3.2 예시 (선형 회귀)

import numpy as np

# 데이터 생성
X = np.array([[1], [2], [3]])
y = np.array([2, 4, 6])

# 초기 매개변수
theta = np.random.rand(1)

# 학습률
eta = 0.1

# 경사 하강법 반복
for _ in range(1000):
    gradient = (2/len(X)) * X.T @ (X @ theta - y)
    theta -= eta * gradient


4. 주요 도전 과제

4.1 학습률 선택

  • 문제: 너무 큰 경우 발산, 너무 작은 경우 수렴 느림
  • 해결책: 동적 학습률 조절(예: Adam 알고리즘)

4.2 지역 최소값 (Local Minima)

  • 문제: 함수가 다수의 최솟값을 가질 때, 전역 최소에 도달하지 못함
  • 해결책: SGD의 노이즈 활용, 모멘텀 기법

4.3 허상 최소값 (Saddle Point)

  • 문제: 기울기가 0인 지점에서 수렴이 멈춤
  • 해결책: 이차 미분 정보 사용(예: 뉴턴 방법)

5. 최적화 기법

5.1 모멘텀 (Momentum)

  • 원리: 이전 기울기의 방향을 고려해 업데이트
  • 수식:
    $$ v_t = \beta v_{t-1} + \eta \cdot \nabla J(\theta_t) \\ \theta_{t+1} = \theta_t - v_t $$

5.2 RMSProp

  • 원리: 기울기의 제곱 평균을 이용해 학습률 조정
  • 장점: 고정된 학습률 대신 동적 조절 가능

5.3 Adam 알고리즘

  • 결합 기법: 모멘텀 + RMSProp
  • 수식:
    $$ m_t = \beta_1 m_{t-1} + (1-\beta_1)\nabla J(\theta_t) \\ v_t = \beta_2 v_{t-1} + (1-\beta_2)(\nabla J(\theta_t))^2 \\ \hat{m}_t = \frac{m_t}{1 - \beta_1^t}, \quad \hat{v}_t = \frac{v_t}{1 - \beta_2^t} \\ \theta_{t+1} = \theta_t - \eta \cdot \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} $$

6. 결론

경사 하강법은 머신러닝 모델의 학습을 가능하게 하는 핵심 알고리즘입니다. 다양한 변형(배치, SGD, 미니배치)과 최적화 기법(모멘텀, Adam)을 통해 효율적인 수렴이 가능합니다. 그러나 학습률 설정이나 지역 최소값 문제와 같은 도전 과제를 극복하기 위해 지속적인 연구가 필요합니다.


경사 하강법의 기하학적 해석

경사 하강법은 비용 함수를 3차원 공간상의 지형(Terrain)으로 시각화하여 이해할 수 있습니다.

  • 비용 함수 곡면: 매개변수 $\theta_1, \theta_2$를 $x, y$축으로, 비용 함수 $J(\theta)$를 $z$축(높이)으로 설정하면, 모델의 오차는 하나의 거대한 산맥이나 분지와 같은 곡면으로 나타납니다.
  • 기울기의 방향: 특정 지점에서 계산된 기울기(Gradient) $\nabla J(\theta)$는 곡면에서 가장 가파르게 상승하는 방향을 가리킵니다.
  • 하강 과정: 경사 하강법은 이 기울기의 반대 방향($-\nabla J(\theta)$)으로 이동합니다. 이는 마치 안개 낀 산에서 현재 발을 딛고 있는 지점의 경사를 확인하고, 가장 가파르게 내려가는 방향으로 한 걸음씩 이동하여 골짜기의 최저점(Global Minimum)을 찾는 과정과 같습니다.

최적화 알고리즘 비교: 경사 하강법 vs 뉴턴 방법

경사 하강법은 1차 미분(Gradient)만을 사용하는 반면, 뉴턴 방법(Newton's Method)은 2차 미분(Hessian matrix) 정보를 활용하여 최적의 경로를 찾습니다.

비교 항목 경사 하강법 (Gradient Descent) 뉴턴 방법 (Newton's Method)
미분 차수 1차 미분 (Gradient) 2차 미분 (Hessian)
수렴 속도 상대적으로 느림 (선형 수렴) 매우 빠름 (이차 수렴)
계산 복잡도 낮음 $\mathcal{O}(n)$ 매우 높음 $\mathcal{O}(n^3)$ (Hessian 역행렬 계산)
학습률 의존도 $\eta$ 설정에 매우 민감함 학습률 의존도가 낮거나 필요 없음
안정성 안장점(Saddle point)에서 정체 가능 안장점에서 불안정하거나 발산 가능성 있음

학습률의 직관적 이해와 보폭

학습률($\eta$)은 최적의 지점을 향해 이동할 때의 '보폭(Step size)'으로 비유할 수 있습니다.

  • 큰 보폭 ($\eta \uparrow$): 한 번에 크게 이동하므로 목적지에 빠르게 도달할 가능성이 있지만, 최저점을 지나쳐 반대편으로 튀어 오르는 오버슈팅(Overshooting) 현상이 발생하여 발산할 수 있습니다.
  • 작은 보폭 ($\eta \downarrow$): 매우 신중하게 이동하므로 안정적으로 수렴하지만, 학습 시간이 지나치게 오래 걸리며 지역 최소값(Local Minima)에서 빠져나오지 못할 위험이 큽니다.

동적 학습률 스케줄링 (Learning Rate Scheduling)

고정된 학습률의 한계를 극복하기 위해 학습 과정에 따라 $\eta$를 동적으로 조절하는 스케줄링 기법을 사용합니다.

1. 주요 스케줄링 기법

  • Step Decay: 특정 에포크(Epoch)마다 학습률을 일정 비율로 감소시킵니다. $$\eta_{t} = \eta_0 \cdot \gamma^{\lfloor \text{epoch}/s \rfloor}$$ (여기서 $\gamma$는 감소율, $s$는 감소 주기)
  • Cosine Annealing: 코사인 함수 그래프를 따라 학습률을 부드럽게 감소시켜, 초기에는 빠르게 탐색하고 후반부에는 정밀하게 수렴하도록 유도합니다. $$\eta_t = \eta_{min} + \frac{1}{2}(\eta_{max} - \eta_{min})\left(1 + \cos\left(\frac{T_{cur}}{T_{max}}\pi\right)\right)$$

2. 학습률 변화 그래프 (개념도)

  • Step Decay: 계단식 하강 곡선 $\rightarrow$ $\text{High} \rightarrow \text{Mid} \rightarrow \text{Low}$
  • Cosine Annealing: 부드러운 S자형 하강 곡선 $\rightarrow$ $\text{Smooth Curve}$

Adam 알고리즘의 현대적 효용성 분석

Adam(Adaptive Moment Estimation)이 현대 딥러닝의 표준 최적화 알고리즘으로 자리 잡은 이유는 '방향'과 '속도'를 동시에 최적화하기 때문입니다.

  1. 적응적 학습률 (Adaptive Learning Rate): RMSProp의 원리를 통해 각 파라미터마다 서로 다른 학습률을 적용합니다. 자주 업데이트되는 파라미터는 보폭을 줄이고, 드물게 업데이트되는 파라미터는 보폭을 넓혀 효율적인 학습을 가능하게 합니다.
  2. 관성 유지 (Momentum): 모멘텀 기법을 통해 이전 기울기의 방향을 기억합니다. 이는 경사가 완만한 구간에서도 가속도를 유지하게 하여 안장점(Saddle point)을 빠르게 탈출하고 지역 최소값의 영향을 최소화합니다.
  3. 결합 효과: 결과적으로 Adam은 하이퍼파라미터 $\eta$에 대한 민감도가 낮으면서도, 복잡한 고차원 손실 함수 표면에서 가장 빠르고 안정적으로 전역 최솟값에 근접하는 성능을 보입니다.

참고 자료

AI 생성 콘텐츠 안내

이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?