딥 뉴럴 네트워크를 훈련 할 때 그라디언트 클리핑


10

RNN 또는 CNN을 훈련 할 때 그라디언트 클리핑을 언제 수행하고 싶습니까? 나는 특히 후자에 관심이 있습니다. 클리핑의 좋은 시작 가치는 무엇입니까? (물론 조정할 수 있습니다)

답변:


4

그라디언트 소실 또는 그라디언트 폭발 문제가 발생하면 그라디언트 클리핑을 수행하려고합니다. 그러나 두 시나리오 모두 더 나은 솔루션이 있습니다.

  • 그라디언트가 너무 커지고 수치 오버플로가 발생하면 폭발 그라디언트가 발생합니다. 네트워크 가중치를 더 작은 값으로 초기화하면 쉽게 해결할 수 있습니다. 이것이 작동하지 않으면 코드에 버그가있을 수 있습니다.

  • 최적화가 새들 포인트에 갇 히면 그라디언트가 사라집니다. 그래디언트가 너무 작아 최적화가 진행될 수 없습니다. 운동량 또는 RMS prop 또는 둘 다 (Adam 최적화 프로그램이라고도 함)와 함께 기울기 하강을 사용하여이를 해결할 수 있습니다.

그래디언트 클리핑의 상한에 대한 시작 값은 변수가 취할 수있는 가장 큰 수보다 작습니다. 하한의 경우 문제에 따라 다르지만 1e-10과 같은 것으로 시작할 수 있습니다.


1
이 답변의 컨텍스트가 RNN을 제외해야하는지 확실하지 않지만 그렇지 않은 경우 제안 된 솔루션 모두 특히 RNN의 경우 그라디언트 클리핑보다 낫지 않습니다 .
Alex R.

CNN의 맥락에서 더 많은 생각을해서 죄송합니다. 자유롭게 편집하십시오.
Miguel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.