스킬캠퍼스

오늘 끝나면

LSTM & GRU

  • LSTM & GRU의 핵심 문제를 한 문장으로 설명한다
  • 오른쪽 실습에서 LSTM이 어떻게 움직이는지 관찰한다
  • 다음 강의와 이어지는 한계를 말할 수 있다

실습 미션

1997 호크라이터 — 기억을 여닫는 게이트 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

  • 실습의 기본값을 먼저 관찰
  • 입력값이나 모드를 한 번 이상 바꿔 결과 비교
  • 왜 결과가 바뀌었는지 한 문장으로 설명

AI · Day 8 / 지도학습 · 생성 DL

기억하는
게이트

RNN은 문장 앞부분을 금방 잊는다. 같은 가중치를 수십 번 곱하니 신호가 0으로 꺼지거나 무한히 터진다. LSTM과 GRU는 곱셈 게이트 하나로 이 문제를 뚫는다.

P.01AI · Day 8

왜 RNN은 잊어버릴까

RNN은 같은 셀을 시간축으로 반복해 펼친 구조다. 이 반복이 함정이다.

역전파는 시간을 거슬러 가며(BPTT) 같은 가중치 W를 계속 곱한다. W가 1보다 작으면 신호가 0으로 꺼진다(vanishing). 1보다 크면 무한히 터진다(exploding). 50 스텝 전 단어의 영향력은 사실상 0이 된다.

그래서 1990년대 RNN은 "나는 프랑스에서 자랐다 ... 그래서 나는 ___를 유창하게 한다" 같은 빈칸을 못 채웠다. 정답 프랑스어의 단서가 너무 멀리 있었다.

GRADIENT × 깊이
‖gradient‖시간 거슬러 ←출력

과거로 갈수록 기울기가 0에 수렴한다. 먼 입력은 학습되지 않는다

P.02AI · Day 8

컨베이어 벨트와 세 개의 게이트

1997년, Hochreiter와 Schmidhuber가 낸 답이다. 기억 전용 고속도로를 하나 깔자는 것이다.

LSTM에는 셀 상태 cₜ라는 컨베이어 벨트가 흐른다. 정보는 이 벨트 위에서 거의 변형 없이 멀리 간다. 무엇을 올리고 내릴지는 세 게이트가 정한다.

  • 망각 게이트 fₜ는 벨트에서 무엇을 지울지 정한다
  • 입력 게이트 iₜ는 새 정보를 얼마나 올릴지 정한다
  • 출력 게이트 oₜ는 벨트에서 무엇을 꺼낼지 정한다

각 게이트는 sigmoid라 출력이 0에서 1 사이다. 0이면 닫히고 1이면 열린다. 이 곱셈 하나가 기억을 살리고 죽인다.

LSTM CELL
cₜ₋₁ → cₜ (셀 상태 / 컨베이어 벨트)σfₜ망각σiₜ입력σoₜ출력xₜ, hₜ₋₁hₜ

세 게이트(σ)가 파란 고속도로 위 정보를 올리고 내린다

P.03AI · Day 8

덧셈이 기울기를 살린다

LSTM의 핵심은 게이트가 아니다. 셀 상태를 곱하지 않고 더한다는 점이다.

업데이트 식은 cₜ = fₜ · cₜ₋₁ + iₜ · c̃ₜ이다. 망각 게이트가 1에 가까우면 이전 기억이 거의 그대로 다음으로 흐른다. 역전파할 때 이 경로의 기울기는 곱셈이 아니라 덧셈으로 누적된다. 그래서 멀리까지 안 죽고 전달된다.

파이썬 코드 보기
# LSTM 한 스텝 (numpy 직관)
f = sigmoid(x @ Wf + h @ Uf)   # 망각
i = sigmoid(x @ Wi + h @ Ui)   # 입력
o = sigmoid(x @ Wo + h @ Uo)   # 출력
g = tanh(x @ Wg + h @ Ug)      # 후보 기억

c = f * c_prev + i * g         # 덧셈! 기울기 고속도로
h = o * tanh(c)                # 다음 hidden

이 한 줄 c = f * c_prev + i * g가 vanishing gradient 문제의 우회로다.

CELL STATE 업데이트
망각 게이트 실험실 · 기억이 시간축을 건너는지 보라
단서 직후 cₜ
1.00
마지막 cₜ
0.49
기억 보존율
49%
절반쯤 살아남음, 게이트가 조금 새는 중
cₜ = fₜ · cₜ₋₁ + iₜ · c̃ₜ, f를 1에 붙이면 이전 기억이 거의 그대로 더해지며 멀리 간다
P.04AI · Day 8

GRU, 게이트를 둘로 줄이다

2014년, Cho 연구팀이 물었다. 게이트가 정말 셋이나 필요한가.

GRU는 셀 상태와 hidden을 하나로 합친다. 게이트도 둘로 줄인다. 리셋 게이트는 과거를 얼마나 무시할지 정한다. 업데이트 게이트는 새 정보와 옛 정보를 얼마나 섞을지 정한다.

파라미터가 약 25% 적어 더 빠르다. 데이터가 적을 때 과적합도 덜하다. 성능은 작업에 따라 LSTM과 엎치락뒤치락한다. 그래서 실무 규칙은 간단하다. 일단 GRU로 시작하고 모자라면 LSTM으로 간다.

LSTM vs GRU
항목LSTMGRU
게이트3 (f,i,o)2 (r,z)
상태c + hh 하나
파라미터많음약 25% ↓
속도보통빠름
등장19972014

GRU는 더 가벼운 LSTM이다. 일단 GRU로 시작하고 모자라면 LSTM으로 간다

P.05AI · Day 8

게이트가 남긴 유산

2014~2017년, 거의 모든 번역기와 음성인식, 챗봇의 심장은 LSTM이었다. 구글 번역도 2016년에 LSTM으로 갈아탔다.

LSTM의 교훈은 분명하다. 긴 맥락이 가치를 만드는 곳이 있다. 고객 상담 히스토리, 시계열 수요 예측, 장비 로그 이상 탐지가 그렇다. 이런 곳에서 "방금 본 것"만 보는 모델은 돈을 놓친다. 기억의 길이가 곧 정확도였다.

하지만 LSTM도 한 번에 한 스텝씩만 처리한다. 순차 처리라 느리다. 아주 긴 맥락은 여전히 버겁다. 이 한계가 다음 챕터 Attention을 부른다.

Q. 망각 게이트가 항상 1을 출력하면 LSTM은 어떻게 동작하는가?이전 셀 상태가 손실 없이 그대로 누적된다(cₜ = cₜ₋₁ + iₜ·c̃ₜ). 기억을 절대 안 지우니 장기 정보는 잘 보존된다. 단, 무관한 옛 정보까지 쌓여 포화된다. 그래서 "무엇을 잊을지" 학습하는 것 자체가 핵심이다.
기억의 흐름
셀 상태(장기 기억)멀어도 연결됨나는프랑스에서···유창한프랑스어단서 '프랑스' → 정답 '프랑스어'

멀리 떨어진 단서를 기억해 빈칸을 채운다. RNN이 못 하던 일이다

3줄 요약

  1. 11997 호크라이터 — 기억을 여닫는 게이트
  2. 2LSTM & GRU은 준비운동 → 지도학습 → 시퀀스 → 생성모델 → 실무 적용 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

LSTM

1997 호크라이터 — 기억을 여닫는 게이트

모델

입력을 받아 예측이나 출력을 만드는 계산 규칙

손실

예측이 정답에서 얼마나 빗나갔는지 재는 숫자