머신러닝 모델은 데이터에서 최적의 정답을 맞히기 위해 수많은 수치(파라미터)를 학습합니다. 머신러닝 모델의 학습을 위한 기본 방법으로 경사하강법(Gradient Descent) 과 역전파(Backpropagation) 라는 두 개의 강력한 알고리즘이 있습니다. 하지만 실제 데이터와 복잡한 모델에서는 단순한 경사하강법만으로는 충분하지 않습니다. 그래서 더 빠르고 안정적으로 학습을 돕는 다양한 최적화 기법들이 개발되었습니다.
🏔️ 경사하강법이란?
경사하강법은 모델이 예측한 값과 실제 값의 차이(오차)를 줄이기 위해 모델 파라미터를 조금씩 수정하는 방법입니다.
📌 핵심 개념
- 손실 함수(Loss Function): 얼마나 틀렸는지를 수치로 나타냄
예: 평균제곱오차(MSE), 교차 엔트로피 등
-
- 파라미터(Parameter): 모델이 학습을 통해 조정하는 값들 (예: 가중치 W, 편향 b)
- 학습률(Learning Rate, α): 한 번에 얼마만큼 수정할지 결정하는 크기
📉 수식 예시
-
- θ : 현재 파라미터
- α : : 학습률
- ∇θJ(θ) : : 손실 함수 J에 대한 파라미터의 미분 (기울기)
🎯 쉽게 예를 들면…
고양이 사진을 강아지로 분류했다면 → 오차가 크기 때문에 파라미터를 조정 → 다음번에는 더 정확한 분류를 하도록 학습됨
🔄 역전파(Backpropagation)이란?
"오차를 뒤로 전달해 각 층이 얼마나 잘못했는지 계산하고 수정하는 과정"
신경망은 여러 층(layer)으로 구성됩니다. 단순히 앞에서부터 데이터를 흘려보내는 것만으로는 어느 부분이 틀렸는지 알 수 없습니다. 따라서 학습 과정에서는 출력에서부터 입력 방향으로 오차를 역방향으로 전파(backpropagate) 하며, 각 층의 가중치를 조정합니다.
🧮 동작 과정
- 순방향 계산 (Forward Pass)
- 입력 → 예측값 생성 → 손실 계산
- 역방향 계산 (Backward Pass)
- 손실을 기준으로 각 층의 기여도 계산 (미분, chain rule 활용)
- 가중치마다 얼마나 조정해야 하는지 계산
- 파라미터 업데이트
- 경사하강법을 사용하여 각 가중치를 조금씩 수정
A⚠️ 학습률 주의사항
-
- 너무 크면: 오차가 줄지 않고 발산하거나 발동산 (overshooting)
- 너무 작으면: 너무 느려서 오랜 시간 필요
🔧 해결책:
-
- 적응형 옵티마이저 사용 (Adam, RMSProp 등) → 자동으로 학습률을 조절해줌
📌 경사하강법과 역전파 요약
-
- 경사하강법: 모델 오차를 줄이기 위해 파라미터를 반복적으로 업데이트하는 알고리즘
- 역전파: 오차를 네트워크의 모든 층에 전달해 어떤 파라미터가 문제인지 계산
- 두 알고리즘은 딥러닝 학습의 핵심이며, 프레임워크(TensorFlow, PyTorch)가 이를 자동으로 처리해줌
🚀 최적화 기법 (SGD, Momentum, Adam 등)
🏃♂️ 확률적 경사하강법 (Stochastic Gradient Descent, SGD)
기본 경사하강법은 모든 데이터를 한 번에 보고 학습합니다. 하지만 데이터가 수천, 수만 건이 넘는 경우 이 방식은 너무 느리고 비효율적입니다.
🔑 SGD는 한 번에 하나의 데이터(혹은 소수의 데이터)만 보고 학습합니다.
-
- 장점: 빠르고 메모리 효율적
- 단점: 각 업데이트가 불안정하고 진동이 클 수 있음
💫 모멘텀 (Momentum) : 관성을 이용해 흔들림을 줄이고 빠르게 수렴하는 기법
기본 SGD는 매번 새로운 방향으로 흔들리며 학습합니다. 모멘텀은 이전 방향을 기억해서 관성을 유지하며 이동합니다. 마치 경사로에서 굴러가는 공처럼, 방향이 비슷하면 더 빠르게 이동하고, 갑작스러운 방향 전환은 완화합니다.
🌀 결과적으로:
-
- 수렴 속도 증가
- 불필요한 진동 억제
🧠 적응형 학습률: AdaGrad, RMSProp, Adam
모든 파라미터에 동일한 학습률을 적용하면 학습이 비효율적일 수 있습니다. 적응형 최적화 기법은 파라미터마다 다른 학습률을 자동으로 조정해줍니다.
📘 AdaGrad : 누적된 기울기 정보를 사용해 학습률 조절
-
- 자주 바뀌는 파라미터는 학습률 ↓
- 잘 안 바뀌는 파라미터는 학습률 유지
- 단, 학습률이 너무 빨리 작아져 멈출 수 있다는 것이 단점
💧 RMSProp : AdaGrad의 단점을 보완
-
- 최근 기울기만을 기준으로 학습률 조절
- 신경망 학습에 매우 적합
⚡ Adam (Adaptive Moment Estimation) : 가장 많이 쓰이는 현대적 최적화 기법
-
- 모멘텀 + RMSProp을 결합한 방식
- 기울기의 평균(모멘텀)과 분산(RMSProp)을 동시에 고려
- 복잡한 신경망 학습에 강력함
🛠️ 최적화 기법 비교 요약
기법
|
특징
|
장점
|
단점
|
SGD
|
한 샘플씩 기울기 계산
|
간단, 메모리 효율적
|
진동 크고 수렴 느림
|
Momentum
|
과거 기울기 반영
|
빠른 수렴, 진동 억제
|
하이퍼파라미터 조정 필요
|
RMSProp
|
최근 기울기 기반 학습률 조절
|
순환신경망에 적합
|
수렴 속도 느릴 수 있음
|
Adam
|
모멘텀 + RMSProp
|
빠르고 자동 조정 가능
|
복잡도 높고 일부 문제에 과적합 가능
|
💡 어떤 최적화 기법을 쓸까?
-
- Adam: 복잡한 신경망(CNN, RNN 등)에서 기본값처럼 사용
- SGD + Momentum: 최종 성능을 조금 더 끌어올릴 때 사용
- RMSProp: 순환 신경망(RNN) 계열에서 좋은 성능
- AdaGrad: 희소 데이터(예: 추천시스템)에서 사용
📌 최적화 기법 요약
-
- 경사하강법은 기본이지만, 현실에서는 더 강력한 최적화 알고리즘이 필요
- SGD → 모멘텀 → Adam 순으로 성능 향상
- 대부분의 딥러닝 프레임워크는 다양한 옵티마이저를 내장하고 있어 쉽게 설정 가능
'인공지능 기본개념 및 용어' 카테고리의 다른 글
3.2.2 머신러닝 모델 학습과 평가 - Part4. 모델 평가 도구 (1) | 2025.05.26 |
---|---|
3.2.2 머신러닝 모델 학습과 평가 - Part3. 모델 평가 (1) | 2025.05.26 |
3.2.2 머신러닝 모델 학습과 평가 - Part1. 개요 (1) | 2025.05.26 |
3.2.1 머신러닝의 네 가지 주요 유형 이해하기 (4) | 2025.05.25 |
최적해와 볼록성 (Optimality and Convexity) (0) | 2025.05.13 |