학습률이 신경 네트워크의 가중치를 급등시키는 이유는 무엇입니까?


9

나는 약간의 연구를 위해 간단한 신경망을 작성하기 위해 tensorflow를 사용하고 있으며 훈련하는 동안 'nan'무게에 많은 문제가있었습니다. 최적화 프로그램 변경, 손실 변경, 데이터 크기 등과 같은 다양한 솔루션을 시도했지만 아무 소용이 없습니다. 마지막으로, 학습률의 변화가 나의 체중에 믿을 수없는 차이를 가져 왔다는 것을 알았습니다.

학습 속도 .001 (정말 보수적이라고 생각)을 사용하면 최소화 기능이 실제로 손실을 기하 급수적으로 증가시킵니다. 하나의 에포크 (epoch) 후에 손실은 수천의 숫자에서 1 조로, 그리고 무한대 ( 'nan')로 점프 할 수 있습니다. 학습 속도를 .0001로 낮추면 모든 것이 잘 작동했습니다.

1) 왜 단일 차수가 그러한 영향을 미칩니 까?

2) 최소화 기능이 문자 기능과 반대되는 기능을 수행하고 손실을 최대화하는 이유는 무엇입니까? 그것은 학습 속도에 관계없이 발생해서는 안되는 것 같습니다.


체중을 어떻게 초기화했는지 알려주시겠습니까?
Himanshu Rai

Adam 솔버를 사용해 보는 것이 좋습니다. 더 나은 행동과 더 나은 채무 불이행으로 보이며, 기본 학습률을 사용할 수도 있습니다.
DW

답변:


9

딥 러닝 8 장이 도움 이 될 수 있습니다 . 그것에서 저자들은 신경망 모델의 훈련에 대해 토론합니다. 매우 복잡하므로 어려움을 겪고 있다는 사실에 놀라지 않습니다.

사용자 오류 외에 한 가지 가능성은 문제가 심각하지 않다는 것입니다. 그라디언트 디센트 방법은 업데이트를 계산할 때 첫 번째 미분 (그라데이션) 정보 만 사용합니다. 이차 미분 (헤 시안)이 잘못 조절되면 문제가 발생할 수 있습니다.

저자의 인용 :

볼록한 기능을 최적화 할 때도 일부 문제가 발생합니다. 이 중에서 가장 눈에 띄는 것은 헤 시안 행렬의 잘못된 컨디셔닝입니다.H. 이것은 대부분의 수치 최적화, 볼록 또는 다른 방식에서 매우 일반적인 문제이며 4.3.1 절에 자세히 설명되어 있습니다.

잘못된 컨디셔닝 문제는 일반적으로 신경망 훈련 문제에 있다고 생각됩니다. 아주 작은 단계만으로도 비용 함수가 증가 한다는 의미에서 SGD가“고정”되게함으로써 잘못된 조건화가 나타날 수 있습니다 . [내 강조 강조]

저자는 이것이 사실 일 수 있음을 보여주기 위해 간단한 파생을 제공합니다. 그래디언트 디센트를 사용하여 비용 함수는 다음과 같이 (2 차로) 변경되어야합니다.

ε22Hε

어디 그래디언트 H 헤 시안이고 ε학습률입니다. 분명히, 이차 미분이 크면, 첫 번째 항이 두 번째 도약을 휩쓸 수 있고 비용 함수는 감소하지 않고 증가 할 것입니다. 첫 번째 용어와 두 번째 용어는ε이 문제를 완화하는 한 가지 방법은 ε(물론 학습 속도가 너무 느려질 수 있습니다 ).


2
이 quora 답변 은 Hessian의 잘못된 조건에 대해 매우 직관적 인 설명을 제공하는 것 같습니다 .
Oren Milman

3

1) 왜 단일 차수가 그러한 영향을 미칩니 까?

2) 최소화 기능이 문자 기능과 반대되는 기능을 수행하고 손실을 최대화하는 이유는 무엇입니까? 그것은 학습 속도에 관계없이 발생해서는 안되는 것 같습니다.

두 가지 주요 이유가 있습니다. 첫 번째 단계에서는 첫 번째 단계에서 두 번째 단계와 동일한 데이터를 사용하지 않습니다. 첫 번째 단계에서 모델이 해당 값을 학습하고 로컬 최소값에 도달하면 새로운 값에 대해 더 큰 손실을 줄 가능성이 큽니다.

두 번째 이유는 비용 함수의 형태입니다. 작은 단계로 값을 최소화하려고 시도하면 해당 단계의 길이는 두 가지 요소, 즉 그라디언트와 학습 속도로 나타납니다. 이미지의 기능은 x ^ 2와 같습니다. 값이 0에 가까우면 그래디언트는 그보다 더 작아 질 것입니다. 그러나 학습률이 크면 0에 가까워지는 대신 채점 및 학습 속도는 이전 단계보다 0에 가깝습니다. 그리고 이것은 여러 번 일어날 수 있습니다.

이 링크를보십시오 : http://www.statisticsviews.com/details/feature/5722691/Getting-to-the-Bottom-of-Regression-with-Gradient-Descent.html

알파 0.01 및 알파 0.12의 수치를 보면 첫 번째 수치에서 학습 속도가 어떻게 작아 져 기울기가 최소에 가까워 지지만 두 번째 경우에는 학습 속도가 너무 커서 기울기가 움직입니다. 모든 단계에서 더.


1
두 번째 이유와 관련하여- 이 답변 은 경사 하강이 발산 할 때 (단순 기능 사용)을 보여줍니다. 당신이 실험 볼 수 있도록 그 대답은 파이썬 코드가 어떻게 다른 시나리오에서 그라데이션 하강 동작합니다 ..
오렌 Milman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.