신경망은 가중치를 업데이트 하면서 주어진 문제를 최적화합니다. 이때 가중치를 업데이트 하는 방법에는 대표적으로 경사하강법(Gradient Descent)을 사용합니다. 경사하강법은 특정 함수에서의 미분을 통해 얻은 기울기를 이용하여 최적의 값을 차아가는 방법이다.
학습률은 모델의 학습에서 학습속도나 성능에 큰 영향을 미치는 주용한 하이퍼파라미터이다. 경사하강법은 왼쪽이나 오른쪽 점에서 시작하면 지역 최솟값에 빠지 위험이 높다. 따라서 경사하강법은 항상 최적값을 반환한다는 보장을 할 수 없다. 따라서 실제로 모델을 훈련시킬때, 여러가지 학습률을 사용해볼 필요가 있다.
학습률이 너무 높으면 학습이 되지 않을 수 있고, 학습률이 너무 낮으면 학습속도가 아주 늘서 전역 최솟값에 도달하기 전에 학습이 종료될 수 있다.
학습률 초기값 설정
학습률의 초기 설정으로는 주로 0.001(1e-3)을 사용한다. 모델이 학습되지 않은 상태라면 큰 학습률에서 시작하고, 어느 정도 학습이 된 경우에는 서서히 학습률을 줄여나가봐야 한다. 또는 학습률을 줄여보다가 급격히 키우고 다시 줄이는 것도 좋은 방법이 될 수 있다.
신경망의 올바른 학습을 위해서는 가중치 초기화(weight initialization)문제도 생각해봐야 한다. 좋은 성능을 얻기 위해서는 올바른 가중치 초기화를 진행해야 한다. 특별한 경우가 아닌 이상, 케라스가 제공하는 기보 초기화 설정을 사용해도 큰 문제가 되지 않을 것이다. 대표적으로는 Glorot(Xavier), he, Lecun 초기화가 있으며 tf.keras.initializer에서 확인해 볼 수 있다.
댓글 없음:
댓글 쓰기