💻 본업(컴공생) 이야기/파이토치 공부 이야기

[파이토치 (PyTorch)] 3. Gradient Descent (경사 하강법)

st오리🐥 2025. 1. 7. 15:04
728x90
반응형
SMALL

 

 

Gradient Descent(경사 하강법)은 쉽게 말해서 '최적의 답을 찾기 위해 조금씩 내려가는 과정' 이라고 설명할 수 있다.

 

 


1. 개념 설명

경사하강법은 **산에서 가장 낮은 지점(최소점)**을 찾는 것과 비슷합니다.

  • 산 = 손실 함수(loss function) → 모델의 오차를 측정하는 함수
  • 최저점 = 손실이 가장 작은 지점 → 모델이 가장 좋은 상태
  • 내려가는 방향 = 기울기(gradient) → 손실을 줄이는 방향

목표:
손실 함수를 최소화하는 **가중치(weight)**와 편향(bias) 값을 찾아 모델 성능을 최적화합니다.


2. 원리

  1. 기울기(Gradient) 계산:
    • 현재 위치에서 얼마나 가파른지(기울기)를 계산합니다.
  2. 방향 결정:
    • 기울기가 가장 가파르게 내려가는 방향을 선택합니다.
  3. 한 걸음 이동:
    • 일정한 크기(학습률, learning rate)만큼 이동합니다.
  4. 반복:
    • 더 이상 내려갈 수 없을 때까지 반복합니다.

  • W: 가중치(Weight)
  • L: 손실 함수(Loss Function)
  • η: 학습률(Learning Rate)
  • ∂L / ∂W: 손실 함수의 가중치에 대한 기울기(Gradient)

3. 비유로 이해하기

  1. 산 등반 예시:
    • 어두운 산에서 손전등을 들고 아래로 내려간다고 상상해 보세요.
    • 손전등을 비추며 가장 가파른 길을 찾아 한 걸음씩 내려갑니다.
    • 한 번에 너무 멀리 내려가면(학습률이 너무 큼) 목표 지점을 놓칠 수 있습니다.
    • 한 번에 너무 조금씩 움직이면(학습률이 너무 작음) 시간이 오래 걸릴 수 있습니다.

 

4. 학습률(learning rate)의 중요성

  1. 학습률이 너무 크면:
    • 최적점을 지나쳐 버려 오히려 손실이 커질 수 있습니다.
    • 학습이 불안정하고 진동할 수 있습니다.
  2. 학습률이 너무 작으면:
    • 최적점에 도달하는 데 시간이 오래 걸립니다.
    • 경우에 따라 최적점에 도달하지 못할 수도 있습니다.

학습률 예시:

  • 적절한 학습률: 손실이 점점 줄어들며 최적점에 도달
  • 너무 큰 학습률: 손실이 튀면서 불안정함
  • 너무 작은 학습률: 손실이 천천히 줄어들어 시간이 오래 걸림

5. 경사하강법의 종류

  1. 배치 경사하강법(Batch Gradient Descent)
    • 데이터 전체를 사용해 기울기를 계산합니다.
    • 정확하지만 데이터가 많을 경우 느립니다.
  2. 확률적 경사하강법(Stochastic Gradient Descent, SGD)
    • 한 번에 하나의 데이터만 사용하여 기울기를 계산합니다.
    • 계산이 빠르지만, 손실이 흔들리며 불안정할 수 있습니다.
  3. 미니배치 경사하강법(Mini-Batch Gradient Descent)
    • 데이터를 작은 그룹(미니배치)으로 나눠 학습합니다.
    • 배치와 SGD의 장점을 결합하여 속도와 안정성을 모두 고려합니다.

 

https://colab.research.google.com/drive/11zeeX3STugSKe4xSRuu7KXBEJppP0lHP?usp=sharing

 

Gradient Descent로 선형회귀

Colab notebook

colab.research.google.com

 

728x90
반응형
LIST