AI VIDEO BRIEFING
LSTM 장단기 메모리 쉽게 이해하기: RNN 기울기 폭발·소실 문제와 망각·입력·출력 게이트
순환 신경망(RNN)에서 기울기가 폭발하거나 소실하는 문제를, 장기·단기 두 경로로 나눈 LSTM이 어떻게 푸는지 망각·입력·출력 게이트와 시그모이드·tanh 함수, 두 회사 주가 예측 예시로 차근차근 풀이한다.

핵심 메시지
쉽게 이해하기
기본 순환 신경망은 피드백 루프를 펼쳐 길이가 다른 순차 데이터를 다룬다. 그런데 피드백 루프의 가중치가 1보다 크면, 예컨대 2이고 데이터가 50일치라면 입력에 2를 50번 곱하는 셈이 된다. 2의 50제곱은 엄청난 수라서 경사하강에 필요한 기울기가 폭발한다. 반대로 가중치가 0.5라면 0.5의 50제곱은 0에 매우 가까워져 기울기가 사라진다. 그래서 바닐라 RNN은 학습이 어렵다.
LSTM의 핵심 아이디어는 단순하다. 오래전 일어난 사건과 방금 일어난 사건을 같은 피드백 루프로 처리하지 않고, 장기 기억을 위한 경로와 단기 기억을 위한 경로를 따로 두는 것이다. 다만 그 대가로 유닛 내부 구조는 바닐라 RNN보다 훨씬 복잡하다.
내부를 이해하려면 두 활성화 함수가 필요하다. 시그모이드는 어떤 입력이든 0과 1 사이 값으로 바꾸고, tanh(하이퍼볼릭 탄젠트)는 어떤 입력이든 -1과 1 사이 값으로 바꾼다. 유닛 맨 위를 가로지르는 셀 상태는 장기 기억을 나타내는데, 곱셈과 덧셈으로 수정될 뿐 직접 붙은 가중치가 없어 기억이 여러 유닛을 통과해도 기울기가 안정적이다. 반면 은닉 상태는 단기 기억으로 가중치와 바로 연결돼 있다.
첫 단계인 망각 게이트는 단기 기억과 입력에 가중치를 곱하고 편향을 더한 값을 시그모이드에 넣어, 기존 장기 기억의 몇 퍼센트를 남길지 정한다. 입력이 큰 음수면 출력이 0이 돼 장기 기억이 완전히 잊힌다. 둘째 단계인 입력 게이트는 단기 기억과 입력으로 잠재 기억을 tanh로 만들고, 그중 몇 퍼센트를 장기 기억에 더할지를 다시 시그모이드로 정한다. 마지막 출력 게이트는 갱신된 장기 기억을 tanh에 넣어 잠재 단기 기억을 만든 뒤, 시그모이드로 얼마나 내보낼지 정한다. 이 새 단기 기억이 곧 유닛의 출력이다.
실제 데이터로 보면, 1일차에만 값이 다르고 5일차에도 다시 갈리는 두 회사 A·B의 주가가 있다. 1~4일치를 차례로 펼친 LSTM에 흘려보내면, 같은 가중치·편향만으로도 1일차에 본 차이를 5일차까지 기억해 두 회사의 서로 다른 5일차 값을 정확히 예측한다. 이렇게 장기·단기 기억 경로를 분리한 덕분에 LSTM은 바닐라 RNN보다 더 긴 시퀀스를 다룰 수 있으며, 나아가 트랜스포머로 가는 디딤돌이 된다.
주요 인사이트
- LSTM의 핵심은 셀 상태에 직접 붙은 가중치가 없다는 점이다. 덕분에 장기 기억이 여러 유닛을 통과해도 기울기가 폭발하거나 소실하지 않는다.
- 망각·입력·출력 세 게이트는 모두 시그모이드(0~1)로 '몇 퍼센트를 기억할지'를 정한다는 점에서 같은 메커니즘을 세 번 반복하는 구조다.
- 같은 가중치·편향을 매 단계 재사용하기 때문에 길이가 제각각인 시퀀스도 같은 유닛으로 처리할 수 있다.
- 회사 A·B 주가 예시처럼 1일차 정보를 5일차까지 보존해 다른 출력을 내는 것이 LSTM이 장기 의존성을 다루는 방식이다.
자주 묻는 질문
기본 순환 신경망(RNN)은 왜 학습이 어려운가?
피드백 루프 가중치를 시퀀스 길이만큼 거듭제곱하기 때문이다. 가중치가 1보다 크면(예 2의 50제곱) 기울기가 폭발하고, 1보다 작으면(예 0.5의 50제곱) 0에 가깝게 소실돼 경사하강이 제대로 작동하지 않는다.
LSTM의 핵심 아이디어는 무엇인가?
오래전 사건과 방금 일어난 사건을 같은 피드백 루프로 처리하지 않고, 장기 기억과 단기 기억을 위한 두 개의 별도 경로를 두는 것이다. 그래서 기울기 폭발·소실 문제를 피한다.
망각·입력·출력 게이트는 각각 무엇을 하나?
망각 게이트는 기존 장기 기억을 몇 퍼센트 남길지, 입력 게이트는 새로 만든 잠재 기억을 얼마나 더할지, 출력 게이트는 갱신된 장기 기억에서 단기 기억(유닛 출력)을 얼마나 내보낼지 정한다.
시그모이드와 tanh는 왜 함께 쓰나?
시그모이드는 입력을 0~1로 바꿔 '기억의 몇 퍼센트를 남길지' 비율을 정하고, tanh는 입력을 -1~1로 바꿔 잠재 기억 값 자체를 만든다. 게이트마다 둘을 나눠 쓴다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