Learning to Forget: LSTM에 “잊는 법”을 가르친 forget gate
개요
읽은 판본에 대한 주의. 학술지판(Neural Computation 12(10):2451–2471, 2000)은 유료라 읽지 못했다. 이 노트는 같은 저자들의 기술 보고서판 IDSIA-01-99 (1999년 1월, 19쪽) 전문을 끝까지 읽고 쓴 것이다. 그래서 쪽수·절 번호·도표 번호·일부 수치가 학술지판과 다를 수 있다. 아래의 모든 위치(p., Section, Figure, Table)는 기술 보고서판 기준이다. 이 때문에
quality-status를review로 두었다.
RNN(recurrent neural network, 이전 시점의 내부 상태를 다음 시점에 다시 넣어 순서 있는 데이터를 처리하는 신경망)은 오래전 입력을 기억해야 하는 과제에서 약하다. 오차 신호가 시간을 거슬러 가며 사라지거나 폭발하기 때문이다. 1997년의 원조 LSTM은 cell 안에 자기연결 가중치가 정확히 1.0인 선형 유닛, 즉 **CEC(Constant Error Carousel, 오차가 줄지도 늘지도 않고 계속 도는 회전목마)**를 넣어 이 문제를 풀었다. 이 논문의 통찰은 그 강점이 곧 약점이라는 것이다. 값을 영원히 보존하는 CEC는 값을 버리지도 못한다. 문장 끝이나 시퀀스 경계가 표시되지 않은 채 입력이 끝없이 이어지면 cell state가 계속 쌓여 출력 함수 h를 포화시킨다. 그러면 기울기가 막히고 cell은 기억 장치 역할을 잃는다. 원조 논문의 실험에서는 시퀀스마다 사람이 state를 0으로 리셋해 줬기 때문에 이 문제가 드러나지 않았다. 해법은 이 진단에서 바로 나온다. 고정된 1.0을 입력에 따라 0과 1 사이에서 움직이는 학습되는 곱셈 게이트, 즉 forget gate로 바꾸면 된다. 그러면 cell이 “이제 이 기억은 필요 없다”는 시점을 스스로 배워 자기 state를 0 쪽으로 리셋한다. forget gate의 bias를 양수로 초기화하므로 학습 초반에는 원조 LSTM과 똑같이 동작하다가 잊는 법을 배운 뒤에만 잊는다. 효과는 경계 표시 없이 Reber 문법 문자열을 이어 붙인 **CERG(Continual Embedded Reber Grammar)**에서 갈렸다. 원조 LSTM은 100번 학습 중 완벽해가 0%였다. 자기연결 가중치를 0.9로 줄인 단순 감쇠(state decay)도 0%였다. forget gate LSTM은 18%, 학습률 감쇠를 더하면 62%였다. 학습된 망은 실제로 Reber 문자열이 바뀌는 순간마다 forget gate를 0 근처로 떨어뜨려 cell을 비웠다.
Implication: 장기 기억을 잘하는 모델일수록 “언제 잊을지”를 따로 배워야 한다. 감쇠율을 사람이 고정하는 대신 데이터에 따라 열고 닫는 곱셈 게이트로 두는 것이 이 논문이 남긴 설계 원리다.
📎 arXiv 주소 없음 (DOI: 10.1162/089976600300015015)
배경과 문제
왜 어려운가. BPTT(Back-Propagation Through Time, 시간 축으로 펼친 망에서 오차를 거꾸로 전파하는 학습법)와 RTRL(Real-Time Recurrent Learning, 매 시점 기울기를 앞으로 누적하는 학습법)은 공통 한계를 가진다. 시간을 거슬러 흐르는 오차의 크기가 가중치 크기에 지수적으로 의존해 금방 사라지거나 폭발한다. 그 결과 관련 입력과 목표 사이 간격이 5–10 시점을 넘으면 표준 RNN은 학습에 실패한다 (Section 1, p.1, author-stated, Hochreiter 1991; Bengio et al. 1994 인용).
계보. 원조 LSTM(Hochreiter & Schmidhuber 1997)은 cell 안의 CEC로 오차를 일정하게 흐르게 해 1000 시점이 넘는 최소 시간 간격을 이어 붙였다. 곱셈 게이트(input gate, output gate)가 cell에 쓰고 읽는 접근을 연다. 학습 알고리즘은 공간과 시간 모두에서 국소적이고, 시점·가중치당 계산 복잡도는 O(1)이다 (Section 1, p.1, author-stated). 이 논문은 그 LSTM의 확장이다.
기존 LSTM의 약점 (Section 2.1, p.4, author-stated)
- 시계열을 넣는 동안 cell state s_c는 대체로 선형적으로 커진다. 비선형 처리는 squashing 함수와 게이트가 맡기 때문이다.
- 입력이 끊김 없이 이어지면 s_c가 끝없이 커져 출력 squashing 함수 h가 포화한다. 그러면 (a) h의 미분이 0이 되어 들어오는 오차가 막히고, (b) cell 출력이 output gate 활성값과 같아져 cell이 평범한 BPTT 유닛으로 퇴화한다. 기억 장치 기능이 사라진다.
- 원조 논문 실험에서 이 문제가 없었던 이유는 새 시퀀스마다 cell state를 명시적으로 0으로 리셋했기 때문이다.
저자가 기각한 대안 (Section 2.1, p.4, author-stated)
- 다른 cell이 반대 부호 입력으로 리셋: 필요한 정확한 값을 배우기 어렵다. h의 역함수를 계산해야 하는 셈이다.
- TDNN·NARX: 전형적인 시간 간격 크기를 미리 알아야 한다. 저자는 이 장점을 잃지 않는 해법을 원한다.
- weight decay: 망 전체 활동을 줄여 간접적으로만 state 성장을 늦춘다. 여러 알고리즘(Hinton 1986; Weigend et al. 1991)을 시험했지만 고무적인 결과가 없었다.
- focused backpropagation 계열(자기연결 가중치 < 1인 state decay): 감쇠 상수를 정할 원리가 없다. 어떤 과제에서 얻는 이득은 임의의 미지 지연을 다루는 능력의 손실로 상쇄된다. 실험에서도 성능이 크게 나아지지 않았다 (Table 2 “State Decay”).
- teacher forcing으로 리셋: 입력 흐름을 학습 단위로 자를 줄 아는 외부 교사가 필요하다. 저자가 관심 두는 상황은 바로 그런 사전 지식이 없는 경우다.
저자의 일반 주장. 긴 시간 간격을 이을 만큼 강력한 RNN 학습법이라면 어떤 것이든 단기 기억(unit 활성값)을 잊는 문제를 다뤄야 한다. 저자는 이 문제를 겪을 만큼 강력한 다른 RNN 학습법을 알지 못한다고 쓴다 (p.2, author-stated).
지표
| 지표 | 무엇을 세는가 | 단위·범위 | 방향 | 분모·정규화 | 측정 조건 | 위치 |
|---|---|---|---|---|---|---|
| 예측 정답 판정 | 한 시점의 예측이 맞았는가 | 이진 | — | 7개 출력 유닛 각각의 평균제곱오차가 0.49 미만이면 정답 | ERG/CERG, 매 시점 오차 신호 | Section 4.1, p.9 |
| % of success (ERG) | 학습 시행 중 과제를 푼 비율 | % | 높을수록 좋음 | 시행 수 | 표준 ERG, 테스트 집합 256개 문자열. RTRL·ELM·RCC 수치는 다른 논문에서 가져옴 | Table 1, p.10 |
| success after (ERG) | 성공까지 제시한 시퀀스 수 | 개 | 낮을수록 좋음 | — | 성공한 시행 기준 | Table 1 |
| 평균 테스트 스트림 길이 (CERG) | 첫 예측 오류 전까지 맞힌 연속 기호 수 | 기호 수, 최대 100,000 | 높을수록 좋음 | 테스트 스트림 10개 평균 | 학습 스트림 하나가 끝날 때마다 가중치를 고정하고 측정 | Section 4.1, p.10–11 |
| %Solutions (CERG) | “완벽해” 비율 | % | 높을수록 좋음 | 독립 학습망 100개 | 완벽해 = 100,000 기호짜리 스트림 10개 모두 정답(10⁶ 연속 정답). 괄호 안은 해에 도달할 때까지 제시한 학습 스트림 수 | Table 2 캡션, p.12 |
| %Good Results (CERG) | 완벽해는 아니지만 평균 스트림 길이 > 1000인 비율 | %, ⟨⟩ 안은 평균 무오류 예측 길이 | 높을수록 좋음 | 100개 망 | 위와 같음 | Table 2 캡션 |
| %Rest (CERG) | 평균 스트림 길이 ≤ 1000인 “나쁜” 해의 비율 | %, ⟨⟩ 안은 평균 무오류 예측 길이 | 낮을수록 좋음 | 100개 망 | 위와 같음 | Table 2 캡션 |
| %Perfect Solutions (CNTO) | 완벽해 비율 | % | 높을수록 좋음 | 100개 망 | 완벽해 = 테스트 스트림 10개에서 NTO 시퀀스 1000개 연속 정분류. 괄호 안은 학습 스트림 수 | Table 3 캡션, p.15 |
| %Partial Solutions (CNTO) | 평균 스트림 크기 ≤ 100인 해의 비율 | %, ⟨⟩ 안은 평균 스트림 크기(NTO 시퀀스 수) | 낮을수록 좋음 | 100개 망 | 위와 같음 | Table 3 캡션 |
방법과 벤치마크 구성
원조 LSTM의 순방향 계산 (Section 2, p.2–3)
- memory block: hidden layer의 기본 단위. memory cell 하나 이상과, block 안 모든 cell의 입력과 출력을 함께 조절하는 곱셈 게이트 한 쌍(input gate, output gate)으로 이뤄진다.
- CEC: 각 cell의 중심에 있는, 자기연결 가중치 1.0의 선형 유닛. 그 활성값이 cell state s_c다. 새 입력이나 오차가 없으면 CEC 안의 국소 오차 역류는 줄지도 늘지도 않는다.
- 게이트 활성값: 식 (1)(output gate)·(2)(input gate). f는 범위 [0, 1]인 logistic sigmoid(식 3).
- cell 입력 g: 범위 [−2, 2]인 중심화 sigmoid(식 5). cell 출력 h: 범위 [−1, 1]인 중심화 sigmoid(식 8).
- state 갱신(식 6): s_c(t) = s_c(t−1) + y_in(t)·g(net_c(t)). 이전 값에 그대로 더하기만 한다.
- cell 출력(식 7): y_c(t) = y_out(t)·h(s_c(t)).
바꾼 것은 식 하나다: forget gate (Section 3.1, p.4–5)
- forget gate 활성값 y_φ는 다른 게이트와 같은 방식으로 계산한다(식 10, logistic sigmoid, 범위 0–1).
- 이 값이 state의 자기연결 가중치가 된다(식 11): s_c(t) = y_φ(t)·s_c(t−1) + y_in(t)·g(net_c(t)). y_φ가 1이면 원조 LSTM과 같고, 0이면 이전 state를 지운다. 0과 1 사이 값이면 서서히 흐려지는 부분 리셋이다 (Section 3, p.4,
author-stated). - 나머지 식은 모두 그대로 쓴다. 식 (10)을 더하고 식 (6)을 (11)로 바꾸면 확장 LSTM의 순방향 계산 전부다 (p.5).
- 초기화: input·output gate의 bias는 음수, forget gate의 bias는 양수로 둔다. 그래서 학습 초반 forget gate 활성값이 거의 1.0이고 cell은 원조 LSTM처럼 동작한다. 잊는 법을 배우기 전에는 아무것도 명시적으로 잊지 않는다 (p.5,
author-stated).
역방향 계산 (Section 3.2, p.5–8)
- 원조 LSTM처럼 truncated BPTT와 맞춤형 RTRL을 섞는다. 출력 유닛은 BPTT, output gate는 조금 바꾼 truncated BPTT를 쓴다. cell·input gate·forget gate로 들어가는 가중치는 truncated RTRL을 쓴다.
- truncation(잘라내기): 오차가 cell이나 게이트 밖으로 새어 나가면 그 자리에서 끊는다. 다만 들어오는 가중치는 그 오차로 갱신한다. 그래서 오차가 끝없이 거슬러 흐를 수 있는 곳은 CEC뿐이다. 저자는 cell 밖 오차 흐름이 어차피 지수적으로 감쇠하므로 학습 능력에 큰 손실이 없다고 주장한다 (
author-stated). - 핵심 관찰: 편미분 재귀식 (19)–(21)이 모두 forget gate 활성값에 곱해진다. forget gate가 0으로 가면 state뿐 아니라 누적된 편미분도 리셋된다. 저자 표현으로 “잊는 것에는 이전 실수를 용서하는 것도 포함된다” (p.8,
author-stated). - 역방향 구현에 필요한 식: (13), (14), (15), (17), (19)–(24) (p.8). 전체 의사코드는 Section 6 (p.17)에 있다.
복잡도 (Section 3.3, p.8)
- 시점·가중치당 갱신 복잡도는 O(1)이다. 완전 연결 BPTT 순환망과 사실상 같다. 식 (25)가 block 수 B, block당 cell 수 S, 입력 수 I, 출력 수 K로 시점당 갱신량을 준다.
- 가중치당 저장 복잡도도 O(1)이다. 직전 시점의 편미분만 저장하면 되므로 입력 시퀀스 길이와 무관하다. 확장 LSTM도 원조처럼 공간·시간 국소적이다 (
author-stated).
과제 1: ERG와 CERG (Section 4.1, p.8–11)
- ERG(embedded Reber grammar): 그래프를 따라 기호를 하나씩 이어 붙여 문자열을 만든다. 갈림길에서는 확률 0.5로 고른다. 기호는 7종이므로 입력 7개, 출력 7개 유닛을 쓰고, 다음에 올 수 있는 기호(들)를 매 시점 예측한다.
- 어려운 지점: 끝에서 두 번째 기호(T 또는 P)를 맞히려면 두 번째 기호(역시 T 또는 P)를 기억해야 하고, 그 사이에 나오는 같은 기호와 헷갈리면 안 된다. 최소 시간 간격은 9이고 상한은 없다.
- 문자열 길이 분포: p(l) ≈ b·e^(−a(l−o)), a = b = 3/11, o = 9 (p.9). 기대 문자열 길이 l̄ ≈ 11.54 (식 26, p.10).
- CERG: 문자열의 시작과 끝을 알려 주지 않고 ERG 문자열을 계속 이어 붙인다. 중간 리셋 없이 온라인으로 배운다. 학습 스트림은 첫 예측 오류나 10⁵번째 기호에서 멈춘다. 학습 스트림 하나가 끝날 때마다 가중치를 고정하고 테스트 스트림 10개를 넣는다 (p.10–11).
- 완벽해 기준 테스트(10 × 10⁵ 기호)는 80,000개가 넘는 문자열을 포함한다. 그 안에서 마주치는 최대 문자열 길이의 기댓값은 50을 넘는다 (p.11).
망 구조와 하이퍼파라미터 (Section 4.2, p.11)
- 입력 7개 → memory block 4개(block당 cell 2개, 합계 cell 8개·게이트 12개) → 출력 7개. cell 출력은 cell 입력, 모든 게이트, 출력 유닛 7개에 완전 연결된다. 출력 유닛은 입력 유닛과 “shortcut” 연결을 추가로 갖는다 (Figure 6).
- bias 초기화: input·output gate는 block 순서대로 −0.5, −1.0, −1.5, …. forget gate는 +0.5, +1, …. 저자는 정확한 bias 값이 결정적이지 않고 다른 값도 잘 됐다고 쓴다. 나머지 가중치는 [−0.2, 0.2] 균등 난수.
- 조정 가능한 가중치 375개. 표준 ERG를 푼 원조 LSTM(276개, Table 1)과 비슷한 규모다.
- 기호 하나를 넣을 때마다 가중치를 갱신한다. 학습률 α 초기값 0.5. 고정하거나 천천히 감쇠한다(Section 4.5).
- 학습 스트림 최대 30,000개 (Section 4.3).
비교 대상 (Table 2)
- 외부 리셋을 받는 원조 LSTM(비연속 조건, 기준선 성격)
- 원조 LSTM(연속 조건)
- state decay 0.9 LSTM(자기연결 가중치 < 1). 저자는 여러 값을 시도해 가장 좋은 결과만 보고했다고 쓴다 (p.12).
- forget gate LSTM
- forget gate LSTM + α decay
BPTT 같은 다른 알고리즘은 더 쉬운 비연속 ERG에서도 실패하는 경향이 있어 비교에서 뺐다 (Table 2 캡션).
과제 2: NTO와 CNTO (Section 4.6, p.15)
- NTO(Noisy Temporal Order): 원조 LSTM 논문의 task 6b. 시퀀스는 E로 시작해 B로 끝난다. 나머지는 {a, b, c, d}의 무작위 기호인데, 위치 t1, t2, t3의 세 기호만 X 또는 Y다. 길이는 100–110, t1은 10–20, t2는 33–43, t3는 66–76 사이 무작위. X·Y의 순서에 따라 8개 클래스로 분류한다. 목표 신호는 시퀀스 끝에만 있고, 최소 시간 간격은 80이다.
- NTO에서는 잊는 것이 해롭기만 하다. 저자는 확장 LSTM이 잊지 않아야 하는 과제도 푸는지 먼저 확인했다. 입력·출력 각 8개 유닛, 망 구조는 Section 4.2와 같다.
- CNTO: NTO 시퀀스를 리셋 없이 이어 붙인다. 스트림은 첫 오분류나 NTO 시퀀스 100개 연속 정분류에서 멈춘다. 성능은 테스트 스트림 10개의 평균 크기(NTO 시퀀스 수)다. 학습 스트림 최대 10⁵개.
주요 결과
| 주장 | 근거 위치 | 관찰/수치 | 조건·주의 | 출처 라벨 |
|---|---|---|---|---|
| 표준 ERG에서 원조 LSTM만 항상 푼다 | Table 1, p.10 | 원조 LSTM 성공률 100%, 8,440개 시퀀스. RCC 50%, 182,000개. ELM 0%, >200,000개. RTRL “some fraction” | 원조 LSTM 외 수치는 다른 논문에서 가져온 것이다. 앞 4행의 가중치 수는 추정치 | author-stated |
| 외부 리셋을 주면 원조 LSTM도 연속 과제 형태에서 잘한다 | Table 2, p.12 | 완벽해 74% (7,441개 스트림), Rest 26% ⟨31⟩ | 비연속 조건. 저자는 1997년 논문의 다른 구조보다 조금 낫다고 씀 | author-stated |
| 리셋이 없으면 원조 LSTM은 실패한다 | Table 2 | 완벽해 0%, Good 1% ⟨1166⟩, Rest 99% ⟨37⟩ | 100개 망 평균 | author-stated |
| 단순 state decay도 해결하지 못한다 | Table 2; Section 4.3, p.12 | decay 0.9: 완벽해 0%, Good 0%, Rest 100% ⟨56⟩ | 여러 감쇠값 중 최고만 보고 | author-stated |
| forget gate LSTM은 연속 과제를 푼다 | Table 2 | 완벽해 18% (18,889개), Good 29% ⟨39171⟩, Rest 53% ⟨145⟩ | 학습률 고정 α = 0.5 | author-stated |
| α decay를 더하면 더 좋아진다 | Table 2; Section 4.5, p.14 | 완벽해 62% (14,087개), Good 6% ⟨68464⟩, Rest 32% ⟨30⟩ | 저자는 α decay가 다른 알고리즘에는 효과가 없었다고 씀(p.12). 그 수치는 표에 없음 | author-stated |
| 원조 LSTM의 실패 원인은 state의 무한 성장이다 | Figure 7; Section 4.4, p.12 | state가 선형적으로 커지고, 이 예시에서는 문자열 13개 뒤 cell 출력이 포화해 성능이 무너짐 | 테스트 스트림 하나를 보여 준 예시 | author-stated |
| forget gate는 문자열 경계에서 리셋하도록 학습된다 | Figure 8; p.13 | 세 번째 block의 forget gate는 대부분 1.0이고 ERG 문자열 끝에서 0으로 떨어진다. state는 0 주변에서 진동한다 | 학습된 망 하나의 170개 기호 구간 | author-stated |
| 기억할 기호가 state 부호로 저장된다 | Figure 8; p.13 | 세 번째 block의 두 번째 cell은 P를 저장할 때 음수, T일 때 양수 | 한 망의 사례 | author-stated |
| 가장 긴 시간 간격을 맡는 block은 하나다 | Figure 9; p.13 | 세 번째 block만 ERG의 가장 긴 간격을 직접 이어 준다. 나머지 block은 짧은 간격 행동만 한다 | 모든 block이 적절히 자기 리셋을 배웠다고 저자는 씀 | author-stated |
| α decay는 학습을 안정시키지만 필수가 아니다 | Figure 10; p.14 | α decay 없이는 최고 해에 이르기 전 성능이 여러 번 무너진다. α decay(γ = 0.99, 기호마다)는 보통 중간 붕괴 없이 완벽해에 이른다. 20,000개 스트림 안에 완벽해가 없으면 재초기화하는 방법으로도 완벽해를 얻는다 | γ ∈ (0.9, 0.999), α ∈ (0.1, 1)도 잘 됐다고 씀 | author-stated |
| 잊지 않아야 하는 NTO도 푼다 | Section 4.6, p.15 | forget gate bias 5.0이면 원조 LSTM만큼 빠르다. bias 1.0이면 평균 약 3배 오래 걸리지만 푼다 | 이 실험의 수치표는 없음. “약 3배”는 저자 서술 | author-stated |
| 원조 LSTM은 풀고 확장 LSTM은 못 푸는 과제는 아직 없다 | Section 4.6, p.15 | 저자의 경험 진술 | 체계적 검증이 아니라 “아직 만나지 못했다”는 진술 | author-stated |
| 연속 NTO에서 원조 LSTM은 실패하고 forget gate LSTM은 푼다 | Table 3, p.15 | 원조 LSTM 완벽해 0% (>10⁵), Partial 100% ⟨4.6⟩. forget gate 24% (74,977개), Partial 76% ⟨12.2⟩. + α decay 37% (79,354개), Partial 63% ⟨11.8⟩ | α가 NTO 시퀀스마다 0.9배로 감쇠. 저자는 α decay가 “조금 더 낫지만 필수는 아니다”라고 씀 | author-stated |
| 계산 비용은 원조 LSTM과 같은 차수다 | Section 3.3, 식 (25), p.8 | 시점·가중치당 O(1), 저장 O(1) | 이론적 계산. 실측 시간은 보고되지 않았다 | author-stated |
결과 사이의 연결. Table 2의 첫 두 행이 문제를 정의한다. 똑같은 원조 LSTM이 외부 리셋이 있으면 74%, 없으면 0%다. 세 번째 행은 “그냥 조금씩 새게 하면 되지 않나”라는 반론을 막는다. 고정 감쇠 0.9는 0%다. 넷째·다섯째 행이 forget gate의 효과다. Figure 7과 Figure 8은 같은 질문에 대한 내부 증거다. Figure 7은 원조 LSTM의 state가 왜 실패하는지(무한 성장), Figure 8은 forget gate가 무엇을 배웠는지(경계에서 리셋)를 보여 준다. NTO 실험은 반대 방향의 점검이다. 잊는 능력을 더해도 잊으면 안 되는 과제를 망치지 않는다는 것이다. 다만 bias 1.0일 때 약 3배 느려지므로 공짜는 아니다 (analyst-inference).
결론을 제한하는 예외. forget gate만 쓴 경우에도 100개 망 중 53%가 “나쁜” 해(Rest)로 끝났다 (Table 2). CNTO에서도 forget gate LSTM의 76%는 부분 해였다 (Table 3). “forget gate가 연속 과제를 푼다”는 말은 “일부 시행에서 완벽해에 도달한다”는 뜻이지 대부분의 시행에서 푼다는 뜻이 아니다 (analyst-inference).
Take-home
한 줄 요약. 끝없이 이어지는 입력에서 LSTM이 쓸모없어진 기억을 스스로 버리게 하려면, CEC의 고정 가중치 1.0을 입력에 따라 열리고 닫히는 forget gate로 바꾸면 된다.
결론이 성립하는 범위
- 실험은 인공 기호 과제 두 개(CERG, CNTO)뿐이다. 망은 memory block 4개, 가중치 약 375개 규모다 (Section 4.2).
- 비교 대상은 LSTM 계열 셋(원조, 외부 리셋, state decay)이다. 다른 RNN 알고리즘은 비연속 과제에서도 실패한다는 이유로 연속 과제 비교에서 빠졌다 (Table 2·3 캡션).
- 망 구조를 최적화하지 않았다고 저자가 직접 밝힌다 (p.12).
저자가 인정한 한계 (author-stated)
- forget gate bias를 CERG와 같은 중간값(1.0)으로 두면 NTO 학습이 평균 약 3배 느려진다. 모든 것을 기억하고 잊지 않는 법을 따로 배워야 하기 때문이다 (p.15).
- forget gate만으로는 학습이 여러 번 무너질 수 있고, 이를 막으려고 α decay나 재초기화를 쓴다 (Section 4.5).
- 다른 구조가 더 좋은 결과를 낼 수도 있다 (p.12).
작성자가 보는 우려 (analyst-inference)
- state decay 기준선은 “여러 값 중 최고 결과만” 보고했다(p.12). 시도한 값의 범위와 각 결과는 표에 없다. 고정 감쇠가 정말 안 되는지 판단할 근거가 0.9 한 행뿐이다.
- 결과는 100개 망의 비율과 평균만 있다. 분산, 신뢰구간, 통계 검정은 기술 보고서판에서 보고되지 않았다.
- 학습 스트림 상한(CERG 30,000개, CNTO 10⁵개) 안에서의 결과다. 원조 LSTM의 0%가 “더 오래 학습해도 0%“인지는 이 실험으로 알 수 없다.
- 이 기술 보고서판 안에 작은 불일치가 있다. 개요(Outline, p.2)는 학습 알고리즘을 Section 4, 실험을 Section 5라고 하지만 실제로는 Section 3.2와 Section 4다. 의사코드(p.17)는 cell 활성값을 식 (6)이라 적지만 본문에서는 식 (7)이다. 기대 문자열 길이도 식 (26)은 ≈ 11.54, p.11은 “평균 12”라고 쓴다(반올림으로 보임). 학술지판에서 고쳐졌는지는 확인하지 못했다.
- 식 (11)의 형태, 곧 “forget gate × 이전 state + input gate × 새 입력”은 이후 널리 쓰이는 LSTM cell 갱신식과 같은 꼴이다. 이것은 원문 밖 지식에 기댄 연결이고 이 논문이 주장한 내용은 아니다.
반복·공개
- 반복: Table 2·3의 모든 결과는 독립 학습망 100개의 평균이다.
- 코드·데이터 공개: 기술 보고서판에서 보고되지 않았다. 과제는 생성 규칙이 원문에 모두 적혀 있어 다시 만들 수 있다.
읽지 못한 범위 (unknown)
- 학술지판(Neural Computation 2000) 본문. 기술 보고서판과 무엇이 다른지는 확인하지 못했다.
본문 도표
Figure 1 — 원조 LSTM cell
- 무엇을 보여주는가: 1997년 원조 LSTM의 memory cell 하나와 두 게이트의 회로도.
- 읽는 법: 아래에서 위로 읽는다. net_c가 g로 눌려 들어와 input gate 활성값 y_in과 곱해진다. 가운데 원이 CEC이고, 자기연결 화살표에 가중치 1.0이 적혀 있다. 그 위에서 h로 눌린 state가 output gate 활성값 y_out과 곱해져 cell 출력 y_c가 된다. 오른쪽 작은 원 두 개가 output gate와 input gate다.
- 핵심 관찰: 갱신식이 “s_c = s_c + g·y_in”으로 적혀 있다. 이전 state를 줄이는 경로가 없다.
- 의미와 주의: 저자는 CEC가 오차를 일정하게 흐르게 하는 핵심이라고 설명한다 (
author-stated). 이 그림에서 1.0이 고정이라는 점이 Section 2.1 약점의 출발점이다 (analyst-inference). - 확인 상태: viewed
Figure 2 — forget gate를 단 확장 LSTM cell
- 무엇을 보여주는가: cell이 하나인 확장 LSTM memory block.
- 읽는 법: Figure 1과 같은 구조에 오른쪽 가운데 forget gate(y_φ, net_φ, w_φ)가 추가됐다. CEC 자기연결의 1.0 자리에 forget gate 출력이 곱해지는 점(검은 점)이 붙어 있다.
- 핵심 관찰: 갱신식이 “s_c = s_c·y_φ + g·y_in”으로 바뀌었고, 라벨도 “memorizing”에서 “memorizing and forgetting”으로 바뀌었다.
- 의미와 주의: 캡션은 “곱셈 forget gate가 cell 내부 state를 리셋할 수 있다”고 쓴다 (
author-stated). 바뀐 것은 이 연결 하나뿐이다. - 확인 상태: viewed
Figure 3 — Reber 문법 전이도
- 무엇을 보여주는가: 왼쪽은 표준 Reber 문법, 오른쪽은 embedded Reber 문법의 상태 전이도.
- 읽는 법: 왼쪽은 B로 시작해 T·P·S·X·V를 따라가다 E로 끝난다. 오른쪽은 B 다음 T 또는 P로 갈라져 각자 Reber 문법 하나를 통과한 뒤, 처음에 고른 기호(T 또는 P)로 다시 합쳐지고 E로 끝난다. 점선 “recurrent connection for continuous prediction”이 E에서 B로 되돌아가는 연속 버전(CERG)을 나타낸다.
- 핵심 관찰: 끝에서 두 번째 기호가 두 번째 기호와 같아야 하므로, 그 사이 Reber 문자열 전체를 건너 기억해야 한다.
- 의미와 주의: 점선이 경계 표시 없이 문자열을 이어 붙이는 부분이다. 이 논문이 다루는 문제는 이 점선에서 생긴다 (
analyst-inference). - 확인 상태: viewed
Figure 4 — ERG 문자열 길이 분포
- 무엇을 보여주는가: (왼쪽) 무작위 ERG 문자열 10⁶개의 길이 히스토그램. (오른쪽) 80,000개 중 주어진 길이의 문자열이 나오고 그것이 가장 길 결합 확률.
- 읽는 법: 왼쪽 x축은 ERG 문자열 길이(9–60), y축은 비율(%)이다. 막대가 히스토그램이고, 함께 그린 선은 로그 스케일과 지수 적합이다. 오른쪽 x축은 최대 ERG 문자열 길이(0–100), y축은 확률이다.
- 핵심 관찰: 왼쪽 분포는 최소 길이 9 근처에서 가장 높고 지수적으로 줄어든다. 오른쪽 분포는 대략 50 근처에서 정점(약 0.36)을 가진다 (그래프 판독,
analyst-inference). - 의미와 주의: 저자는 오른쪽 분포 정점의 x값을 N = 80,000일 때 기대 최대 시간 간격의 하한으로 쓴다 (p.10,
author-stated). 완벽해 테스트에서 50이 넘는 문자열을 마주친다는 주장의 근거다. - 확인 상태: viewed
Figure 5 — 문자열 수와 기대 최대 길이
- 무엇을 보여주는가: ERG 문자열 수 N에 따른 기대 최대 문자열 길이의 하한.
- 읽는 법: 두 패널 모두 y축은 기대 최대 ERG 문자열 길이(0–60)다. 왼쪽 x축은 선형(0–10⁶), 오른쪽 x축은 로그(1–10⁶)다.
- 핵심 관찰: 오른쪽 로그 x축 패널에서 거의 직선이다. 기대 최대 길이가 N에 로그적으로 늘어난다는 뜻이다. 10⁶개 근처에서 약 60이다 (그래프 판독,
analyst-inference). - 의미와 주의: 저자는 τ̄(N)이 N에 로그적으로 커진다고 쓴다 (p.10,
author-stated). 스트림이 길어질수록 더 긴 간격을 이어야 하지만 그 증가는 느리다. - 확인 상태: viewed
Table 1 — 표준 ERG에서 기존 RNN 비교
- 무엇을 보여주는가: 비연속 표준 ERG에서 알고리즘별 성공률과 성공까지 걸린 시퀀스 수.
- 읽는 법: 열은 알고리즘, hidden 유닛 수, 가중치 수, 학습률, 성공 비율(%), 성공까지 시퀀스 수다. RTRL 결과는 Smith & Zipser(1989), ELM(Elman 망)은 Cleeremans et al.(1989), RCC(Recurrent Cascade-Correlation)는 Fahlman(1991), 원조 LSTM은 Hochreiter & Schmidhuber(1997)에서 가져왔다.
- 핵심 관찰: 원조 LSTM(3 block, block 크기 2, 가중치 276개, 학습률 0.5)은 100% 성공, 8,440개 시퀀스. RCC(hidden 7–9, 가중치 ≈ 119–198)는 50%, 182,000개. ELM(hidden 15, ≈ 435)은 0%, >200,000개. RTRL(hidden 3, ≈ 170, 학습률 0.05)은 “some fraction”, 173,000개. RTRL(hidden 12, ≈ 494, 학습률 0.1)도 “some fraction”, 25,000개.
- 의미와 주의: 저자는 LSTM만 항상 풀고, 실패 시행을 빼고 봐도 훨씬 빨리 배운다고 해석한다 (
author-stated). 다만 수치는 서로 다른 논문의 결과를 모은 것이고 앞 4행 가중치 수는 추정치다. 같은 조건에서 다시 돌린 비교가 아니다 (analyst-inference). 테스트 집합은 ERG 문자열 256개다 (p.10). - 확인 상태: viewed
Figure 6 — 실험에 쓴 3층 LSTM 구조
- 무엇을 보여주는가: 입력 7개, 확장 LSTM memory block 4개(그림에는 2개만), 출력 7개로 된 3층 망.
- 읽는 법: 아래 In 1–7, 위 Out 1–7이다. 가운데 hidden layer에 cell 2개짜리 memory block과 각 block의 Out Gate, Forget Gate, In Gate가 보인다. 순환은 hidden layer 안에만 있다. 캡션대로 연결의 일부만 그렸다.
- 핵심 관찰: block마다 게이트 3개가 block 안의 cell 2개를 함께 조절한다. 출력 유닛은 입력 유닛과도 직접 연결된다(shortcut).
- 의미와 주의: Section 3.3의 복잡도 계산과 Section 4.2의 실험 설정이 이 구조를 전제한다 (
author-stated). - 확인 상태: viewed
Table 2 — CERG 결과
- 무엇을 보여주는가: 연속 ERG에서 LSTM 변형 다섯 가지의 결과 분포.
- 읽는 법: %Solutions는 완벽해 비율이고 괄호 안은 해에 이를 때까지의 학습 스트림 수다. %Good Results는 평균 스트림 길이 > 1000인 비율, %Rest는 ≤ 1000인 비율이다. ⟨⟩ 안은 평균 무오류 예측 길이다. 모두 독립 학습망 100개의 평균이다.
- 핵심 관찰:
- 원조 LSTM + 외부 리셋: 74 (7441) / 0 ⟨–⟩ / 26 ⟨31⟩
- 원조 LSTM: 0 (–) / 1 ⟨1166⟩ / 99 ⟨37⟩
- state decay (0.9): 0 (–) / 0 ⟨–⟩ / 100 ⟨56⟩
- forget gate: 18 (18889) / 29 ⟨39171⟩ / 53 ⟨145⟩
- forget gate + α decay: 62 (14087) / 6 ⟨68464⟩ / 32 ⟨30⟩
- 의미와 주의: 결정적 비교는 원조 LSTM 0% 대 forget gate 18%·62%다. 외부 리셋 행은 비연속 조건이라 같은 과제의 경쟁자가 아니라 “리셋만 주어지면 LSTM이 할 수 있는 수준”을 보여 주는 기준이다 (
analyst-inference). forget gate만 쓴 경우도 절반 이상(53%)은 나쁜 해로 끝났다. - 확인 상태: viewed
Figure 7 — 원조 LSTM의 state 폭주
- 무엇을 보여주는가: 첫 예측 실패에서 멈춘 테스트 스트림 하나 동안 원조 LSTM의 내부 state s_c 변화.
- 읽는 법: x축은 기호(0–130), y축은 내부 cell state(−50 – 100 이상)다. 세로선은 새 ERG 문자열의 시작이다. 아래 라벨(T, P)은 다음 문자열 시작까지 기억해야 할 기호, 위 라벨(-9-, -10-, -14- 등)은 각 문자열 길이다. 여러 선이 각 cell이다.
- 핵심 관찰: 여러 cell의 state가 문자열 경계와 상관없이 거의 직선으로 계속 올라가 100을 넘는다. 저자는 이 예시에서 연속 문자열 13개 뒤 cell 출력이 포화해 성능이 무너진다고 쓴다 (p.12).
- 의미와 주의: Section 2.1에서 말한 무한 성장을 실제로 보여 주는 그림이다 (
author-stated). 한 스트림, 한 망의 예시다. - 확인 상태: viewed
Figure 8 — forget gate가 배운 리셋 (세 번째 block)
- 무엇을 보여주는가: (위) CERG를 학습한 확장 LSTM의 세 번째 memory block, cell 두 개의 state. (아래) 같은 block의 forget gate 활성값. 긴 테스트 스트림 중 170개 기호 구간이다.
- 읽는 법: x축은 기호 번호(680–850)다. 세로선은 ERG 문자열 시작이고, 아래 라벨은 기억할 기호(T/P), 위 라벨은 문자열 길이다. 위 패널 y축은 state(약 −15 – 25), 아래 패널 y축은 forget gate 활성값(0–1)이다.
- 핵심 관찰: forget gate는 대부분 1.0 근처에 있다가 문자열 경계마다 0 근처로 떨어진다. 그 순간 state가 0으로 돌아가고, state는 0 주변에서 오르내릴 뿐 Figure 7처럼 폭주하지 않는다. 두 번째 cell은 P를 기억해야 하는 구간에서 음수, T일 때 양수다 (p.13).
- 의미와 주의: 저자는 이 block이 ERG 문자열 시작과 동기화해 cell을 리셋한다고 해석한다 (
author-stated). 리셋 시점을 외부에서 알려 주지 않았는데도 배웠다는 점이 핵심이다 (analyst-inference). - 확인 상태: viewed
Figure 9 — 첫 번째 block의 짧은 기억
- 무엇을 보여주는가: (위) 첫 번째 block 첫 번째 cell의 state. (아래) 첫 번째 block의 forget gate 활성값. Figure 8과 같은 구간이다.
- 읽는 법: 축과 라벨은 Figure 8과 같다. 위 패널 y축 범위는 약 −10 – 15다.
- 핵심 관찰: forget gate가 문자열 경계뿐 아니라 문자열 안에서도 자주 0 근처로 떨어진다. state도 짧은 주기로 오르내린다.
- 의미와 주의: 저자는 이 block이 Reber 문법의 수많은 짧은 간격 사건을 예측하는 단기 행동만 보인다고 해석한다. 세 번째 block을 뺀 나머지 block도 같다고 쓴다. 모든 block에 공통인 것은 적절한 자기 리셋을 배웠다는 점이다 (p.13,
author-stated). 같은 forget gate 구조가 block에 따라 긴 기억과 짧은 기억으로 역할을 나눴다는 뜻이다 (analyst-inference). - 확인 상태: viewed
Figure 10 — 학습률 감쇠 유무에 따른 학습 곡선
- 무엇을 보여주는가: CERG에서 forget gate LSTM의 학습 진행. 점 하나가 학습 스트림 하나의 길이다. 예측 오류가 나면 스트림이 멈춘다.
- 읽는 법: x축은 제시한 스트림 수(0 – 약 10,000), y축은 스트림 길이(로그 스케일 1–100,000)다. 왼쪽은 학습률 α = 0.5 고정, 오른쪽은 α를 매 시점 0.99배로 줄이는 지수 감쇠다.
- 핵심 관찰: 왼쪽은 스트림 길이가 1,000 근처까지 올라갔다가 다시 흩어지며 상단에 드물게 닿는다. 오른쪽은 약 8,000번째 스트림 근처에서 길이가 급격히 뛰어 10,000–100,000 대역에 모인다 (그래프 판독,
analyst-inference). - 의미와 주의: 저자는 α decay가 없으면 최고 해에 이르기 전 성능이 여러 번 무너지고, α decay가 있으면 보통 중간 붕괴 없이 완벽해(100,000 기호 × 10)에 이른다고 쓴다 (p.14,
author-stated). 캡션이 말하듯 “두 개의 전형적인 곡선”이므로 대표성은 Table 2의 비율로 판단해야 한다. - 확인 상태: viewed
Table 3 — CNTO 결과
- 무엇을 보여주는가: 연속 Noisy Temporal Order에서 LSTM 변형 세 가지의 결과.
- 읽는 법: %Perfect Solutions는 테스트 스트림 10개에서 NTO 시퀀스 1000개를 연속으로 맞게 분류한 비율이고, 괄호 안은 학습 스트림 수다. %Partial Solutions는 평균 스트림 크기 ≤ 100인 해의 비율이고, ⟨⟩ 안은 평균 스트림 크기다. 모두 100개 망 평균이다.
- 핵심 관찰:
- 원조 LSTM: 0 (> 10⁵) / 100 ⟨4.6⟩
- forget gate: 24 (74977) / 76 ⟨12.2⟩
- forget gate + sequential α decay: 37 (79354) / 63 ⟨11.8⟩
- 의미와 주의: CERG와 같은 방향이다. 리셋이 없으면 원조 LSTM은 평균 NTO 시퀀스 4.6개 만에 무너진다. forget gate는 일부 시행에서 완벽해에 닿는다. 다만 완벽해 비율이 CERG보다 낮고 필요한 학습 스트림은 더 많다 (
analyst-inference). BPTT·RTRL 등은 비연속 NTO에서도 실패해 비교에서 뺐다 (캡션,author-stated). - 확인 상태: viewed
Wiki 연결
- Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling — forget gate가 들어간 LSTM과 GRU를 실제 과제에서 비교한 후속 실증. 이 논문의 게이트가 표준 부품이 된 뒤의 모습이다.
- Sequence to Sequence Learning with Neural Networks — 다층 LSTM을 encoder-decoder로 쓴 응용. 긴 문장을 처리하는 LSTM의 실전 사용처다.
- Neural Turing Machines — 기억을 은닉 state 안에만 두는 LSTM의 한계를 외부 메모리로 우회한 다른 방향. 이 노트의 “무엇을 지울지 배운다”와 NTM의 “지우고 더하는 쓰기”를 나란히 볼 수 있다.
- Mamba - Linear-Time Sequence Modeling with Selective State Spaces — 입력에 따라 state를 얼마나 유지할지 정하는 선택적 SSM. 그 노트는 Δ를 GRU의 망각 게이트와 연결한다. 고정 감쇠 대신 입력 의존 감쇠라는 이 논문의 설계 원리가 이어진 사례로 볼 수 있다 (
analyst-inference).
BibTeX
@article{gers2000learning,
title = {Learning to Forget: Continual Prediction with {LSTM}},
author = {Gers, Felix A. and Schmidhuber, J{\"u}rgen and Cummins, Fred},
journal = {Neural Computation},
volume = {12},
number = {10},
pages = {2451--2471},
year = {2000},
doi = {10.1162/089976600300015015}
}