딥러닝 A to Z · 3-7

순서 모델 — 기억을 들고 한 칸씩 걷는다

문장, 소리, 센서 기록, 주가는 순서가 의미를 만든다. 한 장씩 따로 보는 신경망에 "방금 본 것"을 기억할 고리를 달면 RNN이 되고, 그 기억이 흐려지지 않도록 문(게이트)을 달면 LSTM과 GRU가 된다. 기억이 실제로 남는지 숫자로 따라가고, 게이트가 있어도 학습이 저절로 되지는 않는다는 것까지 실험으로 확인한다.

1990Elman의 단순 순환 신경망 [R1]
1997LSTM 발표 [R3]
3개 · 2개LSTM과 GRU의 게이트 수
1,152 : 912은닉 16일 때 LSTM과 GRU 순환층 파라미터 (Keras)
+0.86 → −0.88첫 신호를 뒤집으면 바뀌는 LSTM의 기억 (섹션 5)
2개Colab에서 바로 돌리는 코드
1한 장씩

한 장씩, 한 방향으로 — 장면 하나로는 알 수 없는 것

3-1에서 초파리는 그림자가 "다가오는지"를 알아봤다. 그런데 그림자가 찍힌 사진 한 장만 받는다면 어떨까.

신경망이 받는 것

초보자를 위한 풀이

3-2·3-3의 신경망은 입력 하나를 받아 출력 하나를 내고 끝난다. 앞에서 무엇을 봤는지 기억하지 않는다. 이런 신경망을 피드포워드(앞으로만 흐르는) 신경망이라 부른다. 크기가 같은 그림자 한 장은 다가오는 중일 수도, 멀어지는 중일 수도 있다. 답은 장면 하나가 아니라 장면들의 순서에 있다. 3-1의 실험이 장면 두 장(처음·나중)을 함께 넣은 것도 이 때문이다.

2피드포워드

피드포워드로 순서를 넣는 두 방법과 그 한계

수열 "100 → 110 → 120"(오름세)과 "120 → 110 → 100"(내림세)은 같은 숫자 세 개로 이루어져 있다. 피드포워드 신경망에 이 둘을 넣는 방법은 두 가지다.

넣는 방법
수열 길이
3고리와 펼치기

고리가 생기는 이유와 펼치기

ht = f(xt, ht−1)같은 가중치를 시간마다 다시 쓴다

보기
길이

초보자를 위한 풀이

섹션 2의 문제를 푸는 아이디어는 간단하다. 한 칸을 처리할 때 지난 칸에서 만든 요약(은닉 상태)도 함께 받는다. 그림으로 그리면 상자에서 나온 화살표가 자기 자신으로 돌아가 고리가 된다. 이 고리를 시간 축으로 쭉 펼치면, 같은 상자가 칸 수만큼 이어진 피드포워드 신경망처럼 보인다. 상자들은 모두 같은 가중치를 쓴다. 3-3의 CNN이 같은 필터를 모든 "자리"에 썼듯이, RNN은 같은 가중치를 모든 "시점"에 쓴다. 그래서 길이가 달라도 가중치 수는 그대로다.

4RNN

RNN — 은닉 상태, BPTT, 그리고 기울기 소실

ht = tanh(wx·xt + wh·ht−1)Elman, 1990

고리 가중치 wh
입력

BPTT와 기울기 소실

펼친 그림 위에서 역전파를 하면 BPTT(시간을 거스르는 역전파)가 된다 [R8]. 마지막 출력의 오차가 첫 칸까지 가려면 한 칸 거슬러 갈 때마다 wh × tanh의 기울기(1 − h²)를 곱한다. 이 값이 1보다 작으면 칸 수만큼 거듭제곱되어 0에 가까워지고(기울기 소실), 1보다 크면 폭발할 수 있다. Bengio 등은 1994년에 이 때문에 경사하강으로 긴 시간 의존을 배우기가 근본적으로 어렵다는 것을 보였다 [R2].

