LSTM 논문 과제

송정근·3일 전

논문 필기본 : https://drive.google.com/file/d/1hfVOkMnp294IpQXKHi-Hib9hCM_CIwT8/view?usp=sharing

논문 정리 : https://velog.io/@j_keun/LSTM-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0

1. 기존 RNN에는 어떤 문제가 있었는가?

기존 RNN(Recurrent Neural Network)은 이전 시점의 은닉 상태를 다음 시점으로 전달하므로, 순서가 있는 데이터를 처리할 수 있다. 예를 들어 문장, 음성, 주가처럼 앞의 정보가 뒤의 결과에 영향을 주는 데이터에 적합하다.

하지만 학습 과정에서 BPTT(Backporpagation Through Time)를 사용하면 기울기 소실과 기울기 폭주 문제가 발생한다.

  • 기울기 소실: 과거 시점으로 오차를 전달할수록 값이 계속 작아져 거의 0이 되는 현상
  • 기울기 폭주: 반대로 기울기가 계속 커져 학습이 불안정해지는 현상

특히 일반 RNN은 많은 시간 단계를 거쳐 오차를 전달할 때, 활성화 함수의 미분값과 가중치가 계속 곱해진다. 이 곱의 결과가 1보다 작으면 기울기가 빠르게 사라지고, 1보다 크면 지나치게 커진다.

➡ 기존 RNN은 최근 정보는 비교적 잘 반영하지만, 오래전의 중요한 정보를 현재 예측에 활용하는데 어려움이 있다.

2. 긴 Sequence를 학습할 때 왜 문제가 발생하는가?

긴 시퀀스에서 현재 시점의 오차가 과거의 중요한 입력까지 전달되어야 한다. 하지만 현재와 과거 사이에 시간 단계가 많아질수록, 역전파 과정의 기울기 곱셈도 길어진다.

예를 들어 다음 문장을 보자.

"나는 한국에서 태어나 자랐고, 현재 미국에서 일하고 이싿. 내 모국어는 ___이다."

정답을 예측하려면 문장 앞부분의 "한국"이라는 정보를 기억해야 한다. 하지만 그 사이에 많은 단어가 들어가면, 일반 RNN은 앞부분의 정보를 학습 신호로 유지하기 어렵다.

이를 수식적으로 보면, 과거 시점으로 전달되는 기울기는 여러 시점의 미분값과 가중치가 연속적으로 곱해진 결과다.

현재 오차
	➡ t-1의 가중치 * 미분값
	➡ t-2의 가중치 * 미분값
	➡ ...
	➡ 과거 시점

따라서 시간 간격이 갈수록 다음 문제가 발생한다.

  • 과거의 중요한 정보가 학습 과정에서 사라진다.
  • 현재의 예측 오류가 과거 입력의 가중치까지 도달하지 못한다.
  • 모델이 무엇을 오래 기억해야 하는지 학습하기 어렵다.
  • 잡음이나 관련 없는 입력이 많은 경우 중요한 정보를 유지하기 더 어렵다.

➡ 핵심은 "시퀀스가 길다"는 것만이 문제가 아니라, 오래전 정보가 현재 결과에 반드시 필요하지만 중간에 관련 없는 정보가 많이 있는 상황이다.

3. LSTM은 기존 RNN의 문제를 어떤 아이디어로 해결하려 했는가?

LSTM은 메모리 셀 내부에 오차가 일정하게 흐를 수 있는 경로를 만들고, 그 경로를 게이트로 제어하는 방식으로 문제를 해결했다.

  1. 메모리 셀 내부에 정보를 오래 유지한다.
  2. CEC(Constant Error Carousel)를 통해 기울기가 급격히 사라지거나 커지는 것을 줄인다.
  3. 입력 게이트와 출력 게이트를 통해 기억할 정보와 사용할 정보를 선택한다.

기존 RNN에서는 새 입력이 계속 들어오면 이전 정보가 쉽게 덮어써지거나, 기억된 정보가 계속 출력되어 다른 계산을 방해할 수 있다. LSTM은 이를 막기 위해 게이트를 둔다.

새 입력
  ↓
입력 게이트: 이 정보를 저장할지 결정
  ↓
메모리 셀: 필요한 정보를 유지
  ↓
출력 게이트: 현재 시점에 꺼내 쓸지 결정
  ↓
다음 계층 또는 최종 예측

➡ LSTM은 필요한 정보는 유지하고, 필요 없는 정보는 저장하거나 출력하지 않도록 학습하는 구조다.

4. LSTM의 핵심 구조는 무엇인가?

4-1 메모리 셀

메모리 셀은 정보를 장기간 보관하기 위한 내부 저장 공간이다. 일반 RNN의 은닉 상태보다 장기 정보를 유지하기 위한 구조가 강화되어 있다.

논문에서는 메모리 셀의 내부 상태는 이전 상태에 새 후보 정보를 더하는 형태로 표현

현재 셀 상태
= 이전 셀 상태
+ 입력 게이트가 허용한 새 정보

➡ 이전 상태가 매 시점마다 강하게 변형되지 않으며, 긴 시간 동안 정보와 학습 신호를 유지할 수 있다.

