[논문 리뷰] [Deep Learning] Long Short-Term Memory

2025. 2. 4. 14:42· Paper Review(논문 리뷰)/Deep Learning
목차
  1. 0. Reference
  2. 1. Introduction
  3. 2. Previous Work
  4. 3. Constant Error Backpropagation
  5. 3.1. Exponentially Decaying Error
  6. 3.2. Constant Error Flow : Naive Approach
  7. 4. The Concept of Long Short-Term Momory
  8. 4.1. Memory Cells and Gate Units
  9. 4.2. Why gate Units?
  10. 4.3. Network Topology
  11. 4.4. Memory Cell Blocks
  12. 5. Experiments
  13. 5.1. Experiment 1 : Embedded Reber Grammer
  14. 5.2. another Experiments
  15. 6. Discussion
  16. 6.1. Limitations of LSTM
  17. 7. LSTM 각 gate의 수학적의미
  18. 7.1. Forget gate
  19. 7.2. Input gate
  20. 7.3. Cell state update
  21. 7.4. Output gate

0. Reference

https://ieeexplore.ieee.org/abstract/document/6795963

 

Long Short-Term Memory

Learning to store information over extended time intervals by recurrent backpropagation takes a very long time, mostly because of insufficient, decaying error backflow. We briefly review Hochreiter's (1991) analysis of this problem, then address it by intr

ieeexplore.ieee.org

1. Introduction

- 기존의 RNN, BPTT, RTRL에서 역전파를 계산할 때, Gradient Vanish나 Gradient explode가 자주 발생하는 경향이 있다.

- 해당 논문에선 이를 해결한 LSTM에 대해 설명한다.

 

2. Previous Work

- 생략하겠지만, 논문보고 한번 봐보는 걸 추천한다.

 

3. Constant Error Backpropagation

3.1. Exponentially Decaying Error

3.1.1. Conventional BPTT

- BPTT에서 Loss Function으로 MSE을 사용할 때, Backpropagation은 다음과 같다.

d : Label 값 ,y : 예측값

 

3.1.2. Outline of Hochreiter's Analysis

- 해당 섹션은 Hochreiter's Analysis를 요약하였다고 볼 수 있다.

- 기존의 RNN에서 Gradient Vanish나 Gradient Explode가 발생하는 이유를 서술한다.

- 우선 기존의 RNN에서 역전파를 수식으로 나타내면 다음과 같다.

- 이를 조금 더 일반화 하면 다음과 같아진다.

3.1.3. Intuitive Explanation

- 마지막으로 일반화한 식을 통해 Gradient Vanish나 Gradient Explode가 발생하는 이유를 알아보자.

- 만약 미분한 값이 1보다 크다면, 계속 1보다 큰 값이 계속 곱해지기 때문에 Gradient가 Explode하게 된다.

- 만약 미분한 값이 1보다 작다면, 계속 1보다 작은 값이 계속 곱해지기 때문에 Gradient Vanish가 일어나게 된다.

- 그로인해 Long-Term Dependencies를 학습할 수 없게 된다.

 

3.2. Constant Error Flow : Naive Approach

3.2.1. A single unit : Naive approach

- Gradient vanish를 피하기 위해 우리는 어떻게 해야할까? 

- 해당 값을 1보다 작거나 1보다 크게 만드는게 아니라, 딱 1이면 해결이가능하다.

3.2.2. CEC(Constant Error Carousel)

- 위의 식을 적분하면 다음과 같은 f(net)을 얻을 수 있다.

- 이는 f가 linear function임을 시사한다.

- 해당 식을 만족해야 하는데, 그 이유는 시간이 감에 따라 변화가 없길 바라기 때문이다.

- 이를 통해 f는 identity function이여야 하고, w는 1이 되어야 한다는 것을 알 수 있다.

- 이를 우리는 CEC(Constant Error Carousel)이라고 하고, 이는 LSTM의 핵심 기능이 된다.

- 하지만 2가지 핵심 문제가 발생한다.

 

i) 입력 가중치 충돌:

- 동일한 입력 가중치가 입력을 저장하는 동시에 무시하는 두 가지 상충되는 역할을 수행해야한다.

- 이로 인해 가중치 업데이트 신호가 충돌하고, 학습이 어려워진다.

 

ii) 출력 가중치 충돌:

- 동일한 출력 가중치가 정보를 검색하는 동시에 다른 유닛을 보호하는 두 가지 상충되는 역할을 수행해야함