wh를 크게 하면 기억은 오래 남지만(1.5), tanh가 ±1 근처에 붙어 기울기 1 − h²가 0에 가까워진다. 기억을 붙잡는 것과 그 기억을 학습으로 고치는 것이 서로 부딪친다. 3-2의 "시그모이드 기울기는 최대 0.25"와 같은 뿌리의 문제다.

5LSTM

LSTM — 셀 상태와 세 개의 문

ct = ft ⊙ ct−1 + it ⊙ gt · ht = ot ⊙ tanh(ct)Hochreiter & Schmidhuber, 1997 · 망각 게이트 Gers 외, 2000

망각 게이트 편향 bf
첫 신호
기호이름범위하는 일 (이 셀에서 정한 가중치)
ct셀 상태제한 없음긴 기억을 나르는 컨베이어 벨트. 곱셈 한 번(f)과 덧셈 한 번만 거쳐 다음 칸으로 간다
ft망각 게이트0~1 (σ)지난 기억을 얼마나 남길지. σ(bf)로 늘 같게 두었다
it입력 게이트0~1 (σ)새 값을 얼마나 적어 넣을지. σ(10 × 시작 표시 − 5): 첫 칸에서만 열린다
gt후보 값−1~1 (tanh)적어 넣을 내용. tanh(3 × xt)
ot출력 게이트0~1 (σ)기억 중 얼마를 내보낼지. σ(5) ≈ 0.993으로 늘 열어 두었다
ht은닉 상태(출력)−1~1ot ⊙ tanh(ct). 다음 층과 다음 칸의 게이트로 간다
⊙칸끼리 곱벡터의 같은 자리끼리 곱한다. 이 예처럼 숫자 하나면 그냥 곱셈이다

초보자를 위한 풀이

이 셀의 가중치는 설명을 위해 사람이 정했다. "첫 칸에서만 적고, 그 뒤로는 거의 지우지 않는다"는 규칙이다. 그래서 첫 신호를 뒤집으면 20칸 뒤의 기억도 정확히 뒤집힌다. 섹션 4의 RNN은 같은 입력에서 첫 신호를 뒤집어도 마지막 값이 소수점 넷째 자리까지 똑같았다. LSTM이 긴 기억을 담을 수 있는 구조라는 뜻이다. 셀 상태가 곱셈 한 번(f ≈ 1)과 덧셈으로만 이어져, 거꾸로 전해지는 기울기도 거의 줄지 않는다 [R3].

두 가지를 덧붙인다. 첫째, 1997년의 원래 LSTM에는 망각 게이트가 없었다. 망각 게이트는 Gers 등이 끝없이 이어지는 입력에서 셀 상태가 커지기만 하는 문제를 풀려고 덧붙였고 [R4], 오늘날 "LSTM"은 보통 이 판을 말한다. 둘째, 구조가 기억을 담을 수 있다고 해서 학습이 그 가중치를 찾아낸다는 보장은 없다. 코드 2의 실험이 그 차이를 보여 준다(섹션 6 아래).

6GRU

GRU — 문 두 개로 줄인 LSTM

ht = (1 − zt) ⊙ ht−1 + zt ⊙ h̃tCho 외, 2014

은닉 크기
입력 크기

GRU는 무엇을 합쳤나

GRU는 LSTM의 망각 게이트와 입력 게이트를 갱신 게이트 z 하나로 묶었다. 지난 기억을 (1 − z)만큼 남기고, 그 빈자리를 새 후보 h̃로 z만큼 채운다. 남길수록 덜 쓰고, 쓸수록 덜 남기는 저울이다. 여기에 지난 기억을 후보 계산에 얼마나 쓸지 정하는 리셋 게이트 r을 더했다. 셀 상태와 은닉 상태를 따로 두지 않아 출력 게이트도 없다 [R5].

가중치 묶음이 LSTM의 4개에서 3개로 줄어, 교과서 식으로는 파라미터가 정확히 3/4이다. Keras의 기본 GRU는 편향을 한 벌 더 두어 조금 더 많다(은닉 16, 입력 1일 때 912개 대 1,152개, 약 0.79배). 어느 쪽이 더 좋은지는 과제마다 다르다.

