LSTM은 소실 구배 문제를 어떻게 방지합니까?


35

LSTM은 소실 구배 문제를 피하기 위해 특별히 고안되었습니다. 아래 다이어그램의 Greff 등의 에서 루프에 해당하는 CEC (Constant Error Carousel)를 사용하여이를 수행해야합니다 .

LSTM
(출처 : deeplearning4j.org )

그리고 그 부분은 일종의 항등 함수로 볼 수 있으므로 미분은 하나이고 기울기는 일정하게 유지됩니다.

내가 이해하지 못하는 것은 다른 활성화 기능으로 인해 사라지지 않는 방법입니다. 입력, 출력 및 잊어 버림 게이트는 시그 모이 드를 사용하는데,이 파생물은 최대 0.25이고 g와 h는 전통적으로 tanh 입니다. 그라디언트가 사라지지 않는 것을 통해 역전 파는 어떻게됩니까?


2
LSTM은 장기 의존성을 기억하는 데 매우 효율적이며 소실 구배 문제에 취약하지 않은 재귀 신경망 모델입니다. 어떤 종류의 설명을 찾고 있는지 잘 모르겠습니다
TheWalkingCube

LSTM : 장기 단기 메모리. (Ref : Hochreiter, S. and Schmidhuber, J. (1997). 장기 단기 기억. 신경 계산 9 (8) : 1735-80 · 1997 년 12 월)
horaceT

LSTM의 그라디언트는 바닐라 RNN보다 느리게 사라져 더 먼 종속성을 잡을 수 있습니다. 그래디언트 소실 문제를 피하는 것은 여전히 ​​활발한 연구 분야입니다.
Artem Sobolev

1
참조로 느리게 사라지는 것을 백업 하시겠습니까?
bayerj

답변:


22

소실 그라디언트는 1 차원 경우에 가장 잘 설명됩니다. 다차원은 더 복잡하지만 본질적으로 유사합니다. 이 우수한 논문 [1]에서 검토 할 수 있습니다.

시간 단계 t 에서 숨겨진 상태 가 있다고 가정하십시오 . 일을 단순하게 만들고 바이어스와 입력을 제거하면 h t = σ ( w h t - 1 )가 됩니다. 그럼 당신은 그것을 보여줄 수 있습니다htt

ht=σ(wht1).

htht=k=1ttwσ(whtk)=wtt!!!k=1ttσ(whtk)
tt

st

stst=k=1ttσ(vt+k).
vt

[1] Pascanu, Razvan, Tomas Mikolov 및 Yoshua Bengio. "반복 신경망 훈련의 어려움에." ICML (3) 28 (2013) : 1310-1318.

[2] 바이엘, 저스틴 시몬. 학습 순서 표현. Diss. 뮌헨, Technische Universität München, Diss., 2015, 2015.


3
lstm의 경우 h_t도 h_ {t-1}에 의존하지 않습니까? ds_t / d_s {t-1} "그라디언트가 시간을 통과하는 유일한 부분"이라고 말할 때 논문에서 무엇을 의미합니까?
user3243135

@ user3243135 h_t는 h_ {t-1}에 의존합니다. 그러나 다른 그래디언트 흐름이 사라지더라도 ds_t / d_s {t-1}이 유지된다고 가정하면 전체 그래디언트 흐름이 사라지지 않습니다. 그래디언트 소실을 해결합니다.
soloice

ttσ(whtk)
σ(z)σ(x)=σ(z)(1σ(z))이것은 <1입니다). 이것이 CNN에서 ReLU가 채택 된 이유가 아닙니까? 이것은 피드 포워드 모델과 재발 모델에서 사라지는 그라디언트가 어떻게 해결되는지에 대한 차이점을 항상 혼란스럽게 한 가지입니다. 이에 대한 설명이 있습니까?
피노키오

분산이 큰 입력 분포 및 / 또는 0에서 멀리 떨어져 있다고 가정하면 S 자형의 기울기가 문제가 될 수 있습니다. 그러나 ReLU를 사용하더라도 주요 문제는 계속됩니다. )가 사라지는 그라디언트 또는 정규화가 적절하지 않은 경우 그라디언트가 폭발하는 경우가 있습니다.
운동 실조증

3

Greff et al.의 LSTM 블록 그림. (2015)는 저자가 vanilla LSTM 이라고 부르는 변형을 설명합니다 . Hochreiter & Schmidhuber (1997)의 원래 정의와 약간 다릅니다. 원래의 정의에는 잊어 버림 게이트와 구멍 연결이 포함되지 않았습니다.

Constant Error Carousel이라는 용어는 원래 논문에서 셀 상태의 반복적 인 연결을 나타 내기 위해 사용되었습니다. 입력 게이트가 열릴 때 추가로만 셀 상태가 변경되는 원래 정의를 고려하십시오. 초기 단계에서의 셀 상태에 대한 셀 상태의 기울기는 0이다.

출력 게이트 및 활성화 기능을 통해 오류가 여전히 CEC에 입력 될 수 있습니다. 활성화 기능은 CEC에 추가되기 전에 오류의 크기를 약간 줄입니다. CEC는 오류가 변경되지 않은 유일한 장소입니다. 다시, 입력 게이트가 열리면 오류가 입력 게이트, 활성화 기능 및 아핀 변환을 통해 빠져 나가서 오류의 크기가 줄어 듭니다.

따라서 LSTM 계층을 통해 역 전파 될 때 오류가 줄어들지 만 CEC에 들어오고 나갈 때만 오류가 줄어 듭니다. 중요한 것은 CEC가 얼마나 먼 거리를 이동하든 변경되지 않는다는 것입니다. 이렇게하면 기본 RNN의 문제가 해결 될 때마다 매 단계마다 아핀 변환과 비선형 성이 적용되므로 입력과 출력 사이의 시간 간격이 길어질수록 오류가 줄어 듭니다.


2

http://www.felixgers.de/papers/phd.pdf 잘린 오류 부분이 설명 된 섹션 2.2 및 3.2.2를 참조하십시오. 셀 메모리에서 누출 된 경우 (즉, 닫힌 / 활성화 된 입력 게이트가있는 경우) 오류를 전파하지 않지만 해당 시점의 오류에 따라 게이트의 가중치를 업데이트합니다. 나중에 다시 전파되는 동안 0이됩니다. 이것은 일종의 해킹이지만해야 할 이유는 시간이 지남에 따라 게이트를 따라 오류 흐름이 붕괴되기 때문입니다.


7
이것에 대해 조금 확장 해 주시겠습니까? 현재 링크 위치가 변경되거나 용지가 오프라인 상태이면 응답에 아무런 가치가 없습니다. 최소한 링크가 작동을 멈 추면 논문을 다시 찾을 수 있도록 전체 인용 (참조)을 제공하는 것이 도움이되지만이 답변을 독립적으로 만드는 짧은 요약이 가장 좋습니다.
Silverfish

2

나는 좀 더 뉘앙스가 있다고 생각하고 뉘앙스가 RNN에 대해 처음 배우는 사람에게는 분명하지 않을 수 있기 때문에 허용 된 답변에 세부 사항을 추가하고 싶습니다.

htht=k=1ttwσ(whtk)

stst=k=1ttσ(vt+k)

  • tt
  • 대답은 yes 이므로 LSTM은 바닐라 RNN만큼 사라지지 않지만 사라지는 그라디언트로 고통받을 것입니다.

wσ()σ()

σ()1
vt+k=wxwxw

x=1w=10 vt+k=10σ()=0.99995

(0.99995)tt

wσ(whtk)1

htk=1wσ(w1)0.224w=1.5434

(0.224)tt

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.