본문 바로가기
C.W.K.
Stream
Lesson 02 of 08 · published

옵티마이저

~8 min · training

Level 0Keras 도제
0 XP0/97 lessons0/20 achievements
0/120 XP to next level120 XP to go0% complete

기울기를 실제 갱신으로 바꾸는 규칙

손실 함수가 얼마나 틀렸는지 알려주면 옵티마이저는 기울기를 보고 각 가중치를 어느 방향으로 얼마나 움직일지 정해. 같은 모델과 데이터도 옵티마이저에 따라 빠르게 수렴하거나 헤맬 수 있어. 기울기가 원시 신호라면 옵티마이저는 그 신호를 사용하는 정책이야.

옵티마이저특징알맞은 때
Adam적응형 학습률기본 시작점
AdamW가중치 감쇠를 분리한 Adam사전 학습 모델 미세 조정
SGD단순하고 모멘텀 사용스케줄을 잘 조정한 학습
RMSprop매개변수별 적응형 갱신RNN, 비정상 목적 함수
MuonNewton 방식 갱신Keras 3.10의 실험적 선택

잘 모르겠다면 Adam으로 시작해. 학습률이 완벽하지 않아도 비교적 안정적이야. 사전 학습 모델을 미세 조정할 때는 가중치 감쇠를 분리해 큰 기존 가중치의 표류를 막는 AdamW가 좋은 선택이야.

학습률은 고정 숫자보다 시간에 따른 곡선이야

고정 학습률은 초반 속도와 후반 정밀도 사이의 타협이야. Warmup이 있는 cosine decay는 처음 몇백 단계 동안 학습률을 천천히 올려 불안정한 초기 기울기를 견디고, 이후 부드럽게 낮춰 마지막에 세밀하게 수렴하게 해. 스케줄 객체를 옵티마이저의 learning_rate에 넘기면 Keras가 단계마다 갱신해. 성능이 정체될 때 ReduceLROnPlateau 콜백으로 추가 조정할 수도 있어.

Code

Warmup이 있는 cosine decay를 Adam에 적용·python
# Cosine decay with warmup
lr_schedule = keras.optimizers.schedules.CosineDecay(
    initial_learning_rate=1e-3,
    decay_steps=10000,
    alpha=1e-6,       # Minimum learning rate
    warmup_target=1e-3,
    warmup_steps=1000,
)
optimizer = keras.optimizers.Adam(learning_rate=lr_schedule)

External links

Exercise

MNIST를 학습률 [1e-1, 1e-2, 1e-3, 1e-4, 1e-5]로 각각 학습해. 손실 곡선을 그리고 발산, 수렴, 지나치게 느린 경우를 구분해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.