코드 2의 실험 — 구조가 기억을 담을 수 있다는 것과, 학습이 그것을 찾아낸다는 것은 다르다

모든 칸이 ±1이고 정답은 첫 칸인 수열(뒤의 칸은 모두 똑같이 생긴 방해꾼). 은닉 16, Adam 0.005, 30에폭, 학습 2,000개·시험 1,000개. 시드 2개의 결과를 따로 적었다. 50% 근처는 찍기 수준, 곧 학습 실패다.

7오토인코더

오토인코더 — 모래시계로 줄였다가 되살린다

입력을 좁은 가운데 층(병목)으로 줄였다가 다시 원래대로 되살리도록 학습한다. 정답이 필요 없다. 입력 자체가 정답이다. 초파리 버섯체는 정반대로 넓힌다.

병목 크기
보기

초보자를 위한 풀이

병목이 좁으면 가장 중요한 것만 남겨야 한다. 이 그림의 수열은 사인파 두 종류를 섞어 만든 16칸 조각이다. 활성함수가 없는(선형) 오토인코더가 학습으로 도달하는 가장 좋은 결과는 주성분 분석(PCA)과 같다는 것이 증명되어 있어서 [R6], 이 그림은 그 최적 결과를 직접 계산해 보여 준다. 층을 쌓은 비선형 오토인코더는 PCA보다 더 잘 줄일 수 있다 [R7].

순서 모델에서는 RNN 인코더가 문장 하나를 고정 길이 벡터로 줄이고, RNN 디코더가 그것을 다른 문장으로 펼치는 구조(인코더–디코더)로 쓰였다 [R5]. 긴 문장을 좁은 병목 하나에 다 담기 어렵다는 한계가 다음 편 3-8의 어텐션을 낳는다.

8문법·계보

다이어그램 문법과 계보 — 그림 읽는 법, 누가 언제

책과 논문마다 그림 기호가 조금씩 다르다. 이 시리즈의 약속을 정리하고, 순서 모델이 어떤 문제를 풀며 이어져 왔는지 연대순으로 본다.

기호뜻피드포워드RNNLSTMGRU오토인코더
상자층 하나 (가중치 곱 + 활성함수)✓✓✓✓✓
→값이 흐르는 방향앞으로만앞 + 다음 시점앞 + 다음 시점앞 + 다음 시점앞으로만
↺ 고리지난 시점의 값을 다시 받는다—hh와 ch— (순서형은 RNN을 씀)
σ0~1로 누르는 문(게이트)——3개 (f, i, o)2개 (z, r)—
tanh−1~1로 누르는 활성함수선택✓후보 g와 출력후보 h̃선택
⊙ · ⊕칸끼리 곱 · 더하기——✓✓—
모래시계좁아졌다 넓어지는 층 크기————✓
9선택 도우미

선택 도우미 — 내 데이터에는 무엇부터 써 볼까

질문 세 개에 답하면 출발점이 될 모델을 고른다. 정답이 아니라 첫 후보다. 마지막 결정은 언제나 검증 데이터로 비교해서 한다(3-2 섹션 9).

① 데이터
② 순서 길이
③ 처리 방식

Colab 코드 — 이 페이지를 직접 실행해 보기

두 코드 모두 Colab에 기본으로 설치된 라이브러리만 쓴다. "노트북(.ipynb) 내려받기" 후 Colab에서 파일 → 노트북 업로드로 열거나, 복사해서 새 노트북 칸에 붙여 넣는다.

코드 1 · RNN과 LSTM을 넘파이로 한 칸씩 계산하기섹션 4·5와 연결 · numpy, matplotlib · CPU 1초 미만

섹션 4의 숫자 하나짜리 RNN과 섹션 5의 손으로 정한 LSTM을 같은 수열로 계산한다. 은닉 상태, 거꾸로 전해지는 기울기, 첫 신호를 뒤집었을 때의 변화가 페이지와 같은 숫자로 나온다. 내 데이터로 바꾸려면 SEQ만 바꾼다.

