배경 : 현재 텍스트 감정 분석을 위해 반복적 인 신경망을 훈련 중입니다.
데이터 세트는 양수 또는 음수로 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
LSTM 또는 GRU 아키텍처를 사용하고 있습니까? 하이퍼 매개 변수에 대한 추가 정보를 추가 할 수 있습니다. – user18101
전문가가 아니기 때문에 그라디언트가 2 개 중 하나 여야 만한다면 사라지는 것보다 그라데이션이 폭발하기 쉽습니다. 나는 폭발하는 그라디언트가 단지 당신의 훈련을 정체시키고 폭발적으로 발산하게 만든다고 생각합니다. 폭발 그라디언트는 종종 클리핑 임계 값을 적용하여 처리됩니다. – Julien
일반적으로 클리핑 그라데이션을 사용하면 상황이 개선 될 수 있습니다. 또한 급증하는 비용은 때로는 큰 배움 율로 인해 발생할 수 있습니다. – Kh40tiK