Optimization Strategy
1. optimizer
scheduler
| 구분 | 옵티마이저 (Optimizer) | 스케줄러 (Scheduler) |
|---|---|---|
| 제어 대상 | 모델의 **가중치(Weights)**와 편향 | 옵티마이저의 학습률(Learning Rate) |
| 목적 | 최적의 파라미터 찾기 (방향 결정) | 효율적이고 안정적인 수렴 (속도 조절) |
| 실행 시점 | 매 배치(Batch) 학습마다 실행 | 주로 에폭(Epoch) 종료 시점 또는 특정 조건 시 |
| 의존성 | 독립적으로 존재 가능 | 반드시 대상이 되는 옵티마이저가 필요함 |
2. 모델구조 최적화
- Model Optimization/Compression
학습된 모델을 실제 서비스 환경(특히 모바일 기기 등)에서 효율적으로 구동하기 위해 모델 자체의 크기와 복잡성을 줄이는 전략.
- 모델 경량화 아키텍처 : MobileNet, EfficientNet과 같이 성능 대비 효율적인 구조를 가진 모델을 사용
- 프루닝 (Pruning): 모델의 성능에 큰 영향을 주지 않는 불필요한 연결(가중치)이나 뉴런을 제거하여 모델을 희소(sparse)하게 만듬
- 양자화 (Quantization): 모델 파라미터의 정밀도(예: 32비트 부동소수점에서 8비트 정수로)를 낮추어 메모리 사용량과 연산 속도를 개선
- 지식 증류 (Knowledge Distillation): 크고 복잡한 “교사(Teacher)” 모델의 지식을 작고 효율적인 “학생(Student)” 모델로 이전하여, 작은 모델이 큰 모델 수준의 성능을 내도록 함
3. 하이퍼패러미터 튜닝
학습률(learning rate), 배치 크기(batch size), 은닉층의 수, 드롭아웃 비율 등 모델 학습 전 설정해야 하는 값들을 최적의 조합으로 찾는 과정입니다.
- 그리드 탐색 (Grid Search): 가능한 모든 하이퍼파라미터 조합을 시도해 최적의 값을 찾습니다.
- 랜덤 탐색 (Random Search): 무작위로 샘플링된 하이퍼파라미터 조합을 탐색합니다.
- 베이지안 최적화 (Bayesian Optimization): 이전에 시도한 하이퍼파라미터 결과들을 바탕으로 최적의 다음 탐색 지점을 예측하여 효율적으로 최적값을 찾습니다.