Keras tutorial 졸업한 사람 vs 실제로 ship 하는 사람 가르는 패턴들. KerasTuner 로 hyperparameter sweep, mixed-precision (FP16/BF16) 으로 2-3 배 속도, multi-GPU distribution strategy, post-training quantization, knowledge distillation, training 이 조용히 망가질 때의 debugging playbook.
손으로 다이얼 돌리는 거 그만
learning rate 찍고 layer 폭 찍어가며 오후 내내 돌리면 정확도 몇 점은 올라가. 근데 그거 사실 *직감을 optimizer 삼은* 편향된 blind search 야. KerasTuner 는 그 루프를 갈아치워 — build_model(hp) 안에 *search space* 한 번만 선언하면, tuner 가 trial 돌리고 점수 기록하고 best model 돌려줘.
search 의 구조
핵심은 hyperparameter 가 *타이핑하는 상수* 가 아니라 *sampling 하는 인자* 가 된다는 거. hp.Int('units', 32, 512, step=32) 는 layer 폭을 tunable 축으로 만들고, hp.Float('lr', 1e-4, 1e-2, sampling='log') 는 learning rate 에 같은 걸 해줘. 여기서 sampling='log' 가 중요해 — learning rate 는 로그 스케일에 살거든. trial 을 자릿수마다 고르게 퍼뜨려야지, 범위 위쪽에 몰리면 안 돼.
search 전략 고르기
- RandomSearch — uniform sampling. 정직한 baseline 인데, 작은 space 에선 의외로 이기기 어려워.
- BayesianOptimization — 지난 trial 에 Gaussian-process surrogate 를 fit 해서 개선 기대되는 곳을 sampling. 똑똑하지만 landscape 가 꽤 매끄럽다고 가정해.
- Hyperband — bandit 방식. trial 여러 개를 싸게 시작해서 약한 놈들 일찍 죽이고, 아낀 budget 을 생존자한테 몰아줘. DL 에선 대부분 config 가 별로니까 그걸 빨리 알아내는 게 이득 — 보통 이게 정답 default.