ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #2 신경망의 기본 구조와 활성화 함수, 역전파 알고리즘
    ML & DL 2025. 3. 18. 20:00

    경사 하강법(Gradient Descent) 완벽 이해

    딥러닝과 머신러닝에서 모델이 학습하는 과정에서 중요한 개념 중 하나가 경사 하강법(Gradient Descent)입니다. 경사 하강법은 손실 함수(Loss Function)를 최소화하기 위해 모델의 가중치를 최적화하는 핵심 알고리즘입니다. 이번 글에서는 경사 하강법의 원리, 종류, 그리고 실제로 적용하는 방법에 대해 자세히 알아보겠습니다.


    1. 경사 하강법(Gradient Descent)이란?

    경사 하강법은 함수의 기울기(Gradient)를 이용하여 최저점을 찾아가는 최적화 알고리즘입니다. 신경망 학습 과정에서는 손실 함수(Loss Function)의 최소값을 찾는 과정을 의미합니다.

    (1) 경사 하강법의 기본 개념

    경사 하강법은 다음과 같은 과정으로 이루어집니다:

    1. 현재 가중치(파라미터)에서 손실 함수의 기울기를 계산합니다.
    2. 기울기가 가리키는 방향의 반대쪽(하강 방향)으로 가중치를 조금씩 조정합니다.
    3. 손실 함수 값이 더 이상 줄어들지 않을 때까지 반복합니다.

    이를 수식으로 표현하면 다음과 같습니다:

    $$ w := w - \alpha \frac{\partial L}{\partial w} $$

    • w: 조정할 가중치(Weight)
    • α (알파, 학습률; Learning Rate): 가중치를 조정하는 크기
    • ∂L/∂w: 손실 함수(Loss Function)에 대한 가중치의 미분 값(기울기)

    이 과정이 반복되면서 모델은 점점 더 최적의 가중치를 찾아갑니다.


    2. 경사 하강법의 종류

    경사 하강법에는 여러 가지 변형이 있으며, 각 방법은 데이터의 특성과 모델의 크기에 따라 적절하게 선택할 수 있습니다.

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

    • 데이터 전체를 사용하여 한 번의 업데이트를 수행합니다.
    • 모든 데이터를 사용하므로 안정적이지만, 계산량이 많아 속도가 느릴 수 있습니다.
    • 손실 함수의 변동이 적어 수렴이 안정적입니다.

    업데이트 식:
    $$ w := w - \alpha \frac{1}{m} \sum_{i=1}^{m} \frac{\partial L_i}{\partial w} $$

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

    • 데이터 한 개씩을 사용하여 가중치를 업데이트합니다.
    • 빠르게 학습할 수 있지만, 최적점 근처에서 진동(수렴이 불안정)할 수 있습니다.
    • 배치 경사 하강법보다 더 빠르게 계산이 가능하지만, 최적의 값 근처에서 불안정할 수 있습니다.

    업데이트 식:
    $$ w := w - \alpha \frac{\partial L_i}{\partial w} $$

    (3) 미니배치 경사 하강법 (Mini-Batch Gradient Descent)

    • 배치 경사 하강법과 확률적 경사 하강법의 절충안입니다.
    • 일정한 크기의 미니배치(Mini-Batch)를 샘플링하여 업데이트를 수행합니다.
    • 계산량과 수렴 속도의 균형이 잘 맞아 딥러닝에서 가장 널리 사용됩니다.

    업데이트 식:
    $$ w := w - \alpha \frac{1}{n} \sum_{i=1}^{n} \frac{\partial L_i}{\partial w} $$

    배치 크기(Batch Size)에 따른 차이점

    • 배치 크기가 크면 안정적이지만 느림 (Batch Gradient Descent)
    • 배치 크기가 작으면 빠르지만 불안정함 (SGD)
    • 미니배치는 적절한 균형을 제공함

    3. 학습률(Learning Rate)의 중요성

    학습률(α)은 경사 하강법에서 매우 중요한 하이퍼파라미터입니다. 학습률이 너무 크거나 작으면 최적의 결과를 얻지 못할 수 있습니다.

    • 학습률이 너무 크면: 최적점을 지나치며 오차가 줄어들지 않음 (발산)
    • 학습률이 너무 작으면: 학습이 너무 느리게 진행되거나 지역 최적점에 갇힘

    해결 방법: 학습률을 점진적으로 감소시키는 기법(Adaptive Learning Rate) 사용


    4. 경사 하강법의 변형 알고리즘

    기본적인 경사 하강법을 보완하여 더 빠르고 안정적으로 학습할 수 있도록 다양한 변형 알고리즘이 개발되었습니다.

    (1) 모멘텀(Momentum)

    • 이전 기울기의 영향을 반영하여 학습 속도를 높이는 방법입니다.
    • 가속 효과를 주어 최적점에 더 빠르게 도달할 수 있습니다.

    $$ v := \beta v - \alpha \frac{\partial L}{\partial w} $$
    $$ w := w + v $$

    (여기서 β는 모멘텀 계수, 일반적으로 0.9 사용)

    (2) 아다그라드(Adagrad)

    • 학습률을 각 가중치마다 다르게 조정하여 학습 속도를 개선하는 방법입니다.
    • 자주 업데이트되는 가중치는 학습률이 작아지고, 적게 업데이트되는 가중치는 학습률이 커집니다.

    (3) RMSProp

    • 아다그라드의 문제점을 개선한 방법으로, 최근 기울기의 평균을 유지하며 학습률을 조정합니다.

    (4) Adam(Adaptive Moment Estimation)

    • 모멘텀과 RMSProp을 결합하여 학습 속도를 높이고 안정성을 유지하는 알고리즘입니다.
    • 현재 가장 널리 사용되는 최적화 알고리즘 중 하나입니다.

    5. 결론

    경사 하강법은 딥러닝 모델의 학습 과정에서 손실 함수를 최소화하기 위해 사용되는 중요한 알고리즘입니다.

    • 배치 경사 하강법: 전체 데이터셋을 사용하여 업데이트 → 안정적이지만 느림
    • 확률적 경사 하강법: 개별 데이터 샘플을 사용하여 업데이트 → 빠르지만 불안정
    • 미니배치 경사 하강법: 두 방법의 절충안 → 가장 널리 사용됨
    • 학습률 조정이 중요하며, Adam, RMSProp, 모멘텀과 같은 변형 기법이 학습 속도 향상에 기여할 수 있음

    딥러닝 모델을 학습할 때는 데이터 특성과 모델에 맞는 최적화 방법을 선택하는 것이 중요합니다. 직접 다양한 최적화 방법을 실험해 보면서 모델의 성능을 비교해 보는 것도 좋은 학습 방법이 될 것입니다!

Designed by Tistory.