실행 결과 (2026-10-03 실행, numpy 2.4 · matplotlib 3.10 · CPU). 계산에 난수가 없어 언제 실행해도 같다.
코드 2 · Keras로 SimpleRNN · LSTM · GRU 비교 — "첫 신호 기억하기"섹션 6과 연결 · tensorflow(Keras), numpy, matplotlib · CPU 약 5분

모든 칸이 ±1이고 정답은 첫 칸인 수열을 세 모델로 학습한다. 길이 10 · 50 · 100, 시드 2개. 섹션 6 아래의 표가 이 출력에서 바로 만들어진다.

실행 결과 (2026-10-03 실행, TensorFlow 2.21 · Keras 3.15 · CPU). 시드·버전·하드웨어에 따라 성공과 실패가 바뀔 수 있다. 이 변동 자체가 이 실험이 보여 주는 것 중 하나다.

AI 응용 프롬프트 — 이 코드를 출발점으로 삼기

ChatGPT, Qwen, Claude 같은 AI 도우미에 붙여 넣는 프롬프트다. "복사"를 누르면 프롬프트 뒤에 고른 코드가 함께 붙는다. 〔 〕 안을 내 상황으로 바꿔 쓰면 된다.

함께 붙일 코드

AI의 답은 출발점일 뿐이다. 제안된 논문·수치·라이브러리 함수는 반드시 원문과 공식 문서로 확인한다. 공모전·논문에 AI 도움을 받았다면 주최 측과 학술지의 규정에 따라 사용 사실과 범위를 밝힌다.

용어 정리

본문의 노란 점선 밑줄과 같은 사전이다. 시리즈 전체에서 같은 표기를 쓴다. 섹션 이름을 누르면 처음 나온 곳으로 간다.

비유 모음 — 그리고 비유가 틀리는 지점

비유는 이해의 첫걸음이지만 오해의 씨앗도 된다. 초파리·뇌 비유에는 강도를 표시했다. 직접 실제로 같은 일을 한다는 근거가 있음 · 부분 일부 성질만 닮음 · 없음 대응하는 것이 알려지지 않음

개념일상 비유초파리·뇌 비유비유가 틀리는 지점
은닉 상태책을 읽으며 머릿속에 쌓는 줄거리 요약부분 뉴런 무리의 지속되는 활동뇌의 단기 기억이 어떤 회로로 유지되는지는 영역마다 다르고 연구 중이다
펼치기·가중치 공유같은 직원이 매일 같은 업무 수칙으로 일하기없음뇌는 시간마다 같은 "사본"을 만들지 않는다. 펼치기는 계산을 위한 그림이다
기울기 소실귓속말 전달 놀이에서 처음 말이 흐려지기없음 역전파 자체가 뇌에서 확인되지 않았다귓속말은 앞으로 가는 신호가 흐려지는 것이지만, 기울기 소실은 거꾸로 가는 학습 신호가 줄어드는 것이다
셀 상태공장의 컨베이어 벨트없음벨트 위 물건은 그대로 가지만, 셀 상태는 망각 게이트만큼 매 칸 조금씩 줄어든다
게이트수도꼭지 (얼마나 열지 0~1)부분 시냅스 전달을 조절하는 신경조절 물질 (예: 초파리 버섯체의 도파민)도파민은 학습(연결 세기 변화)에 관여한다. LSTM의 게이트는 매 칸의 흐름을 정하는 계산이고, 그 자체가 학습은 아니다
GRU의 갱신 게이트저울: 옛 기억을 덜수록 새 내용을 더 담는다없음실제 저울과 달리 칸마다, 숫자마다 다른 비율을 쓴다
오토인코더 병목긴 회의를 세 줄로 요약했다가 다시 풀어 쓰기부분 반대 사례: 버섯체는 좁히지 않고 넓힌다요약과 달리 오토인코더는 "무엇이 중요한가"를 사람이 정하지 않고 되살리기 오차만으로 정한다

