망가지면 거의 다섯 중 하나
학습이 망가질 땐 보통 쓸 만한 에러 메시지로 시끄럽게 터지는 게 아니라, loss 가 안 움직이거나 train-val 간극이 안 좁혀지면서 조용히 망가져. 기술은 *증상* 을 *원인* 으로 거꾸로 읽는 거야. 마주칠 것 대부분은 짧은 체크리스트에 들어와.
- data sanity — label 매칭, normalization 범위, augmentation 이 깨뜨리는지. 1 batch 만 print 해 봐.
- loss 매칭 — activation 과 짝 맞는지 (softmax 출력에
from_logits=True쓰면 조용히 틀려). - learning rate — 너무 크면 NaN, 너무 작으면 정체.
- vanishing / exploding gradient — layer 별 gradient norm 을 찍어보거나 NaN 감지 callback 으로 체크. exploding 이면
clipnorm으로 막아. - overfitting — train ↓ val ↑ 면 augmentation / dropout / L2 추가.
먼저 tiny set 으로 overfit 시켜
scale 하기 전에 32 sample 로 100 epoch 돌려서 일부러 overfit 시켜 봐. 그것도 못 외우면 architecture 자체가 깨진 거야 — data 문제도, LR 문제도 아니고. 5 분짜리 sanity check 가 '왜 학습 안 돼요' 의 80% 를 먼저 걸러내.