Open ghost opened 4 years ago
일단 Gradient Descent(경사하강법)를 완벽히 알고 있다는 가정하에 설명하겠습니다. (혹시 왜 Gradient Descent로 최적값을 찾는지 그 이유를 모르신다면 앞에서부터 다시 이해하는 것을 추천드립니다.)
1. Learning Rate 교재를 통해, 또는 다른 루트를 통해 Gradient Descent를 따라 내려가면서 최적값을 찾는 것이 바로 머신러닝에서 학습의 과정이라고 배웠을텐데, 이때, 아래로 내려가는 수준 또는 보폭의 크기를 learning rate (학습률)이라고 이해하시면 됩니다.
큰 보폭으로 내려가는 경우(즉 learning rate가 큰 경우) 내려가는 크기가 크니 학습의 속도는 빨리지지만 최적값에 수렴하지 않고 발산해버릴 수 있습니다. (overshooting이라고도 합니다). 반대로 learning rate가 작으면 경사를 따라 내려가는 폭이 촘촘하기 때문에 최적의 값을 찾는 속도가 너무 느리고, 최적값을 찾지 못하고 local minimum에 빠져버릴 수도 있습니다.
적당한 learning rate를 찾는 것이 중요하고, 또 적당한 learning rate를 설정하는 방법은 학습에 사용하는 데이터의 질이 어떤지와도 밀접하기 때문에 많은 딥러닝 개발 경험이 요구됩니다.
2. Weight Decay Weight decay의 경우, weight decay를 왜 하는지를 아는 것이 더 중요한데, 많은 양을 학습시키면 모델이 점점 traing set에 대한 예측에 가까워지기 때문에 train loss는 줄어들지만 제출 시 리더보드에 점수가 더 낮게 나오는 것을 볼 수 있습니다. 이는 모델이 training data에 대한 예측은 잘 하지만 (= training set에 대한 예측값과 실제값의 차이가 작음 = train loss가 작음), 새로운 데이터에 대한 예측은 잘 못하는 (= validation loss가 큼) 현상이 발생합니다. 이를 Overfitting(과적합)이라고 하죠. (이미 배워서 아실테지만)
Overfitting은 모델이 복잡하고 데이터셋이 작은 경우에 자주 발생합니다.
이런 경우에 모델의 복잡도를 줄여서 예측의 정확도를 높이고자 하는 최적화 기법 중 한 가지가 weight decay입니다. weight decay는 weight 값들의 증가를 제한함으로써 모델의 복잡도를 감소시키는 방법입니다.
weight_decay 가 가중치를 조절하는 정도로 높을 수록 더 빠르게 학습을 하고, learning rate는 AI의 학습 정도를 조절하는거라고 알고 있는데, 이 둘의 차이점을 명확하게 알려주실 수 있나요?