- 이로 인해 가중치 업데이트 신호가 충돌하고, 학습이 어려워진다.

 

- 이러한 두가지 문제를 해결하기 위해 게이트 메커니즘(입력게이트,출력게이트,망각게이트)를 도입하여 해결하게 된다.

 

4. The Concept of Long Short-Term Momory

4.1. Memory Cells and Gate Units

- naive approach의 단점 없이 특별한 self-connected units를 통해 Constant Error Flow를 허용하는 Architecture를 구축하기 위해, CEC를 추가 기능으로 확장하게 된다.

- Multiplicative Input gate unit은 memory contents가 irrelevant inputs에 의해 방해받지 않도록 보호하기 위해 도입되었고,

- Multplicative output gate unit은 현재 irrelevant한 memory contents가 다른 units를 방해하지 않도록 보호하기 위해 도입되었다.

- 이렇게 복잡해진 unit을 memory cell이라고 한다.(j번째 memory cell을 c_j라고 Notation을 정함)

- 각각의 memory cell들은 CEC를 중심으로 구축된다.

- 뿐만 아니라, Output gate인 multiplicative unit (out_j 혹은 o_j),

- Input gate인 multiplicative unit(in_j 혹은 i_j)로부터 입력을 받는다.

- 그러면 다음과 같은 Notation이 정의된다.

 

- 추가적으로, Memory cell c_j의 입력은 다음과 같이 주어진다.

- 여기서 summation에서 u는 input unit, gate unit, Memory cell, Hidden unit등을 포함할 수 있다.

- 이러한 다양한 Unit들은 network의 현재 상태에 대한 유용한 정보를 전달할 수 있다고 한다.

- 각 unit들의 역할은 뒤에 섹션에 나오기에 잠시후에 자세히 알아보도록 하자.

- 우선 해당 memory cell의 c_j의 출력은 다음과 같다.

g : squash function , s_cj(t) : 계산된 memory cell의 출력을 스케일링하는 함수

4.2. Why gate Units?

- Input gate는 input weight의 충돌을 방지하기 위해 memory cell의 입력 연결로의 error flow를 방지한다.

- Output gate는 output weight의 충돌을 방지하기 위해 memory cell의 출력 연결로의 error flow를 방지한다.

- 즉, 신경망은 Input gate를 통해 memory cell의 정보를 유지할지 덮어쓸지를 결정하고,

- Output gate를 통해 memory cell에 저장된 정보를 접근할지, 차단할지 결정가능하다.

- 이러한 과정을 CEC를 통해 이루어진다고 한다.

cf) input gate, output gate는 둘 다 사용하진 않아도 된다고 논문에 나와있다.

 

4.3. Network Topology

- 일반적인 Deep learning 모델들과 마찬가지로, input layer, hidden layer, output layer로 구성되어 있다고 한다.

- hidden layer에선 memory cells을 포함하고 있으며, full self-connected되어있다고 한다.

- 또한, hidden units이 포함되며, gate unit 및 memory cell에 input을 제공하는 역할을 한다.

- 모든 layer의 unit들은 자신보다 더 높은 layer의 모든 unit에 단방향으로 연결된다고 한다.(directed connections)

 

4.4. Memory Cell Blocks

- 크기가 S인 memory cell block은 같은 input gate와 같은 output gate를 공유하는 S개의 memory cell로 이루어져 있다.

- 이러한 block structure는 정보 저장을 효율적으로 수행할 수 있도록 돕는다고 한다.

 

5. Experiments

- 이러한 long-time-lag algorithm의 성능이 좋아지려면 어떤 조건을 만족해야할까?

- 모든 학습데이터에서 input과 output 사이의 minimal time 차이가 충분히 길어야한다.

- 기존의 BPTT, RTRL등의 RNN들은 long-time-lag 문제에서 실패하였다고한다.

- 그 이유는, Error Signal이 전파되면 전파될수록 지수적으로 줄어들기 때문이다.(gradient vanish)

- 이러한 RNN의 한계를 LSTM을 통해 극복하였다고 서술되어 있다.

 

5.1. Experiment 1 : Embedded Reber Grammer

5.1.1. Task

- 처음엔 short time lag 문제에 대한 RNN의 성능을 평가하는게 목적이였다.

- 그 이유는 기존의 많이 사용되었던 RTRL, BPTT들이 완전히 실패하지 않는 환경에서 비교하기 위함이다.

- 이를 통해 Output Gate의 유용성을 시연할 수 있게 된다.

 

- 실험 개요는 다음과 같다.

