1. LSTM이 필요한 이유
• RNN의 한계
기본 RNN은 시퀀스(Sequence, 순서대로 정렬된 연속된 데이터)가 길어질수록 초반 정보를 잊어버리는 기울기 소실(Gradient Vanishing) 문제가 발생한다.
• 장기 의존성 문제(long-term dependency problem)
다음과 같은 문장이 있다.
"나는 프랑스에서 자랐다. ... (중간에 한국, 미국 등이 섞인 많은 문장) ... 그래서 나는 프랑스어를 유창하게 한다."
이 문장에서 RNN은 앞부분의 "프랑스"라는 정보를 끝까지 기억하기 어렵다.
이와 같이 시퀀스(sequence)의 길이가 길어질 때 초반부에 등장한 중요한 정보(예: 프랑스)가 후반부의 결과에 영향을 미치지 못하는 현상을 "장기 의존성 문제"라고 한다.
• LSTM은 이러한 장기 의존성 문제를 해결하기 위해 고안되었다.
2. LSTM의 핵심 개념
LSTM은 RNN과는 다르게 신경망 내에 메모리를 두어 먼 과거의 데이터도 저장할 수 있도록 하였다.
기본 RNN이 단기 메모리만 가진다면, LSTM은 장기 메모리(Cell State)를 추가로 보유하여 중요한 정보를 오래 보관할 수 있다.
3. 게이트(Gate) 메커니즘
입출력을 제어하기 위한 소자(논리적인 장치; device; 素子)인 게이트(Gate)를 두었다.
게이트는 일종의 정보 필터 역할을 한다. 마치 수문(水門)이 물의 흐름을 조절하듯, 게이트는 정보의 흐름을 조절한다.
LSTM에서 각 게이트의 역할은 다음과 같다.
• 망각 게이트(Forget Gate)
과거의 정보를 어느 정도까지 기억할지 결정하는 소자이다.
과거와 현재 데이터가 sigmoid 함수를 거쳐 나온 값을 과거의 정보와 곱한다.
따라서 sigmoid 함수의 출력이 0일 경우 과거의 정보는 완전히 잊혀지고, 1일 경우에는 과거의 정보가 온전히 보존된다.
→ "이 정보는 버려도 될까, 아니면 계속 기억해야 할까?"를 결정
망각 게이트: 과거 정보를 얼마나 잊을지 결정
Jane이 새로이 입력되면서,
메모리 셀에서 기존 John에 관한 기억이 100% → 20%로 80%가 망각된다.
출처: https://youtu.be/bX6GLbpw-A4?si=6b-e8oGkGpx3OFPu
• 입력 게이트(Input Gate)
현재의 정보를 기억하기 위한 소자이다.
과거와 현재 데이터가 sigmoid 함수와 tanh 함수를 거치면서 현재 정보에 대한 보존량을 결정한다.
→ "새로 들어온 정보 중 무엇을 저장할까?"를 결정
Jane이 새로이 메모리 셀에 더해지는 과정
입력 게이트: 현재 정보를 얼마나 반영할지 결정
셀 후보(Candidate): 실제로 메모리에 저장될 새로운 정보의 내용
출처: https://youtu.be/bX6GLbpw-A4?si=6b-e8oGkGpx3OFPu
• 출력 게이트(Output Gate)
출력층으로 출력할 정보의 양을 결정하는 소자이다.
셀 상태(Cell State)와 현재 입력을 바탕으로 다음 단계로 전달할 정보를 필터링한다.
→ "저장된 정보 중 무엇을 밖으로 내보낼까?"를 결정
출력 게이트: 최종적으로 외부로 내보낼 값을 결정
현재의 정보 Jane과 메모리 셀의 정보 중에서 최종 출력할 값을 결정
출처: https://youtu.be/bX6GLbpw-A4?si=6b-e8oGkGpx3OFPu
4. LSTM의 응용
현재까지 제안된 RNN 기반의 응용 서비스들은 대부분 LSTM을 이용하여 구현되었다.
LSTM은 다음과 같은 분야에서 활용된다:
• 자연어 처리: 기계 번역, 문장 생성, 감성 분석
• 음성 인식: 음성을 텍스트로 변환
• 시계열 예측: 주가 예측, 날씨 예측
• 영상 분석: 비디오 캡션 생성, 행동 인식
5. LSTM과 인간의 기억
LSTM의 메커니즘은 인간의 기억 시스템과 유사한 점이 많다. 우리도 중요한 정보는 장기 기억으로 저장하고, 불필요한 정보는 잊어버린다. LSTM은 이러한 인간의 선택적 기억 능력을 모방한 것이다.