카테고리 없음

[2025-1] 차승우 - LONG SHORT-TERM MEMORY

blanktemplete 2025. 1. 25. 12:36

https://www.bioinf.jku.at/publications/older/2604.pdf

 

0. Abstract
 1. LSTM 출현 배경
 - 기존의 순환 신경망(RNN)은 긴 시간 간격에 걸친 정보를 학습하기 어렵습니다. 
 - Gradient Vanishing
 2. LSTM
  1. Constant Error Carousel
  - 특정 유닛 내에서 오류 신호가 사라지지 않고 일정하게 유지되도록 설계된 구조
  2. Gate
  - 게이트를 통해 정보를 선택적으로 저장 및 삭제, 계산
 3. 실험 결과
  1. RNN의 장기 의존성 문제 해결

1. Introduction
 1. 순환신경망
 - 순환 신경망은 피드백을 통해 단기 기억 형태로 저장할 수 있으나, 단기 기억에 무엇을 저장할지를 학습하는 알고리즘은 시간이 오래 걸리거나 성능이 좋지 않다. 입력과 학습 신호 사이의 시간 간격이 긴 경우에는 문제가 심각해진다.
 2. 순환신경망의 문제점
  1. Gradient Explode
  - 전파되는 오류 신호가 지나치게 커져 가중치가 불안정
  2. Gradient Vanishing
  - 오류 신호가 점점 약해져 학습이 오래 걸리거나 실패
 3. LSTM
  1. 긴 시간 간격에서도 오류 신호를 일정하게 유지
  2. 내부 상태에서 오류 신호를 일정하게 유지
  3. 짧은 시간 간격에서도 학습 가능

2. Previous work
 1. 그래디언트 하강법 변형(Gradient-Descent Variants)
 - BPTT 및 RTRL과 동일한 문제(오류 폭발과 소멸)를 겪음
 2. 시간 지연(Time-Delays)
 - Lang et al.(1990)의 Time-Delay Neural Networks(TDNN) 및 Plate(1993)의 방법은 짧은 시간 간격에서만 실용적
 3. 시간 상수(Time Constants)
 - Mozer(1992)는 시간 상수를 사용해 장기 시간 간격 문제를 해결하려 했지만, 시간 상수는 외부에서 미세 조정이 필요
 4. Ring의 접근법
 - Ring(1993)은 긴 시간 간격 문제를 해결하기 위해 유닛에 추가적인 고차 유닛을 도입했으나, 추가 유닛의 도입의 문제
 
- 이러한 연구 외에도 여러 연구들이 RNN이 가진 시간 간격 문제에 대해 해결하려고 접근했으나, 사용 범위가 존재하거나 조건이 까다로움
- LSTM은 기존 연구들과 달리 긴 시간 간격에서도 안정적으로 학습할 수 있는 구조와 효율적인 학습 알고리즘을 제공

3. CONSTANT ERROR BACKPROP
3.1 EXPONENTIALLY DECAYING ERROR

1. BPTT(Backpropagation Through Time)

 

특정 시점 t에서 출력 유닛 k의 출력 오류

 

$$v_{k}(t)\,=\,f_{k}'(net_{k}(t))(d_{k}(t)-y^{k}(t))$$

 

$d_{k}(t)$ : 출력 유닛 k의 목표값

 

$$y^{i}(t)\,=\,f_{i}(net_{i}(t))$$

 

$y^{k}(t)$ : 출력 유닛 k의 실제 출력

 

$$net_{i}(t)\,=\,\sum w_{ij}y^{j}(t-1)$$

 

$net_{k}(t))$ : 유닛 k로 들어오는 총 합

 

- 히든 유닛j의 오류 신호

 

$$v_{j}(t)\,=\,f_{j}'(net_{j}(t))\sum_{i}^{}w_{ij}v_{i}(t+1)$$

 

2. Hochreiter의 분석( 오류 전파가 지수적으로 감소하거나 폭발하는 이유 )

- Hochreiter(1991)의 분석에 따르면, 오류가 유닛 간에 전파될 때 다음과 같은 방식으로 전파된다.

 

- 유닛 u에서 유닛 vq 단계 전파된 오류는 다음과 같이 정의