4-2 CEC(Constant Error Carousel)

CEC는 메모리 셀 안에서 자신으로 이어지는 연결의 가중치를 1.0으로 유지하는 구조다 .

이 경로에서는 오차가 반복적으로 작아지거나 커지지 않고, 비교적 일정하기 순환할 수 있다.

논문에서는 장기 의존성 학습의 핵심 기반이 CEC라고 말한다.

셀 상태(t-1)
     ↓
   CEC 연결
     ↓
셀 상태(t)

➡ CEC는 먼 과거의 입력까지 학습 신호가 도달할 수 있도록 돕는 통로이다.

4-3 입력 게이트

입력 게이트는 새로 들어온 정보를 메모리 셀이 저장할지 결정한다.

  • 값이 1에 가까우면: 현재 입력을 메모리에 반영
  • 값이 0에 가까우면: 현재 입력을 무시하고 기존 메모리를 보호

예) 문장에서 인물의 국적 정보를 기억해야 한다면, 국적이 등장하는 시점에는 입력게이트를 열고, 이후의 관련 없는 단어가 들어올 때는 게이트를 닫아 기존 기억이 덮어써지지 않도록 할 수 있다.

4-4 출력 게이트

출력 게이트는 메모리 셀에 저장된 정보를 현재 시점의 계산에 사용할지 결정한다.

  • 값이 1에 가까우면: 메모리 내용을 외부로 전달한다.
  • 값이 0에 가까우면: 기억은 유지하되 현재 출력에는 사용하지 않는다.

➡ 입력 게이트가 "언제 저장할지"를 결정한다면, 출력 게이트는 "언제 꺼내 사용할지"를 결정한다고 생각하면 된다.

5. 논문에서 말하는 장기 의존성(Long-Term Dependency)이란 무엇인가?

장기 의존성이란 시퀀스의 앞부분에 등장한 정보가 많은 시간 단계가 지난 뒤의 결과를 결정하는 관계를 말한다.

예)

시점 1: 중요한 신호 A 등장
시점 2~99: 잡음 또는 관련 없는 입력
시점 100: 신호 A를 이용해 결과 예측

모델은 시점 1의 신호 A를 시점 100까지 기억해야 한다. 중간에 입력이 많고 잡음이 섞여 있어도 중요한 정보를 잃으면 안된다.

논문에서는 다음 조건일때 장기 의존성 문제가 더 발생한다고 설명한다.

  • 중요한 입력과 결과 사이의 시간 간격이 길다.
  • 중간에 관련 없는 입력이나 잡음이 많다.
  • 중요한 정보가 어느 위치에 나타날지 미리 알기 어렵다.
  • 현재 예측을 위해 여러 과거 정보를 함께 기억해야 한다.

➡ LSTM은 CEC와 게이트를 이용해 이러한 장기 의존성을 학습하도록 설계

6. 논문을 읽고 새롭게 알게 된 내용

6-1 LSTM의 핵심은 오차 흐름 제어다.

논문을 읽기 전에는 LSTM이 단순히 정보를 오래 저장하는 모델이라고 생각했다. 하지만 논문에서 다루는 더 핵심적인 문제는, 긴 시퀀스에서 과거까지 학습 신호가 전달되지 않는 기울기 소실 문제였다.

➡ LSTM은 기억 장치이면서 동시에 긴 시간 간격에서도 오차를 전달할 수 있도록 설계된 학습 구조임을 알게되었다.

6-2 LSTM도 모든 문제를 해결하지는 못한다.

논문에서는 LSTM의 한계도 설명해준다. 예를 들어,멀리 떨어진 두 입력의 XOR처럼 두 정보를 모두 기억해야만 오차가 줄어드는 비분해적 문제는 학습하기 어렵다. 하나의 정보만 기억한 상태에서는 성능이 좋아지지 않으므로, 기울기 기반 학습이 어느 방향으로 가야 하는지 찾기 어렵다고 설명한다.

또한 정밀하게 시간 단계를 새어야 하는 문제에는 별도의 카운팅 메커니즘이 필요하다고 설명한다.

7. 기타 추가 내용

7-1 LSTM의 장점

  • 긴 시간 간격의 중요한 정보를 학습할 수 있다.
  • 잡음이 있는 시퀀스에서도 필요한 정보를 선택적으로 유지할 수 있다.
  • 시계열 예측, 음성 처리, 자연어 처리 등 순서가 중요한 데이터에 적용할 수 있다.
  • BPTT와 유사한 수준의 계산 복잡도로 학습할 수 있다.
  • 관련 정보가 시퀀스의 어느 위치에 등장하더라도 일반화 할 수 있다.

7-2 LSTM의 한계

  • 모든 장기 의존성 문제를 자동으로 해결하지는 못한다.
  • 매우 정확한 시간 단계 계산에는 한계가 있을 수 있다.
  • 게이트와 메모리 셀 때문에 일반 RNN보다 구조와 파라미터가 복잡해질 수 있다.
profile
기록하며 성장하는 개발자

0개의 댓글