[Home] AI로 돌아가기

b) LSTM(장단기 메모리 순환 신경망; Long Short-Term Memory) [YouTube]


1. LSTM이 필요한 이유

• RNN의 한계
기본 RNN시퀀스(Sequence, 순서대로 정렬된 연속된 데이터)가 길어질수록 초반 정보를 잊어버리는 기울기 소실(Gradient Vanishing) 문제가 발생한다.

• 장기 의존성 문제(long-term dependency problem)
다음과 같은 문장이 있다.

"나는 프랑스에서 자랐다. ... (중간에 한국, 미국 등이 섞인 많은 문장) ... 그래서 나는 프랑스어를 유창하게 한다."

이 문장에서 RNN은 앞부분의 "프랑스"라는 정보를 끝까지 기억하기 어렵다.

이와 같이 시퀀스(sequence)의 길이가 길어질 때 초반부에 등장한 중요한 정보(예: 프랑스)가 후반부의 결과에 영향을 미치지 못하는 현상을 "장기 의존성 문제"라고 한다.

LSTM은 이러한 장기 의존성 문제를 해결하기 위해 고안되었다.


2. LSTM의 핵심 개념

LSTM은 RNN과는 다르게 신경망 내에 메모리를 두어 과거의 데이터도 저장할 수 있도록 하였다.

기본 RNN이 단기 메모리만 가진다면, LSTM은 장기 메모리(Cell State)를 추가로 보유하여 중요한 정보를 오래 보관할 수 있다.

...
RNN vs LSTM
a: RNN은 내부 상태(메모리)를 사용하여 입력 시퀀스를 처리한다.
b: 장단기 메모리(LSTM) 네트워크는 RNN의 변형으로,
과거 데이터를 기억하기 위해 장기 메모리가 추가된다.
출처: DOI:10.1101/2020.05.03.075184
RNN: 공란에 넣을 단어는? ① He, ② She
출처: https://youtu.be/bX6GLbpw-A4?si=6b-e8oGkGpx3OFPu
(a) John을 기억(input) → 입력 게이트

(b) John을 망각(forget) → 망각 게이트

(c) 메모리 셀(Memory Cell, 주홍색)
LSTM: RNN + 메모리 셀
출처: https://youtu.be/bX6GLbpw-A4?si=6b-e8oGkGpx3OFPu

3. 게이트(Gate) 메커니즘

입출력을 제어하기 위한 소자(논리적인 장치; device; 素子)인 게이트(Gate)를 두었다.

게이트는 일종의 정보 필터 역할을 한다. 마치 수문(水門)이 물의 흐름을 조절하듯, 게이트는 정보의 흐름을 조절한다.

...
게이트는 입력 게이트, 출력 게이트, 망각 게이트가 있다.
출처: https://ljyong.tistory.com/47

LSTM에서 각 게이트의 역할은 다음과 같다.

• 망각 게이트(Forget Gate)
과거의 정보를 어느 정도까지 기억할지 결정하는 소자이다.
과거와 현재 데이터가 sigmoid 함수를 거쳐 나온 값을 과거의 정보와 곱한다.
따라서 sigmoid 함수의 출력이 0일 경우 과거의 정보는 완전히 잊혀지고, 1일 경우에는 과거의 정보가 온전히 보존된다.
→ "이 정보는 버려도 될까, 아니면 계속 기억해야 할까?"를 결정

LSTM: 망각 게이트( \( W_f , B_f \) )
망각 게이트: 과거 정보를 얼마나 잊을지 결정
Jane이 새로이 입력되면서,
메모리 셀에서 기존 John에 관한 기억이 100% → 20%로 80%가 망각된다.
출처: https://youtu.be/bX6GLbpw-A4?si=6b-e8oGkGpx3OFPu

• 입력 게이트(Input Gate)
현재의 정보를 기억하기 위한 소자이다.
과거와 현재 데이터가 sigmoid 함수와 tanh 함수를 거치면서 현재 정보에 대한 보존량을 결정한다.
→ "새로 들어온 정보 중 무엇을 저장할까?"를 결정

LSTM: 입력 게이트( \( W_i , B_i \) ), 셀 후보( \( W_c , B_c \) )
Jane이 새로이 메모리 셀에 더해지는 과정
입력 게이트: 현재 정보를 얼마나 반영할지 결정
셀 후보(Candidate): 실제로 메모리에 저장될 새로운 정보의 내용
출처: https://youtu.be/bX6GLbpw-A4?si=6b-e8oGkGpx3OFPu

• 출력 게이트(Output Gate)
출력층으로 출력할 정보의 양을 결정하는 소자이다.
셀 상태(Cell State)와 현재 입력을 바탕으로 다음 단계로 전달할 정보를 필터링한다.
→ "저장된 정보 중 무엇을 밖으로 내보낼까?"를 결정

LSTM: 출력 게이트( \( W_o , B_o \) )
출력 게이트: 최종적으로 외부로 내보낼 값을 결정
현재의 정보 Jane과 메모리 셀의 정보 중에서 최종 출력할 값을 결정
출처: https://youtu.be/bX6GLbpw-A4?si=6b-e8oGkGpx3OFPu


4. LSTM의 응용

현재까지 제안된 RNN 기반의 응용 서비스들은 대부분 LSTM을 이용하여 구현되었다.

LSTM은 다음과 같은 분야에서 활용된다:
    • 자연어 처리: 기계 번역, 문장 생성, 감성 분석
    • 음성 인식: 음성을 텍스트로 변환
    • 시계열 예측: 주가 예측, 날씨 예측
    • 영상 분석: 비디오 캡션 생성, 행동 인식


5. LSTM과 인간의 기억

LSTM의 메커니즘은 인간의 기억 시스템과 유사한 점이 많다. 우리도 중요한 정보는 장기 기억으로 저장하고, 불필요한 정보는 잊어버린다. LSTM은 이러한 인간의 선택적 기억 능력을 모방한 것이다.

메멘토(Memento, 2001) (9분)

아내가 살해당한 후, 10분밖에 기억 못하는 단기기억상실증(선행성 기억상실증)에 걸린 남자가 사진, 메모, 문신으로 남긴 기록을 따라 범인을 쫓는 기억 추적 범죄 스릴러
<인터스텔라><인셉션> 크리스토퍼 놀란(Christopher Nolan) 감독의 첫 번째 마스터피스

영화 속 주인공은 단기 기억만 가능한 RNN처럼 과거를 빠르게 잊는다. 반면 LSTM은 중요한 과거 정보를 장기 메모리에 보관하여 먼 미래에도 활용할 수 있다.