$$ \frac{\partial v_{v}(t-q)}{\partial v_{u}(t)}\,=\,\begin{cases}
 & f_{v}'(net_{v}(t-1)w_{wv})\,(q\,=\,1) \\
 & f_{v}'(net_{v}(t-1)\sum_{l=1}^{n}\frac{\partial v_{l}(t-q+1)}{\partial v_{u}(t)}w_{lv})\,(q\,>\,1)
\end{cases}$$

 

3. 결론

$$||f_{lm}'(net_{lm}(t-m)w_{lm}l_{m-l})\|>1.0$$

- 오류가 지수적으로 커져 학습이 불안정해지고, 가중치가 비정상적으로 커집니다.

 

$$||f_{lm}'(net_{lm}(t-m)w_{lm}l_{m-l})\|<1.0$$

- 오류가 단계별로 감소하며 지수적으로 축소됩니다. 이는 오래된 시점의 정보가 유실되어 RNN이 장기 의존성을 학습할 수 없게 된다.

 

- 기존 알고리즘은 오류가 시간이 지남에 따라 감소하여 장기적 상호작용을 학습할 수 없다,

- BPTT는 긴 시간 간격 문제를 해결하기 위해 설계된 방법이 아님. 이를 해결하기 위해 다른 아키텍처(LSTM 등)가 필요

 

4. Global Error Flow(with Local Error flow)

 

- 위의 전개된 지역 오류의 확장으로써 전역 오류 흐름 또한 사라진다는 것을 알 수 있다.

- 로컬 오류 흐름과 글로벌 오류 흐름 모두 시간이 지남에 따라 지수적으로 감소할 수 있습니다. 특히, 활성화 함수와 가중치 크기에 따라 오류 전파의 감소가 더욱 심화

- 로지스틱 시그모이드 함수는 오류 전파의 감소를 가속화하여 결과적으로 BPTT는 긴 시간 간격의 문제를 효과적으로 처리하지 못한다.

 

3.2 CONSTANT ERROR FLOW: NAIVE

 

1. 단일 오류 흐름 유지

- 단일 유닛 j에서 오류 흐름이 일정하도록 하기 위해, 다음의 조건이 필요

 

$$f_{j}'(net_{j})w_{jj}=1.0$$

 

2. CEC 매커니즘
- 상수 오류 회전목마(CEC)는 LSTM 셀이 오류 신호를 시간적으로 전달하면서도 그 크기를 유지하는 메커니즘
- LSTM이 장기 의존성을 처리할 수 있도록 하는 핵심 개념
- CEC는 LSTM 셀의 한 부분인 셀 상태(Cell State)의 핵심 원리로써, 

 1. CEC

$$f_{j}(net_{j}(t))\,=\,w_{jj}*net_{j}(t)$$

 2. 선형 활성화 함수
 - CEC를 구현하려면 $f_{j}(x)$가 선형이어야 한다.

$$f_{j}\,=\,x$$

 - 선형 활성화 함수의 특성 덕분에, 입력값이 그대로 출력으로 전달된다. 이를 통해 유닛의 상태값이 변형 없이 유지

 3. 가중치 조건
 - CEC의 또 다른 중요한 조건은 $w_{jj}$가 1.0으로 설정
 - 이 가중치 조건과 선형 활성화 함수의 조합으로 인해 유닛의 활성화 값 $y_{j}(t)$는 시간에 따라 다음과 같이 유지

$y_{j}(t+1)=f_{j}(net_{j}(t+1))=w_{jj}*net_{j}(t+1)=net_{j}(t+1)=y_{j}(t)$

 - 유닛 j의 활성화 값$y_{j}(t)$은 항상 동일하게 유지된다.

 - 이는 장기 정보의 저장이 가능해지며, 셀 상태가 시간에 따라 변하지 않고 일정하게 유지하도록 합니다. 게이트와 함께 사용되어 기억을 유지&변환한다.

 4. CEC와 셀 상태
  1. CEC
  - 셀 상태가 시간적으로 오류 신호를 유지하는 메커니즘에 대한 이론적 원리
  2. 셀
  - LSTM 셀의 실제 데이터 구조로, 정보를 저장하고 전달하는 역할
  - 셀 상태는 CEC 원리에 기반해 설계되었지만, 입력 게이트와 망각 게이트의 영향을 받아 동적으로 변할 수 있다.
  3. 게이트
   1. Input Gate
   - 새로운 정보를 셀 상태에 얼마나 추가할지 결정
   2. Forget Gate
   - 기존 정보를 얼마나 유지할지 결정
   3. Output Gate
   - 셀 상태 정보를 출력으로 얼마나 보낼지 결정


