에듀테크 프로젝트 대시보드
배치·에포크·학습률 스케줄
| 배치 경사하강법(Batch GD) | 미니배치(Mini-batch) | 확률적 경사하강법(SGD) | |
|---|---|---|---|
| 배치 크기 | 전체 N개 | 보통 16~256개 | 1개 |
| 기울기 | 정확함(잡음 없음) | 적당히 잡음 있음 | 매우 잡음 많음 |
| 속도(1스텝) | 느림(전체 계산) | 빠름 | 가장 빠름 |
| 경로 | 매끄러운 직선에 가까움 | 약간 지그재그 | 많이 지그재그 |
데이터 전체로 기울기를 구하면 정확하지만 매 스텝마다 모든 데이터를 훑어야 해서 느리다. 반대로 1개씩만 보면(SGD) 스텝은 빛의 속도지만 기울기가 들쭉날쭉해 경로가 지그재그를 그린다. 그래서 실무에서는 그 중간인 미니배치를 가장 많이 쓴다 — 적당히 빠르면서 적당히 안정적이다. 재미있게도 이 잡음이 완전히 나쁜 것만은 아니다 — 손실 표면의 작은 웅덩이(지역 최솟값)를 잡음 덕분에 빠져나가기도 한다.
이터레이션 = 미니배치 1개로 파라미터를 1번 업데이트하는 것. 에포크 = 전체 데이터를 한 바퀴(모든 미니배치를 한 번씩) 다 도는 것.
예를 들어 데이터 1,000개, 배치 크기 100이면 1 에포크는 10 이터레이션이다. 보통 모델은 수십~수백 에포크를 돌며, 매 에포크가 끝날 때마다 검증 데이터로 성능을 체크해서 과적합 여부를 감시한다.
파라미터 업데이트는 w ← w − η · 기울기 로 이루어진다. η(에타, learning rate)가 너무 작으면 한 걸음이 너무 짧아 수렴까지 한참 걸리고,
너무 크면 골짜기 반대편으로 넘어가 버려서(overshoot) 진동하거나 아예 발산한다. 아래 데모에서 직접 확인해 보자.
학습 초반엔 목표에서 멀리 있으니 큰 걸음으로 빨리 다가가고, 후반엔 작은 걸음으로 미세 조정하는 게 이상적이다.
그래서 실무에서는 η를 학습 도중 점점 줄이는 스케줄을 함께 쓴다.
η를 절반(또는 0.1배)으로 뚝뚝 떨어뜨림.η ← η × 0.999 처럼 서서히 지수적으로 감소.위 데모에서 학습률 점점 줄이기를 켜고 η를 1.0 근처(원래는 발산하는 값)로 올린 뒤 학습을 시작해 보라 — 초반에 크게 움직이다가도 η가 빠르게 작아지면서 발산하지 않고 진정되는 걸 볼 수 있다.