[논문 리뷰] Long Short-Term Memory (LSTM, 1997)

My_oyster_house·2024년 8월 2일

Long Short-Term Memory (LSTM) 논문 리뷰

오늘 리뷰한 논문은 1997년에 Sepp Hochreiter와 Jürgen Schmidhuber가 발표한 "Long Short-Term Memory" (LSTM) 이다. 이 논문은 순환 신경망(Recurrent Neural Networks, RNN)의 문제점을 해결하기 위해 제안된 LSTM 아키텍처를 다루고 있다.

용어 정리

  • decay: 감소하다.
  • error back flow : 오류역전파
  • constant error carousel(CEC): 오류신호가 시간이 지나도 일정하게 유지하는 기법. constant error 가 순환하면서 그 크기를 유지하게 해서 과거의 정보도 현재까지 유지하게 함.
  • time lag: 시간지연(타임랙). 시간 단계 사이의 간격
  • emboided: 구체화된
  • non-Markovia: 비마르코프적. 현재상태가 과거의 여러상태에 의존하는 특성 (↔️ Markovia 마르코프적 : 현재상태가 과거의 한 상태에만 의존)
  • backprop: 역전파
  • oscillating weights: 진동하는 가중치 (학습안정성이 떨어짐)
  • prohibitive: (시간,비용이)매우 비싼
  • perturbation: 교란
  • multiplicative units: 값을 곱해서 계산하는 유닛
  • fully-connectied: 완전연결된, 모든 뉴런이 서로 연결되어있는
  • unit: 유닛 = 뉴런. 뉴런은 신경망내에선 입력을 받아 처리하고 출력을 생성하는 기본 계산 단위를 뜻하며, 따라서 뉴런을 유닛이라고 부르는 것 같다.
  • second-order unit: 덧셈,뺄셈이 아닌 복잡한 연산(곱셈)을 수행하는 유닛

1. Introduction

기존의 RNN은 시간에 따라 정보를 잊어버리는 문제가 있다. 이는 BPTT(Backpropagation Through Time)와 RTRL(Real-Time Recurrent Learning) 같은 학습 방법들이 시간에 따라 역전파되는 오차 신호가 소멸하거나 폭발하기 때문이다. 이 문제를 해결하기 위해 LSTM은 "constant error carrousels(CEC)"라는 개념을 도입하여 일정한 오차 흐름을 유지한다.

2. Previous Work

기존 연구들에서는 Elman 네트워크, 시간 지연 신경망(Time-Delay Neural Networks) 등 다양한 방법들이 제안되었지만, 이들 대부분은 긴 시간 간격의 정보를 효과적으로 처리하지 못했다. Bengio 등의 연구에서는 상태 네트워크를 사용하여 목표를 전파하는 EM 접근법을 제안했지만, 이는 연속적인 문제를 해결하는 데 한계가 있었다.

3. Constant Error Backpropagation

기존의 RNN 학습 방법인 BPTT(Backpropagation Through Time)와 RTRL(Real-Time Recurrent Learning)은 오차 신호가 시간에 따라 소멸하거나 폭발하는 문제가 있다. 이는 신경망의 가중치 크기에 따라 오차 신호의 시간적 변화가 지수적으로 달라지기 때문이다. 이 문제를 해결하기 위해 LSTM은 일정한 오차 흐름을 유지하는 방법을 제안한다. 이 섹션에서는 이러한 문제점과 해결책에 대해 자세히 설명하고 있다.

3.1 Exponentially Decaying Error

기존 BPTT와 RTRL 방법에서는 시간에 따라 오차 신호가 소멸하거나 폭발하는 문제가 있다. 이 섹션에서는 이러한 문제를 수학적으로 분석하고, 오차 신호의 소멸과 폭발을 방지하는 방법을 제안한다. 예를 들어, 오차 신호가 시간에 따라 지수적으로 감소하는 것을 보여주는 수식을 제시한다.

3.2 Constant Error Flow: Naive Approach

소멸하는 오차 신호 문제를 해결하기 위한 단순한 접근법으로, 단일 유닛을 통해 일정한 오차 흐름을 유지하는 방법을 제안한다.

4. Long Short-Term Memory

LSTM 아키텍처는 메모리 셀과 입력, 출력 게이트로 구성된다. 메모리 셀은 "constant error carrousel"을 통해 일정한 오차 흐름을 유지하며, 입력 게이트는 저장할 정보를, 출력 게이트는 출력할 정보를 제어한다. 이를 통해 LSTM은 긴 시간 간격의 의존성을 효과적으로 학습할 수 있다.

Long Short-Term Memory