4. LONG SHORT-TERM MEMORY

 

1. 메모리 셀과 게이트 유닛 (Memory Cells and Gate Units)

- 기존 CEC(상수 오류 회전목마)의 단점을 극복하기 위해, 새로운 구조를 설계

 1. Input Gate Unit

 - 특정 정보를 메모리에 저장할 때, 불필요한 입력으로부터 메모리 내용을 보호

 2. Output Gate Unit

 - 메모리에 저장된 현재 관련 없는 정보가 다른 유닛에 영향을 주는 것을 방지

 

 2. 메모리 셀의 구조

 

 

출처 :

 

출처 :

 

출처 :

 

출처

 

3.오류 신호와 CEC

 1. CEC 내부 오류 신호

 2. 게이트 유닛

 

4. LSTM 구조

 1. 구성

 - 입력층, 은닉층, 출력층으로 구성

 2.  은닉층

 - 메모리 셀 및 게이트 유닛 

 - 은닉층의 모든 유닛은 상위층의 모든 유닛으로 연결될 수 있다.

 

5. 학습 방식

 1. RTRL 변형

 - 입력/출력 게이트의 곱셈적 동작을 고려한 RTRL 변형 알고리즘 사용

 2. 오류 전파 방식

 - 메모리 셀 내부에서는 오류가 무한히 뒤로 전파될 수 있지만, 입력 게이트와 출력 게이트를 거치면 한 번 스케일링되어 가중치 변경에 사용됨

 

6. 계산 복잡도

- 업데이트 복잡도는 O(W), 가중치의 개수에 따라 달라진다.

 

7. LSTM의 문제점

 1. Abuse Problem

  1. Problem

   1. 초기 학습 단계에서 네트워크는 메모리 셀을 bias에 남용할 수 있다.

   2. 두 개의 메모리 셀이 동일한 중복 정보를 저장하는 경우

  2. Solution

   1. 순차 네트워크 구성법

   - 에러 감소가 멈추면 새로운 메모리 셀과 게이트 유닛을 네트워크에 추가

   2. 출력 게이트 바이어스

   - 출력 게이트에 음의 초기 바이어스를 적용하여 메모리 셀의 초기 활성화를 0에 가깝게 유지

   - 바이어스가 더 큰 음수인 셀은 학습 과정에서 더 늦게 사용

 2. Internal State Drift

  1. 정의

  - 메모리 셀 cj의 입력이 주로 양수 또는 음수일 경우 내부 상태 sj가 시간이 지남에 따라 점점 멀리 이동

  - 이에 따라 $h'(s_{j})$의 값이 작아져서 그라디언트가 사라질 수 있다.

  2. Solution

   1. 입력 게이트 초기 바이어스 조정

   2. 로지스틱 시그모이드 활성화 함수

   3. 적절한 h 함수 선택

 

5. Experiement
 1. 서론
  1. long time lag problem(긴 시간 지연 문제)
  - 입력 데이터와 출력 데이터 사이의 시간 간격이 매우 길 경우, 그 사이의 의존성을 학습하기 어려워지는 현상
  2. 목표
  - LSTM이 기존의 제시된 방법보다 더 우수한 성능임을 입증
  - RTRL, BPTT 등 기존의 제시된 방법은 긴 시간 지연 문제에서 오차가 지수적으로 감소하는 현상으로 인해 제대로 작동하지 않는다.
  3. 문제 설정
   1. 학습 데이터셋에 긴 시간 지연 사례만 포함
   2. 과제가 단순한 무작위 가중치 추측과 같은 단순한 알고리즘으로는 빠르게 해결되지 않을 만큼 충분히 복잡
   - 무작위 가중치 추측같은 단순한 알고리즘으로는 해결되지 않을만큼
  4. 실험 설계
   1. 온라인 학습 및 로지스틱 시그모이드 사용
   2. 실험 1과 2에서는 초기 가중치를 [−0.2, 0.2] 범위에서 선택하고, 나머지 실험에서는 [−0.1, 0.1] 범위에서 선택
   3. 실험 데이터는 과제에 따라 무작위 생성
   4. 학습 과정은 메모리 셀과 게이트 구조를 포함한 LSTM 기반 구조에서 이루어진다.

 