저자 소개와 레퍼런스

E-1 저자 소개 · E-2 학술 레퍼런스 · E-3 그림 참고 자료

E-1 저자 소개

안상선 ((주)M-Robo 대표)

한국전기안전공사, 매일경제신문을 거쳐 현재 매일경제 사외벤처 (주)M-Robo를 창업해 대표로 재직하고 있다. (주)M-Robo는 언론사 사내 벤처로 시작한 미디어 벤처로, 국민일보에 로봇기자(스톡봇)을 서비스 했으며, 한국인터넷진흥원, 한국언론진흥재단, 한국방송통신전파진흥원 등에서 다수의 프로젝트를 진행했다. 이후 자체 A.I 뉴스 신문인 Money-Robo를 서비스 중이다. 대표 재직 중 아시아오픈 데이터 해커톤 우승, 데이터창업 분야 공로로 행정안전부 장관상을 2회 수상했으며, 인공지능 및 블록체인 분야에 대한 5개 특허 발명 및 등록자이다. 저서로는 “AI범죄와 자기방어”가 있으며, 핀테크분야, 통계학, 인공지능 분야에 대해서 한국기술교육대학교 온라인평생교육원 이러닝 콘텐츠 개발을 진행했다. 최종학위는 경제학 박사(동국대, 미시수리경제학)이다. 국민대학교, 호서대학교 등 여러 대학교에서 데이터 및 인공지능과 관련한 과목을 강의하고 있다. 자세한 프로필

강의

  • 안상선 (2025). 「비즈니스를 위한 데이터 과학」 강의안. 한국열린사이버대학교 인공지능융합학과.
  • 안상선 (2025). [K-디지털] 인공지능 자연어 처리. STEP(스마트직업훈련플랫폼), 한국기술교육대학교 온라인평생교육원.
  • 안상선 (2024). [K-디지털] 핀테크 데이터 분석 기초. STEP(스마트직업훈련플랫폼), 한국기술교육대학교 온라인평생교육원.

STEP 강의 바로가기: link.step.or.kr/1qyVoJ · link.step.or.kr/M9na9N · link.step.or.kr/brqEyc
사이트 개편으로 접속이 원활하지 않을 경우에는 www.step.or.kr로 접속 바랍니다.

논문과 발표

  • 안상선 (2025). 국민노후보장패널데이터를 활용한 가구지출 예측 모델 연구: 인공지능 모델 기반 접근. 「미래사회」, 16(2). 원문
  • 안상선 (2025). 국민노후보장패널데이터를 활용한 가구지출 예측 모델 연구: 인공지능 접근. 국민노후보장패널 학술대회 발표자료(2025.05.13), 국민연금공단 국민연금연구원. 발표자료
  • 안상선 (2025). SNS 텍스트 기반 마약 의심 거래 탐지 알고리즘에 대한 연구: 패턴 및 맥락 분석을 중심으로. 「미래사회」, 16(1). 원문
  • 안상선 (2024). 금융분야의 이상탐지 모델 보안을 위한 통계 기반의 적대적 데이터 대응 방안: 실증적 분석과 시뮬레이션 결과. 「미래사회」, 15(3). 원문
  • 안상선 (2024). 인공지능을 활용한 가상 캐릭터 특성 기반 SNS 포스팅 탐지 솔루션. 2024 Summer Newmedia Party 포스터 발표(2024.06.19), 서울미디어대학원대학교.
  • 안상선 (2024). 산업재해 패널 데이터를 활용한 머신러닝 모델. 제10회 산재보험패널 학술대회 포스터 발표(2024.05.17), 근로복지공단 근로복지연구원.
  • 안상선 (2024). 가상 자산 시계열 데이터의 분석과 예측: 시계열 모델 및 인공지능 모델의 비교, 개선점 제시. 「미래사회」, 15(1). 원문

