0

수동 학습 속도를 사용하려면 예를 들어, 초기 학습 속도는 0.01, 10000 단계 후, 붕괴 학습 속도는 0.001, 20000 단계 후에는 0.0001로 감소합니다.훈련 신경 네트워크 동안 학습 속도를 결정하는 방법?

학습 속도를 떨어 뜨릴 필요가있는이 단계를 어떻게 알 수 있습니까? 어떤 경험이 나를 인도 할 수 있습니까?

일반적으로 이러한 단계를 종이에서 찾을 수 있지만 작성자는 어떻게 이러한 단계를 수행합니까?

답변

0

좋은 초기 학습률은 오류가 발산하지 않고 가능한 한 높습니다. 이것은 시행 착오로 발견됩니다. 0.01과 같은 전형적인 초기 학습 속도를 추측하고, 몇 개의 신기원을 실행하고 어떤 일이 일어나는 지 봅니다. 오류가 발산하는 경우 10으로 나누고 그렇지 않으면 10을 곱하십시오. 발산 오류가 발생하기 전에 가장 높은 값을 정하십시오.

학습 속도를 낮추려면 오류가 더 이상 개선되지 않는 것을 확인해야합니다. 예를 들어, lr = 0.01에서 100 개 에포크를 실행하면 오류는 고원 상태입니다. 학습 속도를 0.001로 낮추십시오.

learning rate decay을 사용하여 학습 속도를 자동으로 낮추는 일정을 설정할 수도 있습니다.

+0

나는'cnn'을 훈련 할 때 이상한 것을 발견한다. 몇 가지 단계를 거친 후 교육 세트 손실이 유효성 검사 손실보다 적어지면 학습률이 저하 될 필요가 있습니까? – gaussclb

+0

아마도 훈련 데이터가 지나치게 적합 할 것입니다. 드롭 아웃 또는 L2 정규화를 추가하십시오. – Imran

+0

L2 정규화 및 일괄 정규화를 사용했습니다. – gaussclb