5.1. 실험 1: 임베디드 Reber 문법
 1. Reber grammer
 - Reber 문법을 학습하는 것은 순차적인 데이터를 처리하는 능력을 평가하는 것이며, 각 기호가 어떤 규칙을 따르는지 모델이 학습하도록 하는 것



- 짧은 시간 지연 문제를 포함하는 경계 사례입니다.
- 이 실험은 LSTM의 출력 게이트가 기억을 보호하고 불필요한 신호를 차단하는데 중요한 역할을 한다는 것을 입증
- 기존 알고리즘(BPTT, RTRL)도 학습이 가능하지만 LSTM이 더 우수한 성능을 보입니다.



5.2. 실험 2: 노이즈 없는 시퀀스와 노이즈가 포함된 시퀀스

- 최종 요소를 예측하기 위해 네트워크는 첫 번째 요소를 p 타임 스텝 동안 저장해야 한다.
 1. Task 2a : 긴 시간 지연이 있는 노이즈 없는 시퀀스

- 기존 RTRL과 BPTT는 시간 지연이 길어질수록 실패

- 반면 LSTM은 메모리 셀과 입력 게이트를 사용하여 첫 번째 입력을 성공적으로 저장하고, 최종 출력에 반영

 

 2. Task 2b : 지역적 규칙이 없는 경우 - 입력 시퀀스의 압축 가능성을 제거하면 일반적인 신경망 구조는 실패하지만, LSTM은 이 경우에도 높은 성능을 유지


 3. Task 2c : 매우 긴 시간 지연 및 규칙성 없는 작업


- 방해 기호가 포함된 잡음 있는 환경에서 테스트합니다.
- 최소 시간 지연이 길어질수록 기존 알고리즘은 실패하지만, LSTM은 이를 해결합니다.

5.3. 실험 3: 동일 입력 라인의 신호와 잡음
 1. Task 3a 
 - 문제 자체가 단순하여, 무작위 가중치 추정(random weight guessing) 방식도 쉽게 해결할 수 있으나, 이는 성능을 테스트 하는 것이 아닌 LSTM이 신호와 노이즈를 구별할 수 있음을 확인하는데 사용된다.
 - 즉, 신호와 노이즈가 혼합된 데이터를 처리하는데 문제가 있는 것을 테스트하기 위한 기반 문제라고 생각하면 된다.


- ST1: 임의로 선택된 테스트 세트(256개 시퀀스)에서 오분류가 없는 경우

- ST2: ST1을 충족하고 평균 절대 테스트 오류가 0.01 미만인 경우.

 

2. Task 3b
 -  Task 3a와 동일하지만, 이제 관련 정보를 포함한 첫 N개의 시퀀스 요소에도 평균 0, 분산 0.2의 가우시안 노이즈를 추가
 - 노이즈를 추가했음에도 문제를 해결했다는 것은 LSTM이 노이즈를 무시하고 중요한 정보를 학습하는 데 강력한 알고리즘임을 보여준다.
- 기존 문제와 더 어려운 변형 문제를 포함합니다.
- LSTM은 복잡한 조건부 기대값을 학습할 수 있습니다.

- ST1: 임의로 선택된 테스트 세트(256개 시퀀스)에서 오분류가 6개 미만인 경우

- ST2: ST1을 충족하고 평균 절대 테스트 오류가 0.04 미만인 경우


 3. Task 3c
 - 클래스 1은 0.2, 클래스 2는 0.8이며, 가우시안 노이즈(평균 0, 분산 0.1, 표준편차 0.32)가 추가


