728x90
반응형

키워드

1. 장기 의존성 문제를 해결하기 위해 기억 장치와 게이트 메커니즘을 도입한 LSTM 셀 제안.

2. "Long short-term memory"

3. LSTM, Long Short-Term memory, RNN

Long Short-Term Memory

  반복적인 backpropagation을 통해 긴 time step의 정보를 저장하는 방법을 학습하는 데는 시간이 매우 오래 걸린다. 이는 주로 불충분하고 소멸되는 error backflow로 인해 발생한다. 원칙적으로 recurrent 네트워크는 feedback 연결을 사용하여 최근 입력 이벤트의 representation을 activation 형식으로 저장한다. 그러나 단기 기억에 무엇을 넣을지 학습하는 데, 시간이 너무 많이 걸리거나 전혀 제대로 작동하지 않는다. 특히 time delay가 긴 경우에 부각되며, 시간에 따라 거꾸로 흐르는 error signal은 폭발하거나 사라진다. 이에 이론적으로는 매력적이지만 제한된 time window를 가진 feed forward 네트워크의 backprop에 비해 명확한 이점이 존재하지 않는다.

  LSTM(Long Short-Term Memory)는 이러한 오류 역류 문제를 극복한 효율적인 gradient based 아키텍처이다. LSTM은 special unit의 constant error carousel(CEC)을 통해 일정한 error flow를 적용하여 효율적인 gradient 전파를 구현했다. 이를 통해 잡음이 많고 압축할 수 없는 입력 시퀀스의 경우에도 1000개의 discrete time step를 초과하는 time delay을 연결하는 방법을 학습한다. 그리고 multiplicative gate unit은 constant error flow에 대한 접근을 열고 닫는 방법을 학습한다. 최종적으로 time step과 가중치당 계산 복잡도는 O(1)이며,  LSTM은 개선된 성능과, 빠른 학습 속도를 달성했다.

반응형
728x90

Architecture

  곱셈 입력 게이트는 저장된 메모리 내용이 관련 없는 입력에 의해 교란되는 것을 방지하기 위해 도입되었으며, 곱셈 출력 게이트 장치는 저장된 현재 관련 없는 메모리 내용에 의해 다른 장치가 교란되는 것을 방지하기 위해 도입되었다. 결과적으로 이를 갖춘 구조를 메모리 셀이라고 하며, j번째 메모리 셀은 cj 로 표현된다.

왼쪽의 이미지는 오른쪽 LSTM cell의 c 가 작동하는 구조를 설명한 이미지다.

  게이트 유닛을 사용하는 이유는 inj를 사용하여 메모리 셀 cj의 정보를 유지하거나 삭제하기를 결정하고, outj를 사용하여 메모리 셀 cj에 다른 장치가 cj에 의해 교란되는 것을 방지할 수 있기 때문이다. 메모리 셀의 error signal은 변경할 수 없지만,  다른 time step 셀의 출력 게이트를 통해 흐르는 또다른 error flow가 중첩될 수 있다. 출력 게이트는 트랩할 error를 적절하게 scaling하여 학습해야 하며, 입력 게이트 error를 적절하게 다시 scaling하여 오류를 release 해야할 시기를 학습해야 한다. 본질적으로 곱셈 게이트 장치는 constant error flow에 대한 액세스를 열고 닫는다.

  기본적으로 입력 레이어, 히든 레이어, 출력 레이어로 구성된 토폴로지를 사용한다. 여기서 메모리 셀과 게이트 유닛을 편의상 모두 히든 레이어에 있는 것으로 표현해도 무방하다. 메모리 셀 블록이라 하는 동일한 입력 게이트와 동일한 출력 게이트를 공유하는 S개의 복수 메모리 셀은 활용하면 훨씬 더 효율적일 수도 있다. 입력 및 출력 게이트로 인해 발생하는 변경된 곱셈 dynamics를 고려하는 RTRL의 변형을 사용하여 학습한며, W가 가중치 수 일때 O(W)의 업데이트 복잡도로 매우 효율적으로 동작한다. 또한 LSTM은 공간과 시간적으로 local 이기 때문에, 거의 무한한 크기의 스택에서도 시퀀스 처리 중에 관찰된 activation을 저장할 필요가 없다.