E-2 학술 레퍼런스

  1. [R1] Elman, J. L. (1990). Finding structure in time. Cognitive Science, 14(2), 179–211. — 히어로, 섹션 4·8
  2. [R2] Bengio, Y., Simard, P., & Frasconi, P. (1994). Learning long-term dependencies with gradient descent is difficult. IEEE Transactions on Neural Networks, 5(2), 157–166. doi:10.1109/72.279181 — 섹션 4·8
  3. [R3] Hochreiter, S., & Schmidhuber, J. (1997). Long short-term memory. Neural Computation, 9(8), 1735–1780. doi:10.1162/neco.1997.9.8.1735 — 히어로, 섹션 5·8
  4. [R4] Gers, F. A., Schmidhuber, J., & Cummins, F. (2000). Learning to forget: Continual prediction with LSTM. Neural Computation, 12(10), 2451–2471. doi:10.1162/089976600300015015 — 섹션 5·8 (망각 게이트)
  5. [R5] Cho, K., van Merriënboer, B., Gulcehre, C., Bahdanau, D., Bougares, F., Schwenk, H., & Bengio, Y. (2014). Learning phrase representations using RNN encoder–decoder for statistical machine translation. EMNLP 2014, 1724–1734. doi:10.3115/v1/D14-1179 — 섹션 6·7·8 (GRU, 인코더–디코더)
  6. [R6] Baldi, P., & Hornik, K. (1989). Neural networks and principal component analysis: Learning from examples without local minima. Neural Networks, 2(1), 53–58. 저자 공개본 — 섹션 7·8
  7. [R7] Hinton, G. E., & Salakhutdinov, R. R. (2006). Reducing the dimensionality of data with neural networks. Science, 313(5786), 504–507. doi:10.1126/science.1127647 — 섹션 7·8
  8. [R8] Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. deeplearningbook.org — 섹션 3·4 (10장 순환 신경망, BPTT)
  9. [R9] Caron, S. J. C., Ruta, V., Abbott, L. F., & Axel, R. (2013). Random convergence of olfactory inputs in the Drosophila mushroom body. Nature, 497(7447), 113–117. doi:10.1038/nature12063 — 섹션 7
  10. [R10] Dasgupta, S., Stevens, C. F., & Navlakha, S. (2017). A neural algorithm for a fundamental computing problem. Science, 358(6364), 793–796. bioRxiv 사전 공개본 — 섹션 7

E-3 그림 참고 자료

  • 섹션 1의 다가옴·멀어짐 장면 — 3-1 「AI는 어떻게 작동하나」 섹션 3·4의 장면과 같은 설정
  • 섹션 7의 버섯체 그림 — 3-1 섹션 5와 같은 개략 수치(사구체 약 50종, 케니언 세포 약 2,000개)

교육자를 위한 TIP

강사, 실무 OJT 담당자, 튜터를 위한 운영 안내다. 시간은 예상치이므로 실제 수업에 맞춰 조정한다.

대상3-2를 마친 대학생·직장인. 센서·로그·문장·시계열 데이터를 다루는 실무자
선수 지식3-2의 역전파와 기울기 소실, 시그모이드·tanh. 3-3의 가중치 공유를 알면 섹션 3이 쉽다
학습 목표① 피드포워드가 순서를 다루기 어려운 이유를 두 가지 방법(평균, 이어 붙이기)으로 설명한다 ② RNN의 은닉 상태와 기울기 소실을 숫자로 보여 준다 ③ LSTM·GRU의 게이트가 무엇을 하는지 설명하고, "구조가 기억을 담을 수 있다"와 "학습이 그것을 찾는다"를 구별한다
예상 시간읽기 45~55분 · 애니메이션 시연 25분 · Colab 실습 30분 (코드 1 10분, 코드 2 실행 5분 + 해석 15분)

운영안 세 가지

강의형 50분

개념 중심

도입 5분(섹션 1의 같은 장면) → 섹션 2·3 10분 → 섹션 4 기울기 소실 10분 → 섹션 5 첫 신호 뒤집기 15분 → 섹션 6 아래 실험표 토론 5분 → 확인 문제 5분.