- Reber Grammer을 기반으로 한 문자열을 생성하고 예측하는 실험이다.

- 신경망은 입력된 문자열의 다음 기호를 예측해야한다.

- 최대 9개의 기호로 이루어져 있다.(short-time-lag) --> 기존 RNN 알고리즘도 일부 성공 가능해짐

 

- 작동 방식은 다음과 같다.

- 빈 문자열에서 출발하여, edge를 따라 이동하며 기호를 추가한다.(오른쪽 끝 노드에 도달할 때 까지)

- 선택지가 있는 경우 edge는 무작위로 선택된다.

5.1.2. Comparison

- 총 4가지 Elman, RCC,RTRL,LSTM의 모델을 비교해보았는데 결과를 요약하면 다음과 같다.

 

- Elman
-- short-time-lag 문제에선 성공적인 모습을 보이지만, 복잡한 패턴 학습엔 한계가 있음

 

- RCC

-- 네트워크 구조를 동적으로 확장하며 하습하지만, LSTM보다 성능이 낮음.

 

- RTRL

-- short-time-lag 문제에서 일부 성공적이지만, 작업 단순화를 통해 성능을 끌어올려야함

-- LSTM은 이러한 단순화 없이 더 나은 성능을 보임

 

- LSTM

-- Output gata와 같은 메커니즘을 통해 필요한 정보를 효과적으로 필터링하고 활용함

-- 복잡한 조건에서도 높은 정확도로 문자열을 예측 가능함

 

5.1.3. Conclusion

- LSTM에서 Output gate를 제거해보았더니,

- memory cell의 정보가 무분별하게 output layer에 전달되었고,

- 이로 인해 필요하지 않은 정보가 예측을 방해하고, 학습 속도가 크게 느려졌다고 한다.

- 이를 통해, Output gate는 LSTM의 핵심 구성 요소 중 하나라는 알 수 있다.

- Output gate는 정보를 필터링하거나 학습 속도를 높여주는 역할을 해준다.

 

5.2. another Experiments

- 나머지 실험결과에 대해선 논문을 참고하시기 바랍니다..

 

6. Discussion

6.1. Limitations of LSTM

6.1.1. Strongly delayed XOR problems

- LSTM는 Strongly delayed XOR problem를 쉽게 해결하지 못한다고 한다.

- 그 이유는 두 개의 배열을 완벽히 기억해야하기 때문이다.

- Strongly delayed XOR problem은 subgoal로 나눌 수 없는 non-decomposable한 문제이기 때문이다.

- 즉 쉽게 해결할 수 있는 subgoal을 먼저 풀어도 최종 해결에 도움이 안된다. 

 

6.1.2. LSTM이 직면하는 문제들

- CEC를 통한 일정한 error flow덕분에, LSTM은 전체 입력을 한 번에 보는 feedforward 신경망과 비슷한 문제를 겪는다.

- LSTM은 "최근 입력일수록 더 중요하다"라는 개념을 다루는 데 있어, 다른 접근법들과 동일한 수준의 한계를 가진다.

- 모든 그래디언트 기반 접근법은 정확한 시간 카운팅을 하는데 어려움을 겪는다.

ex) 어떤 신호가 99step 전에 발생했는지, 100step 전에 발생했는지 차이를 구분해야 한다면, 추가적인 카운팅 메커니즘이 필요하다.

- 하지만, 3 step vs 11 step 을 비교하는 쉬운 문제는 해결이 가능하다.

- 이를 memory cell의 output과 Input간 negative connection을 만들어,

- 최근 입력을 더 강조하거나, 필요할 때 적절한 decay를 학습할 수 있기 때문이다.

 

7. LSTM 각 gate의 수학적의미

7.1. Forget gate

- 이전 상태의 정부 C_(t-1) 중 어떤 정보를 버릴지 결정한다.

- h_(t-1)과 x_t를 결합한 벡터를 입력으로 받는다.

- sigmoid function을 통해 0~1사이의값을 출력한다. (1에 가까울수록 정보를 유지하고, 0에 가까울수록 정보를 삭제함)

- Weight와 bias는 학습과정에서 Optimal하게 된다.

 

7.2. Input gate

- 새로운 정보를 셀 상태 C_t에 얼마나 추가할지 결정한다.

- i_t : sigmoid function으로 update 강도를 결정한다.

- ~C_t : tanh 함수로 새로운 후보 값을 생성한다.(-1과 1사이로 스케일링해준다.)

