
1. 오차역전파법
오차역전파법이란 신경망의 출력 오차가 각 층의 파라미터에 얼마나 민감한지(기울기) 를 계산하는 절차이다. 순전파로 예측을 만들고 손실을 계산한 뒤, 그 손실을 연쇄법칙을 이용해 입력 방향(뒤쪽)으로 “거슬러” 전달하며 가중치의 업데이트 방향을 구한다. 오늘날의 딥러닝 프레임워크(PyTorch, TF)의 자동미분이 내부적으로 수행하는 핵심이 바로 이것이다.
1-1. 핵심 개념
- 연쇄법칙(Chain Rule): 복잡한 함수도 “작은 블록의 곱”으로 미분을 나눠 구한다. 레이어를 조합해도 기울기를 만들 수 있는 이유이다.
- 계산 그래프(Computational Graph): 순전파에서 일어난 연산을 그래프로 기록해, 역전파 때 역순으로 기울기를 전파한다.
- 지역성(Locality): 각 레이어는 자기 입력/출력만 알면 자신의 기울기를 계산한다(모듈화·재사용이 쉬움).
- 자동미분 vs. 수치미분: 수치미분은 느리고 부정확해 검산에만 쓴다. 실제 학습은 자동미분이 표준이다.
1-2. 동작 과정
- 순전파: 입력 → 레이어 통과 → 예측 산출
- 손실 계산: 예측과 정답 비교해 스칼라 손실 값 생성
- 역전파: 출력층부터 입력 방향으로 각 레이어의 기울기 계산·전파
- 파라미터 업데이트: 최적화 알고리즘(아래 2장)으로 가중치/편향 갱신
- 반복: 미니배치 단위로 위 과정을 여러 에폭에 걸쳐 반복
2. 최적화함수
2-1. 확률적 경사 하강법(SGD)
- 개념: 미니배치로 근사한 기울기 방향으로 한 걸음씩 이동. 가장 단순하지만 강력한 기준점이 된다.
- 장점: 일반화 성능이 좋은 경우가 많고, 구현·해석이 간단하다.
- 단점: 골짜기(ravine) 지형에서 지그재그로 느리게 전진하며 학습률 튜닝이 예민하다.
2-2. 모멘텀(Momentum)
- 개념: 과거 기울기의 이동 평균(속도) 을 쌓아 한 방향으로 탄력 있게 전진한다.
- 장점: 지그재그 감소, 안장점 탈출에 도움이 된다.
- 단점: 모멘텀 값(보통 0.9 전후)·학습률 조합에 민감하다.
2-3. AdaGrad
- 개념: 파라미터마다 과거의 기울기 제곱 누적을 나눠 학습률을 자동 조절(희소 특징에 유리)한다.
- 장점: 드물게 갱신되는 파라미터에 큰 학습률 부여 → NLP 초창기에서 특히 유리하다.
- 단점: 누적이 계속 커져 학습률이 과도하게 감소(후반 둔화)한다.
2-4. RMSProp
- 개념: AdaGrad의 누적을 지수이동평균으로 완화하여 최근 기울기에 더 가중된다.
- 장점: 비정상(non-stationary) 손실 지형에서 안정적, 실무 기본기이다.
- 단점: 하이퍼파라미터(감쇠율) 튜닝 필요, 이론적 수렴 보장은 제한적이다.
2-5. Adam
- 개념: 모멘텀(1차 모멘트) + RMSProp(2차 모멘트) 결합 + 바이어스 보정.
- 장점: 초기 수렴 빠름, 튜닝 관대, 대다수 과제의 안전한 기본값이다.
- 실무 권장: AdamW(가중치 감쇠를 올바르게 분리) 사용. 워밍업 + 코사인/원사이클 스케줄과 궁합이 좋다.
- 주의: 어떤 비전 과제에선 최종 미세튜닝을 SGD+Momentum로 바꾸면 일반화가 개선되는 사례가 있다.
2-6. 최적화 기법 장/단점 비교
| 옵티마이저 | 장점 | 단점 | 추천 쓰임새 |
|---|
| SGD | 단순, 메모리 적음, 일반화 우수 사례 다수 | 느린 수렴, LR 예민 | 대규모 비전, 최종 미세튜닝 |
| SGD+Momentum | 골짜기 가속, 안정적 | 모멘텀/LR 튜닝 필요 | 대부분의 CV, 레거시 호환 |
| AdaGrad | 희소 특징 강함, 초반 가속 | LR 급감(후반 둔화) | 희소/원-핫, 고정 피처 |
| RMSProp | 비정상 지형에 강함 | 감쇠율 튜닝 필요 | 온라인/스트리밍, RNN 류 |
| Adam/AdamW | 빠른 수렴, 튜닝 관대, 범용성 높음 | 일부 과제서 일반화 이슈 | NLP/멀티모달/탐색 단계 기본 |
빠르게 결과를 보고 싶으면 AdamW + 워밍업 + 스케줄러. 최종 성능을 더 짜내고 싶다면 SGD+Momentum도 시도.
3. 과적합 해결
3-1. 배치정규화(Batch Normalization)
- 아이디어: 각 미니배치의 중간 출력 분포를 정규화해 학습을 안정화.
- 효과: 더 큰 학습률 사용 가능, 수렴 가속, 초기화 민감도 완화.
- 주의: 작은 배치에선 통계가 불안정. 이럴 땐 LayerNorm/GroupNorm 대안 고려. 추론 시엔 러닝 평균/분산을 사용해야 일관.
3-2. 드롭아웃(Dropout)
- 아이디어: 학습 중 임의의 뉴런을 확률적으로 꺼서 공동적응(co-adaptation) 을 막고 앙상블 효과 유도.
- 효과: 과적합 감소, 일반화 향상.
- 주의: CNN+BN 조합에선 효과가 제한적일 때가 있고, 잦은 스킵 연결 구조에선 과도한 비율이 역효과. 학습에서만 적용, 추론에선 비활성.
3-3. 하이퍼파라미터 최적화
- 그리드 서치: 정해둔 격자를 샅샅이 탐색. 쉬우나 차원↑ 시 비효율.
- 랜덤 서치: 범위를 정해 무작위 샘플. 중요한 축(예: 학습률)을 더 잘 건짐(현실적 기본).
- 베이지안 최적화: 성능을 확률모형으로 추정해 “성능이 좋을 만한” 지점을 우선 실험. 예산이 제한된 상황에서 효율적.
3-4. 조기종료(Early Stopping)
- 개념: 검증 손실이 개선되지 않으면 일찍 학습 종료하고 최고 성능 시점의 가중치로 롤백.
- Patience(몇 번 참을지)와 모니터 지표(val_loss/accuracy)를 명시. 노이즈 큰 데이터는 스무딩이나 평균 성능 기준 고려.
3-5. 데이터 증강(Data Augmentation)
- 목적: 데이터 다양성을 인위적으로 늘려 일반화 향상.
- 비전: 기하 변환(회전/크롭/플립), 색변환, CutMix/MixUp, AutoAugment/TrivialAugment.
- 텍스트/오디오: 동의어 치환/역번역, 시간 왜곡/노이즈 주입, SpecAugment.
- 주의: 라벨 보존 원칙. 과도한 증강은 분포 왜곡으로 성능 하락.
3-6. L1, L2 정규화
- L2(가중치 감쇠, Weight Decay): 가중치를 작게 유지해 과적합 억제, 수치 안정성 향상. 대부분의 기본값.
- L1: 희소성 유도(불필요한 연결의 가중치를 0으로). 해석 가능성을 높이고 특성선택 느낌.
- 실무 주의: Adam은 AdamW로 감쇠를 분리해 적용. BN이 있는 네트워크는 바이어스/스케일 파라미터에 감쇠를 제외하는 구성이 흔함.