실무 OJT 90분

업무 적용 중심

섹션 9 선택 도우미로 팀 데이터 분류 15분 → 섹션 4·5 20분 → 코드 2 실행·해석 30분("시드에 따라 갈린다"를 어떻게 보고할까) → 섹션 7 이상 탐지 아이디어 15분 → 프롬프트 카드 10분.

1:1 튜터링

수준별 진도

입문자는 섹션 1·3·5·9만. 중급자는 섹션 5의 c 계산을 손으로 세 칸 따라가게 한 뒤 코드 1의 lstm 함수와 대조하고, 섹션 6의 파라미터 식을 직접 유도하게 한다.

섹션별 운영 포인트

섹션멈춰서 물어볼 질문조작 팁
1 한 장씩"세 번째 장면만 보고 다가옴인지 알 수 있을까?""지금 장면 한 장"에서 멈춘 뒤 "순서"로 바꾼다
2 피드포워드"문장 길이가 매번 다르면 이어 붙이기는 어떻게 될까?"길이 3과 5를 번갈아 눌러 입력 칸 수가 바뀌는 것을 본다
3 고리와 펼치기"펼친 상자 다섯 개의 가중치는 몇 벌일까?"접은 그림 ↔ 펼친 그림을 번갈아 누른다
4 RNN"w_h를 키우면 기억이 오래 남는데, 왜 학습은 더 어려워질까?"0.9 → 1.5로 바꿔 h12와 기울기 숫자를 비교한다
5 LSTM"첫 신호를 뒤집으면 20칸 뒤 기억은 어떻게 될까?"b_f = 5에서 +1/−1을 바꾼 뒤 b_f = 1로 바꿔 차이를 본다
6 GRU"게이트가 있는 LSTM·GRU가 왜 T = 100에서 실패했을까?"실험표의 시드 0과 1을 나란히 읽는다
7 오토인코더"병목이 4일 때 오차가 갑자기 줄어드는 이유는?"병목 1 → 4로 늘리며 초록 곡선을 본 뒤 버섯체 보기로 바꾼다
8 문법·계보"1997년 LSTM과 오늘날 LSTM은 무엇이 다를까?"연대표를 눌러 2000년 망각 게이트로 넘긴다
9 선택 도우미"우리 팀 데이터는 어디에 해당할까?"참가자마다 답을 고르게 한 뒤 추천이 갈리는 지점을 토론한다

흔한 오해 Top 5

오해바른 설명보여 줄 장면
LSTM을 쓰면 긴 기억 문제가 해결된다LSTM은 긴 기억을 담을 수 있는 구조다. 학습이 그 가중치를 찾는지는 과제·학습 시간·초기화에 달려 있다섹션 6 아래 실험표 (T = 100)
SimpleRNN은 몇 칸만 지나면 반드시 잊는다초기화와 과제에 따라 꽤 오래 기억하기도 한다. 이 실험에서는 T = 50까지 두 시드 모두 성공했다섹션 6 아래 실험표 (T = 50)
LSTM은 처음부터 망각 게이트가 있었다1997년 원 논문에는 없었고 2000년 Gers 등이 더했다섹션 8 연대표
GRU가 LSTM보다 항상 빠르고 좋다파라미터가 약 3/4로 적을 뿐, 성능은 과제마다 다르다. 이 실험의 T = 50에서는 GRU만 실패했다섹션 6
오토인코더는 뇌의 기억 방식을 본떴다좁혀서 요약하는 계산 기법이다. 초파리 버섯체는 오히려 넓힌다섹션 7 버섯체 보기

확인 문제 (해설은 눌러서 펼치기)

Q1. 수열을 평균 내어 피드포워드 신경망에 넣으면 어떤 정보가 사라지나? 예를 들어 설명하라.

순서가 사라진다. 100 → 110 → 120(오름세)과 120 → 110 → 100(내림세)은 평균이 모두 110이라 신경망이 구별할 수 없다.