- 최종적인 업데이트로 새로운 정보의 중요도와 내용을 반영한다.

 

7.3. Cell state update

 

- 장기 메모리를 저장하는 핵심 상태를 업데이트한다.

- 덧셈의 왼쪽부분 : Forget Gate를 통해 이전 정보를 선택적으로 유지

- 덧셈의 오른쪽부분: input gate를 통해 새로운 정보를 선택적으로 추가

 

7.4. Output gate

- C_t에서 어떤 정보를 출력할지 결정한다.

- sigmoid를 통해 출력 강도를 조절한다.

- tanh를 통해 [-1,1] 범위로 스케일링한다.

'Paper Review(논문 리뷰) > Deep Learning' 카테고리의 다른 글

[논문 리뷰] [Deep Learning] empirical evaluation of gated recurrent neural networks on sequence modeling  (0) 2025.02.05
[논문 리뷰] [Deep Learning] LSTM: A Search Space Odyssey  (1) 2025.02.05
[논문 리뷰] [Deep Learning] Machine Learning Students Overfit to Overfitting  (1) 2025.02.01
[논문 리뷰] [Deep Learning] Group Normalization  (1) 2025.01.21
[논문 리뷰] [Deep Learning] Layer Normalization  (0) 2025.01.21
  1. 0. Reference
  2. 1. Introduction
  3. 2. Previous Work
  4. 3. Constant Error Backpropagation
  5. 3.1. Exponentially Decaying Error
  6. 3.2. Constant Error Flow : Naive Approach
  7. 4. The Concept of Long Short-Term Momory
  8. 4.1. Memory Cells and Gate Units
  9. 4.2. Why gate Units?
  10. 4.3. Network Topology
  11. 4.4. Memory Cell Blocks
  12. 5. Experiments
  13. 5.1. Experiment 1 : Embedded Reber Grammer
  14. 5.2. another Experiments
  15. 6. Discussion
  16. 6.1. Limitations of LSTM
  17. 7. LSTM 각 gate의 수학적의미
  18. 7.1. Forget gate
  19. 7.2. Input gate
  20. 7.3. Cell state update
  21. 7.4. Output gate
'Paper Review(논문 리뷰)/Deep Learning' 카테고리의 다른 글
  • [논문 리뷰] [Deep Learning] empirical evaluation of gated recurrent neural networks on sequence modeling
  • [논문 리뷰] [Deep Learning] LSTM: A Search Space Odyssey
  • [논문 리뷰] [Deep Learning] Machine Learning Students Overfit to Overfitting
  • [논문 리뷰] [Deep Learning] Group Normalization
23학번이수현
23학번이수현
밑바닥부터 시작하는 AI보안전문가23학번이수현 님의 블로그입니다.
23학번이수현
밑바닥부터 시작하는 AI보안전문가
23학번이수현
전체
오늘
어제
  • 분류 전체보기 (243)
    • Statistic Study (47)
      • Mathematical Statistics(수리통.. (47)
    • Mathematics Study (15)
      • Linear Algebra (선형대수학) (15)
    • CS Study (74)
      • CLRS (자료구조 | 알고리즘) (49)
      • Database(DB) (11)
      • C++ (11)
      • 컴퓨터 구조 (2)
      • MongoDB (1)
    • DS Study (56)
      • CS 229(Machine Learning) (19)
      • CS 224n(NLP) (5)
      • Web Scraping (7)
      • R4DS(R언어) (20)
      • 밑바닥부터 시작하는 딥러닝 1 (5)
    • Hacking Study (0)
      • Web Hacking (0)
    • 코딩테스트 (5)
      • 백준-Python (5)
    • Paper Review(논문 리뷰) (43)
      • Deep Learning (16)
      • TCGA 관련 논문 (4)
      • Computer Vision (18)
      • NLP (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • db
  • clrs
  • 정렬
  • cs229
  • cs 224n
  • web scraping
  • 백준
  • 파이썬
  • 선형대수학
  • graph
  • 알고리즘
  • introduction to algoritmhs
  • 데이터분석
  • 자료구조
  • 수리통계학
  • NLP
  • Data Structure
  • Algorithms
  • AI
  • 딥러닝
  • R4DS
  • R언어
  • 논문 리뷰
  • Machine Learning
  • LSTM
  • Introduction to Algorithms
  • Linear Algebra
  • C++
  • deep learning
  • 시간복잡도

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
23학번이수현
[논문 리뷰] [Deep Learning] Long Short-Term Memory
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.