1

배경 : 현재 텍스트 감정 분석을 위해 반복적 인 신경망을 훈련 중입니다.
데이터 세트는 양수 또는 음수로 2 진 분류되는 문장의 모음입니다.RNN의 소실/폭발 그라데이션

문제 : 신경 회로망은 작은 문장 (3-4 단어 미만)에서는 정밀하게 작동하지만 (시간이 지남에 따라 손실이 감소 함) 큰 문장의 경우 전체 프로그램이 중단 될 때까지 비용 로켓을 올립니다.

이것은 소멸/폭발 그라데이션 문제의 예입니까?
그렇다면 둘 중 어느 것이고 어떻게 해결할 수 있습니까?

간단한 RNN의 경우 사라지는 그라디언트 문제는 큰 문제가 아니라고 생각했습니다. 일반적으로 RNN이 일종의 LTSM/GRU 아키텍처를 사용하지 않고도 얼마나 많은 시간 단계를 처리 할 수 ​​있습니까?

EDIT1 :이 네트워크에 LSTM 또는 GRU 아키텍처를 사용하고 있지 않습니다.
EDIT2 : 그라디언트가 0에 가까워지면서 사라지는 그라디언트 문제 일 수 있다고 생각합니다. 특히 긴 문장의 경우 더욱 그렇습니다.
EDIT3 : 그래디언트 검사를 수행 할 때 백프로 그 레이션 그래디언트와 수치 계산 된 그래디언트의 차이가 일치하지 않습니다.
때때로 그들은 매우 유사합니다

Estimated gradient: -0.03798713081426541 
Actual gradient: -0.03798713058052253 

Estimated gradient: 0.09233359214502745 
Actual gradient: 0.09233359179904115 

Estimated gradient: 0.0769223445411249 
Actual gradient: 0.07692234419615167 

Estimated gradient: 0.12397360958732451 
Actual gradient: 0.12397360903699521 

*이 인접 검사하지 않습니다 - 좋은 그라데이션 검사의 단지 손으로 고른 예.
다른 시간, 그들은 매우 다른 위치 :

Estimated gradient: -4.0245362598057e-07 
Actual gradient: 3.4145999078185475e-12 
Gradient Check ERROR 
Relative error: 1.0 

Estimated gradient: -4.241412776551101e-08 
Actual gradient: -2.1161111156415113e-16 
Gradient Check ERROR 
Relative error: 0.9999999900216686 

Estimated gradient: 0.0 
Actual gradient: -4.450453565269026e-32 
Gradient Check ERROR 
Relative error: 1.0 
+0

LSTM 또는 GRU 아키텍처를 사용하고 있습니까? 하이퍼 매개 변수에 대한 추가 정보를 추가 할 수 있습니다. – user18101

+0

전문가가 아니기 때문에 그라디언트가 2 개 중 하나 여야 만한다면 사라지는 것보다 그라데이션이 폭발하기 쉽습니다. 나는 폭발하는 그라디언트가 단지 당신의 훈련을 정체시키고 폭발적으로 발산하게 만든다고 생각합니다. 폭발 그라디언트는 종종 클리핑 임계 값을 적용하여 처리됩니다. – Julien

+0

일반적으로 클리핑 그라데이션을 사용하면 상황이 개선 될 수 있습니다. 또한 급증하는 비용은 때로는 큰 배움 율로 인해 발생할 수 있습니다. – Kh40tiK

답변

0

는 다시 구현하는 LSTM 아키텍처로 RNN 문제를 해결했다. 사라지는 그라디언트가 문제였습니다.