Q2. 숫자 하나짜리 RNN h_t = tanh(x_t + 0.9·h_(t−1))에 1, 0, 0을 넣으면 h_1, h_2는?

h_1 = tanh(1) ≈ 0.762, h_2 = tanh(0.9 × 0.762) = tanh(0.686) ≈ 0.595.

Q3. 망각 게이트가 f = σ(5) ≈ 0.9933으로 일정하고 입력 게이트가 완전히 닫혀 있다면, 첫 칸에서 적은 셀 상태는 20번째 칸에서 처음 값의 몇 배가 되나?

19칸 동안 곱해지므로 0.9933의 19제곱 ≈ 0.880배다. 섹션 5의 실제 값(0.988 → 0.864, 약 0.875배)이 조금 더 작은 것은 입력 게이트가 완전히 닫히지 않아(0.007) 방해 신호가 조금씩 새어 들었기 때문이다. 이 수열의 방해 신호는 −1이 10개, +1이 9개다.

Q4. 은닉 16, 입력 1일 때 SimpleRNN, LSTM, GRU(교과서 식)의 순환층 파라미터 수는?

한 벌 = 16 × (16 + 1) + 16 = 288. SimpleRNN 288, LSTM 4 × 288 = 1,152, GRU 3 × 288 = 864. Keras 기본 GRU는 편향 48개를 더해 912다.

Q5. 코드 2에서 LSTM이 T = 100에서 두 시드 모두 실패했다. "LSTM은 긴 기억을 못 한다"고 결론 내려도 되나?

안 된다. 섹션 5처럼 가중치를 알맞게 정하면 LSTM은 긴 기억을 담을 수 있다. 실패는 30에폭 안에 경사하강이 그 가중치를 찾지 못했다는 뜻이다. 학습 시간, 학습률, 데이터 양을 바꿔 다시 실험하고, 여러 시드로 반복해야 결론을 낼 수 있다.

Colab 과제

기본

코드 1의 lstm 함수에서 입력 게이트를 늘 열어 두도록(i = σ(5)) 바꾼다. 첫 신호를 뒤집었을 때 20칸 뒤 셀 상태가 어떻게 되는지 계산하고, 입력 게이트의 역할을 두 문장으로 쓴다.

도전

코드 2에서 T = 100의 실패를 성공으로 바꿀 방법을 하나 이상 시험한다(에폭 늘리기, 학습률 바꾸기, 데이터 늘리기 등). 시드 3개 이상으로 결과를 표로 보고하고, 무엇이 효과가 있었는지 근거를 들어 쓴다.

난이도 조절과 더 배우기

입문자섹션 4의 기울기 그래프와 섹션 7·8은 건너뛰어도 흐름이 끊기지 않는다. 섹션 5의 "첫 신호 뒤집기" 하나만 확실히 보여 준다
심화섹션 4의 기울기 곱 식을 은닉 크기가 여럿일 때(행렬)로 일반화하고, 고윳값과 기울기 소실·폭발의 관계를 토론한다 [R2]
더 배우기안상선, 「비즈니스를 위한 데이터 과학」 강의안 (데이터 과학 전반) · STEP [K-디지털] 인공지능 자연어 처리 (3-5·3-8과 연결) · STEP [K-디지털] 핀테크 데이터 분석 기초 (3-6과 연결)
강사용 자료확인 문제의 채점 기준과 과제 예시 답안은 교육자용 정답 페이지 (3-7)에서 볼 수 있다

수고하셨습니다!

「3-7 순서 모델」 편을 끝까지 읽었어요. 연구실 식구들이 한마디씩 정리해 드립니다.

박사
박사기억을 들고 한 칸씩 걷는 모델들을 만나 봤어요.
  • RNN은 은닉 상태에 기억을 담아 다음 칸으로 넘긴다
  • LSTM의 문(게이트)은 긴 기억을 담을 수 있다
  • 담을 수 있다는 것과 학습이 그것을 찾아낸다는 것은 다르다
조수
조수T = 100에서 또 50%라니!
초파리 연구원
초파리 연구원첫 신호… 뭐였더라…