LSTM 아키텍처는 메모리 셀과 게이트 유닛으로 구성된다.

4.1 Memory Cells and Gate Units

LSTM의 핵심은 메모리 셀에 있다. 메모리 셀은 자기 연결을 통해 정보를 일정하게 유지하며, 입력 게이트와 출력 게이트를 통해 정보를 저장하고 출력한다. 입력 게이트는 메모리 셀이 외부 입력으로부터 영향을 받을지 여부를 결정하고, 출력 게이트는 메모리 셀이 다른 유닛으로 출력을 보낼지 여부를 결정한다. 이를 통해 LSTM은 긴 시간 간격의 의존성을 효과적으로 학습할 수 있다.

Memory Cells


t 시점의 셀 상태(Cell State)는 CtC_t 와 같이 표시한다. CtC_t를 구하기 위해서 3개의 게이트가 필요하다

Input Gate


입력 게이트에서 구한 이 두 개의 값은 곱셈연산 하게 된다.

Forget Gate


시그모이드 함수를 지나기 때문에 값은 0 또는 1로 나온다. 0이면 완전히 잊은것, 1이면 완전히 보존한 것으로 볼 수 있다.

Input Gate의 결과값과 Forget Gate의 결과값을 덧셈 연산하면 Cell State 값이 된다.

Output Gate


출력 게이트에서는 '현재 시점 t의 값과 이전 시점 t-1의 은닉 상태가 시그모이드 함수를 지난 값'이 Cell State 값과 덧셈 연산을 한다. 여기서 Cell State 값은 하이퍼볼릭탄젠트 값을 지나 -1에서 1사이의 값이 된 값이다.

(이미지출처: 딥러닝을 이용한 자연어 처리입문 WikiDocs https://wikidocs.net/22888)

4.2 LSTM Network Topology

LSTM 네트워크는 input layer, hidden layer, output layer으로 구성된다. (여기까진 RNN과 동일) hidden layer에는 메모리 셀과 게이트 유닛이 포함되며, 이들은 상호 연결되어 있다. input layer은 hidden layer의 모든 유닛에 연결되어 있으며, hidden layer의 유닛들은 출력층의 유닛에 연결된다.

메모리 셀 블록은 동일한 입력 게이트와 출력 게이트를 공유하는 여러 개의 메모리 셀로 구성될 수 있다. 이러한 구조는 정보를 효율적으로 저장하고 처리할 수 있도록 돕는다.

4.3 Learning in LSTM

LSTM은 RTRL(Real-Time Recurrent Learning)의 변형을 사용하여 학습한다. 입력 게이트와 출력 게이트를 통해 오차 신호가 적절하게 전달되도록 하며, 메모리 셀 내부에서는 오차가 일정하게 유지되도록 한다. 이를 통해 LSTM은 긴 시간 간격의 의존성을 효과적으로 학습할 수 있다.

4.4 Computational Complexity

LSTM 알고리즘은 매우 효율적이다. 업데이트 복잡도는 O(W)로, 여기서 W 는 가중치의 수를 의미한다. 이는 완전 연결된(fully-connected) 순환 신경망에 대해 BPTT와 동일한 업데이트 복잡도를 가지며, RTRL보다 훨씬 효율적이다. (LSTM is local in space and time)

4.5 Abuse Problem and Solutions

학습 초기 단계에서 메모리 셀이 잘못된 방식으로 사용될 수 있는 문제(남용 문제)가 있다. 예를 들어, 메모리 셀이 바이어스 셀로 사용되어 활성화가 일정하게 유지되는 경우가 있다. 이러한 문제를 해결하기 위해 LSTM은 학습 과정에서 메모리 셀을 추가하거나, 출력 게이트에 초기 바이어스를 적용하여 문제를 해결할 수 있다.

이러한 구성 요소들을 통해 LSTM은 기존의 RNN이 가진 문제점을 효과적으로 해결한다.

5. Experiments

논문에서는 다양한 실험을 통해 LSTM의 성능을 입증한다. 실험 1에서는 "Embedded Reber Grammar" 문제를 해결하는 데 있어 LSTM이 기존의 RNN보다 더 빠르고 정확하게 학습한다는 것을 보여준다. 실험 2에서는 노이즈가 있는 긴 시간 간격의 문제를 LSTM이 성공적으로 해결하는 것을 보여준다. 실험 3에서는 신호와 노이즈가 동일한 채널에 있을 때 LSTM이 문제를 해결할 수 있음을 입증한다. 실험 4와 5에서는 연속적인 값을 저장하고 계산하는 문제를 LSTM이 효과적으로 해결하는 것을 보여준다.

profile
kwonhs.alice@gmail.com

0개의 댓글