[Figure source: Trask, A. (2019). Grokking Deep Learning. Manning Publications.]
딥러닝은 머신러닝의 성능을 향상시키거나 궁극적으로는 일반인공지능(AGI)에 도달하는것을 목표로 하는 방법중 일부분. 수많은 변수를 포함하는 문제를 해결하기위해 사용되고는 함.
하이퍼 파라메터는 파라메터(모델 파라메터 / 가중치와 bias를 일컫는)와 달리 데이터로부터 직접적으로 학습되지는 않지만 사용자에 의해 조정되어 모델의 품질, 추론 능력, 학습 알고리즘을 실행하는데 필요한 시간과 메모리에 영향을 미침
제한된 실행 시간과 메모리 예산 하에서 가장 낮은 일반화 오류를 찾는 것 -> 제약조건 하에서 가장 좋은 성능을 찾는 것
가장 중요한 것은 최종 목적을 잃지 않는 것: 테스트 세트에서 좋은 성능을 보이는 것
히든 레이어의 유닛 수는 이산적 (discrete, 자연수이니까)
BatchNorm을 사용할지의 여부 같은 경우는 이진(binary, 사용할지 말지)
가중치 감쇠 계수 (weight decay coefficient)의 경우 최소값이 0이기때문에 과소적합일때 가중치 감쇠계수를 0에서 더 낮추는 것으로 모델의 성능을 올릴 수 없음
학습률을 제외한 다른 파라미터 조정을 위해서는 학습 오류와 테스트 오류를 모두 모니터링해야함
학습 오류가 목표하는 오류보다 높다면 과소적합일 수 있으니 모델 용량을 키워야함
테스트 오류가 목표하는 오류보다 높다면 과대적합일 수 있으니 가중치 감쇠 (규제)나 dropout 을 활용
이미지와 같은 데이터는 이미지를 확대,축소,반전,밝기 및 대조 변경, 회전시켜 만든 추가적인 데이터를 통해 과적합을 방지하고 일반화 성능을 증가시킬 수 있음 (Data Augmentation)
많은 경험치가 누적된 도메인에서는 하이퍼파라미터의 수동 튜닝을 위한 추천되는 출발점이 있으나 그렇지 못한 경우가 대부분임. 그런 경우에는 자동 조정이 좋은 방법이 될 수 있음.
| 분류 | 하이퍼파라미터 | 설명 | 값의 성격 | 예시 값 |
|---|---|---|---|---|
| 학습률 | Learning Rate (η) | 한 번의 업데이트에서 파라미터를 얼마나 이동시킬지 결정 | 연속 | 0.1, 0.01, 0.001 |
| 정규화 | Weight Decay (L2) | 가중치 크기를 억제하여 과적합 방지 | 연속 | 1e-4, 1e-5 |
| 정규화 | L1 Regularization | 일부 가중치를 0으로 만들어 feature selection 효과 | 연속 | 0.001 |
| 정규화 | Data Augmentation | 학습 데이터 변형 방식 | 이산 | flip, rotate |
| 정규화 | Dropout Rate | 뉴런을 랜덤으로 제거해 과적합 방지 | 연속 | 0.1, 0.5 |
| 모델 구조 | Hidden Layer 수 | 신경망 깊이 결정 | 이산 | 2, 4, 8 |
| 모델 구조 | Hidden Unit 수 | 각 레이어의 뉴런 개수 | 이산 | 64, 128, 512 |
| 모델 구조 | Activation Function | 비선형성 추가 | 이산 | ReLU, GELU, tanh |
| 학습 전략 | Batch Size | 한 번에 사용하는 데이터 수 | 이산 | 32, 64, 128 |
| 학습 전략 | Epoch | 전체 데이터 반복 횟수 | 이산 | 10, 50, 100 |
| 학습 전략 | Optimizer | 파라미터 업데이트 알고리즘 | 이산 | SGD, Adam, RMSProp |
| 학습 전략 | Momentum | SGD에서 이전 gradient를 반영 | 연속 | 0.9 |
| 탐색 | Early Stopping | 검증 성능이 멈추면 학습 종료 | 이산 | patience=10 |
| 탐색 | Scheduler | 학습률 조정 정책 | 이산 | cosine, step |