📍 1. 최적화 알고리즘 (Optimization Algorithms)
🧠 목적:
손실 함수(Loss)를 줄이기 위해, **모델의 파라미터(가중치 w, 편향 b)**를
반복적으로 조정하는 알고리즘.
🔹 기본 개념
용어설명
| 손실 함수 (Loss Function) | 예측값과 실제값의 차이를 계산 |
| 기울기 (Gradient) | 손실 함수가 가장 빨리 줄어드는 방향 |
| 학습률 (Learning Rate) | 한 번에 얼마나 이동할지를 결정 |
🔧 최적화 알고리즘 종류
알고리즘특징
| GD (Gradient Descent) | 전체 데이터로 기울기 계산 → 느리지만 정확 |
| SGD (Stochastic GD) | 데이터 1개씩 랜덤으로 → 빠르지만 진동 발생 가능 |
| SGD + Momentum | 이전 방향을 고려해 "관성" 있게 이동 → 진동 감소 |
| NAG (Nesterov) | 미리 한 발 앞에서 기울기 계산 → 더 빠른 수렴 |
| Adagrad | 자주 쓰는 파라미터는 학습률 ↓ 드물게 쓰는 건 유지 |
| RMSProp | Adagrad 보완 → 지나치게 작아지는 학습률 방지 |
| Adam | Momentum + RMSProp 결합 → 가장 많이 쓰이는 최적화기 |
✅ Adam은 대부분의 상황에서 빠르고 안정적이며 널리 사용돼요.
📍 2. 과적합 (Overfitting)
❓ 과적합이란?
모델이 학습 데이터에는 너무 잘 맞지만,
새로운 데이터에는 성능이 떨어지는 현상
📉 원인
- 너무 큰 모델 (파라미터가 많음)
- 데이터 부족
- 너무 오래 학습함 (epoch이 너무 많음)
- 노이즈까지 외워버림
✅ 해결 방법
방법설명
| 데이터 증강 (Augmentation) | 회전, 자르기, 색 변화 등으로 데이터 다양화 |
| 정규화 (Regularization) | L1, L2 제약으로 가중치 크기를 제한 |
| 드롭아웃 (Dropout) | 학습 중 일부 뉴런 무작위 비활성화 |
| 조기 종료 (Early Stopping) | 검증 성능이 떨어지면 학습 조기 중단 |
| 모델 축소 | 복잡한 모델 대신 더 작은 네트워크 사용 |
📍 3. 배치 정규화 (Batch Normalization)
❓ Internal Covariate Shift란?
각 층의 입력 분포가 학습 중 계속 바뀌는 현상
→ 학습이 느려지고 불안정해짐
💡 배치 정규화란?
미니배치마다 평균 0, 분산 1로 정규화하여
학습을 빠르고 안정적으로 만드는 기술
✅ 효과
- 학습 속도 향상
- Internal Covariate Shift 완화
- 과적합 방지 효과도 있음
🎯 전체 구조 요약
학습 목표
└─ 손실 최소화 (Loss ↓)
└─ 최적화 알고리즘으로 가중치 조정
└─ SGD, Adam, RMSProp 등
학습 문제
└─ 과적합 (Overfitting)
└─ 일반화 성능 저하
해결 방법
├─ 데이터 증가 (증강)
├─ 정규화 (L2 등)
├─ 드롭아웃
└─ 배치 정규화 (BatchNorm)
🧠 보너스: 어떤 알고리즘을 써야 할까?
상황추천 알고리즘
| 처음 시작할 때 | Adam 👍 |
| 데이터가 크고 복잡 | Adam or RMSProp |
| 아주 큰 모델, 튜닝 여유 O | SGD + Momentum |
| 빠르게 테스트하고 싶을 때 | SGD 또는 Adagrad |
'인공지능' 카테고리의 다른 글
| 전이 학습 (Transfer Learning) (0) | 2025.03.27 |
|---|---|
| CNN 아키텍처 발전 흐름 요약 (0) | 2025.03.27 |
| RNN (Recurrent Neural Network) (0) | 2025.03.27 |
| AlexNet (0) | 2025.03.21 |
| CNN (0) | 2025.03.21 |