학습률 (Learning Rate)
학습률은 아주 중요한 하이퍼파라미터이며, 일반적으로 최적의 학습률은 최대 학습률의 절반 정도라고 한다. 좋은 학습률을 찾는 한 가지 방법은 매우 낮은 학습률 (예를 들면 10^-5) 에서 시작해서 점진적으로 매우 큰 학습률 (예를 들면 10)까지 수백 번 반복하여 모델을 훈련하는 것이다. 반복마다 일정한 값을 학습률에 곱한다. 로그 스케일로 조정된 학습률을 사용하여 학습률에 대한 손실을 그래프로 그리면 처음에 손실이 줄어드는 것이 보인다. 하지만 잠시 후 학습률이 커지면 손실이 다시 커진다. 최적의 학습률은 손실이 다시 상승하는 지점보다 조금 아래에 있을 것이다. 일반적으로 상승점보다 약 10배 낮은 지점이라고 한다. 그 다음 모델을 다시 초기화하고 앞에서 찾은 학습률을 사용하여 다시 정상적으로 훈련할 수 있다.
배치 크기(Batch Size)
배치 크기는 모델 성능과 훈련 시간에 큰 영향을 미친다. 큰 배치 크기를 사용하는 것의 주요 장점은 GPU와 같은 하드웨어 가속기를 효율적으로 활용할 수 있다는 점이다. 따라서 훈련 알고리즘이 초당 더 많은 샘플을 처리 할 수 있다. 가장 좋은 방법은 GPU RAM에 맞는 가장 큰 배치 크기를 사용하는 것이다. 하지만 실전에서 큰 배치 크기를 사용하게 되면 훈련 초기에 종종 불안정하게 훈련될 수 있다. 결과적으로 작은 배치 크기로 훈련된 모델만큼 일반화 성능을 내지 못할 수도 있다. yann LeCun에 의하면 32 보다 큰 미니배치를 사용하는 사람이 있다면 말려달라고도 했다.
확실히 작은 배치가 적은 훈련시간으로 더 좋은 모델을 만들기 때문에 작은 배치 크기 (2 ~ 32)를 사용하는 것이 바람직해보인다. 그러나 반대 의견도 존재한다. 학습률 warming up 과 같이, 작은 학습률로 훈련을 시작해서 점점 커지는 방식을 사용하면 매우 큰 배치 크기를 사용할 수 있다고도 한다. 큰 배치 크기는 일반화 성능에 영향을 미치지 않고 훈련 시간을 매우 단축 시킨다. 따라서 한 가지 전략은 학습률 warming up 을 통해 큰 배치 크기를 시도해보고나서, 훈련이 불안정하거나 최종 성능이 만족스럽지 못하면 작은 크기의 배치를 사용하는 것을 추천한다.
참고자료 : Hands-On Machine Learning with Scikit-Learn, Keras & TensorFlow, 핸즈온 머신러닝 2판, 한빛미디어
'AI Research Topic > Deep Learning' 카테고리의 다른 글
[Paper Review] ECA-Net : Efficient Channel Attention for Deep Convolutional Neural Networks (0) | 2020.10.10 |
---|---|
[Paper Review] BAM(Bottleneck Attention Module), CBAM(Convolutional-BAM) (0) | 2020.10.10 |
[Paper Review] CBAM : Convolutional Block Attention Module (0) | 2020.06.07 |
[Deep Learning] Activation Function : Swish vs Mish (1) | 2020.06.07 |
[Deep Learning] MediaPipe (0) | 2020.06.03 |