Abuse problem

  학습 단계 초기에는 시간이 지남에 따라 정보를 저장하지 않고도 오류가 줄어들 수 있다. 이는 두 개의 메모리 셀이 동일한 정보를 저장하는 경우 유사한 "abuse problem"가 발생했기 때문이다. 이를 해결하기 위한 방법으로 두 가지를 고려할 수 있다. 먼저, sequential 네트워크 구성하는 것으로, 오류가 감소하지 않을 때마다 메모리 셀 및 게이트 장치를 네트워크에 추가한다. 다음은 출력 게이트에 bias를 추가하는 것으로, 각 출력 게이트는 음의 bias로 초기화되어 초기 메모리 셀 activation을 0에 가깝게 강제한다. 이를 통해 더 많은 메모리 셀이 자동으로 나중에 "할당(allocated)" 된다.

Internal State Drift

  메모리 셀 cj의 입력이 대부분 양수거나 음수면, 내부 state sj는 시간이 지남에 따라 점점 치우치는(drift) 경향이 있다. 이는 h’(sj)가 매우 작은 값을 채택하고 기울기가 사라지기 때문에 잠재적으로 위험한 요소가 된다. 이 문제를 해결하는 방법은 적절한 함수 h를 선택하는 것이다. 간단하고 효과적인 방법으로 학습 시작 시 입력 게이트를 0으로 편향시키는 것이다.

Advantage and Limitation

Advantage

  • 매우 긴 time delay를 연결할 수 있다. 이를 통해 noise, distributed representation, continuous value를 잘 처리한다.
  • Finite state에 대해서 사전 선택이 필요하지 않으며, 입력 시퀀스가 넓게 분리되어 있어도 일반화 성능이 좋다.
  • Learning rate, 입력 및 출력 게이트 bias와 같은 하이퍼파라미터에 대해 광범위한 범위에서 잘 작동하여 robustness가 좋다.
  • 계산 복잡도는 낮아 효율적이다.

Limitation

  • Time 간격이 긴 XOR 문제를 풀어야하는 delayed XOR 형태의 문제를 쉽게 해결하지 못한다. 더 쉬운 하위 목표를 해결한 뒤, 오류를 점진적으로 줄이는 것이 불가능하다는 점에서 이러한 문제를 분해할 수 없기 때문이다.
  • 기본적인 RNN과 비교할 때 가중치 수는 9배 이상 증가한다.
  • Constant error flow로 인해, 전체 입력 문자열을 한 번에 보는 feedforward 네트워크와 유사한 문제가 발생한다. 다만 이 특성이 뛰어난 성능을 보이는 이유이기도 하다.
  • Discrete time step을 정확하게 계산할 수 없다. 특정 신호가 어느 순간에 발생했는지에 따라 차이가 있는 경우, 추가 계산 메커니즘이 필요하다. (99번 째에 발생했는지, 100번 째에 발생했는지)

Reference

논문 링크 : (PDF) Long Short-term Memory (researchgate.net)

https://medium.datadriveninvestor.com/how-do-lstm-networks-solve-the-problem-of-vanishing-gradients-a6784971a577

 

How LSTM networks solve the problem of vanishing gradients

A simple, straightforward mathematical explanation

medium.datadriveninvestor.com

 

728x90
반응형

'딥러닝 > RNN, LLM' 카테고리의 다른 글

[RNN] Pointer Networks  (0) 2024.11.15
[RNN] Attention Mechanism  (2) 2024.11.14
[RNN] Seq2Seq  (0) 2024.11.13
[RNN] GRU  (1) 2024.11.12
[RNN] RNN 발전 과정  (0) 2024.11.10

+ Recent posts