5.4. 실험 4 : 더하기 문제 (Adding Problem)
- 이 실험은 분산되고 연속적인 값으로 이루어진 표현을 처리하는 LSTM 시험
 1. 실험 방식
  1. X1, X2를 실수, 마커의 규칙에 따라 선정
  2. 0.5 + (X1 + X2 / 4.0)으로 타깃값 선정
  3. ±0.04 범위 내에 있으면 정답으로 간주

 2. 결론
 - 이 실험은 LSTM이 단순히 패턴을 학습하는 것이 아니라, 연속 값 기반의 산술 연산을 수행할 수 있음을 입증
 -  표시된 마커에 따라 필요한 값을 정확히 기억하고 합산하는 능력을 보여준다.

5.5. 실험 5 : 곱셈 문제 (Multiplication Problem)
- LSTM이 비통합적(non-integrative) 해결 방법이 요구되는 과제를 해결할 수 있는지를 조사
 1. 실험 방식
  1. 이전 섹션 5.4의 더하기 문제와 유사하지만, 첫 번째 구성요소 값의 범위가 [0,1]로 제한
  2. 시퀀스 끝에서 타깃 값은 표시된 두 값의 곱 X1 * X2로 설정
  3. 첫 번째 입력 쌍이 표시되는 드문 경우에는 X1=1.0로 설정

- 분산된 입력과 긴 시간 지연을 포함하는 과제입니다.
- 단순히 값을 저장하고 더하는 것이 아닌 두 값의 관계를 이해 및 기억 해야 하며 시퀀스에 따라 정밀도를 요구한다.
- 기존 알고리즘으로는 해결 불가능하지만 LSTM은 가능합니다.

5.6. 실험 6: 복잡한 시간 순서 정보 추출
- 시간적 순서를 학습해야 하는 문제입니다.
- LSTM은 멀리 떨어진 입력 신호의 순서를 효과적으로 학습합니다.

6. Discussion

 1. Limitations of LSTM
  1. LSTM의 한계

 - 입력들이 매우 먼 시간 간격에 위치하고 그 사이에 노이즈가 섞인 시퀀스가 주어지는 문제입니다. 이런 문제는 LSTM이 잘 처리하지 못하는 경우가 많습니다. 이유는 특정 입력을 저장하는 것만으로는 전체 문제를 해결할 수 없기 때문
  2. 추가적인 유닛 필요

 - 각 메모리 셀 블록은 두 개의 추가 유닛(입력 게이트와 출력 게이트)을 필요로 한다.
  3. 피드포워드 네트워크와 유사한 문제

   1. 패리티 문제 (Parity Problem)

   - 비트 시퀀스에서 1의 개수가 짝수인지 또는 홀수인지를 판별하는 문제입니다.
   - LSTM의 구조적 장점(게이트 메커니즘)이 있음에도 불구하고, 500단계 이상의 입력을 정확히 처리하려면 충분히 훈련되지 않은 경우 기울기 소멸이나 학습 실패가 발생할 수 있다.

   - 모든 정보를 기억하고 연산하는데는 아직 취약하다.
  4. 최근성 문제

  - 최근성 문제란, 특정 시점에서 입력의 "시간적 중요성"을 다룰 때 발생하는 문제로 시간 간격이 매우 미세하게 구별되어야 하는 경우에는 추가적인 메커니즘이 필요할 수 있다.
  - LSTM이 본질적으로 장기 의존성 문제를 해결하도록 설계되었지만, 모든 시간 기반 문제를 완벽히 처리할 수는 없음을 보여준다.

 2. Advantages of LSTM
  1. 긴 시간 지연 문제 해결 능력
  2. 긴 시간 지연과 노이즈 처리
  3. 일반화되는 성능
  4. 파라미터 튜닝의 필요 없음
  - LSTM은 학습률, 입력 게이트 편향 및 출력 게이트 편향과 같은 다양한 파라미터에 대해 잘 작동
  5. 업데이트 복잡도
  - LSTM 알고리즘의 가중치 및 시간 단계별 업데이트 복잡도는 기본적으로 BPTT와 동일하며, O(1)

7. Conclusion

 1. CEC(상수 오류 회전 장치)를 통한 지속적인 오류 흐름 보장

  - CEC는 LSTM의 핵심 구성 요소로, CEC는 오류 신호를 메모리 셀 내부에서 계속 순환시키는 역할을 하며, 이 과정에서 입력 게이트와 출력 게이트를 통해 유지 및 변환

  2. LSTM의 응용

   1. 시계열 예측(실험 4, 5)

   2. 음성 처리