
앗! 머리를 쓰고 싶지 않다
📌 New types of RNN: LSTM (Long-short term memory)
LSTM(Long-Short Term Memory)는 기본 RNN의 단점을 극복하기 위해 제안된 새로운 유형의 RNN입니다.
-
LSTM 소개:
- 메모리를 여러 종류로 분리: LSTM은 메모리를 여러 타입으로 나누어 저장하고 관리합니다.
- 기울기 소실 문제 해결: 1997년 Hochreiter와 Schmidhuber에 의해 제안된 LSTM은 RNN에서 발생하는 기울기 소실 문제를 해결합니다.
-
LSTM의 구성 요소:
- 숨겨진 상태 (hidden state, (ht))와 셀 상태 (cell state, (Ct)):
- 각 상태는 길이가 (n)인 벡터입니다.
- 셀 상태는 장기 정보를 저장합니다.
- LSTM은 셀 상태에서 정보를 지우고, 쓰고, 읽을 수 있습니다.
-
정보 관리:
- 3개의 게이트 (잊음 게이트, 입력 게이트, 업데이트 게이트)를 통해 어떤 정보를 지우고, 쓰고, 읽을지(erase, write, read) 결정합니다.
- 잊음 게이트 (forget gate): 어떤 정보를 지울지 결정합니다.
- 입력 게이트 (input gate): 어떤 새로운 정보를 셀 상태에 저장할지 결정합니다.
- 업데이트 게이트 (update gate): 과거 정보와 현재 정보를 결합하여 셀 상태를 업데이트합니다.
- 각 게이트는 길이가 (n)인 벡터이며, 시간 단계마다 열리거나 닫히거나 중간 상태가 될 수 있습니다.
- 게이트의 값은 현재 컨텍스트에 따라 동적으로 계산됩니다.
요약:
- LSTM의 주요 개념:
- LSTM은 긴 시퀀스 데이터를 효과적으로 처리할 수 있도록 설계되었습니다.
- 기울기 소실 문제를 해결하기 위해 셀 상태를 도입하여 장기 정보를 보존합니다.
- 잊음, 입력, 업데이트 게이트를 통해 정보를 효율적으로 관리합니다.
LSTM (Long-Short Term Memory) 셀 구조와 수식 설명
LSTM(Long-Short Term Memory)은 RNN의 확장으로, 기울기 소실 문제를 해결하기 위해 설계된 메모리 셀입니다. LSTM은 데이터를 효율적으로 저장하고 불필요한 정보를 제거하여 장기 의존성을 유지합니다.
주요 구성 요소와 수식 설명:

1. Forget Gate (잊음 게이트, (ft)):
- 이전 셀 상태 (Ct−1)에서 어떤 정보를 잊을지 결정합니다.
- 수식: (ft=σ(Wfxt+Vfht−1+bf))
- 여기서, (σ)는 시그모이드 함수로, 출력 값이 [0, 1] 사이입니다. (Wf), (Vf)는 가중치, (bf)는 바이어스입니다.
-
Input Gate (입력 게이트, (it)):
- 새로운 정보를 셀 상태에 추가할지 결정합니다.
- 수식: (it=σ(Wixt+Viht−1+bi))
- (Ct~): 새로운 후보 메모리 셀 상태
- 수식: (Ct~=tanh(Wgxt+Vght−1+bg))
- (Wi), (Vi), (bi), (Wg), (Vg), (bg)는 가중치와 바이어스입니다.
-
Cell State (셀 상태, (Ct)):
- 셀 상태는 이전 셀 상태 (Ct−1)와 새로운 후보 메모리 셀 상태 (Ct~)의 조합으로 업데이트됩니다.
- 수식: (Ct=ft⊙Ct−1+it⊙Ct~)
- 여기서, (⊙)는 Hadamard Product(요소별 곱셈)입니다.
-
Output Gate (출력 게이트, (ot)):
- 현재 셀 상태로부터 어떤 정보를 출력할지 결정합니다.
- 수식: (ot=σ(Woxt+Voht−1+bo))
- 최종 출력 (ht):
- 수식: (ht=ot⊙tanh(Ct))
- (Wo), (Vo), (bo)는 가중치와 바이어스입니다.
LSTM의 동작 과정:
- 입력 (xt)와 이전 숨겨진 상태 (ht−1)이 주어지면 잊음 게이트 (ft)가 어떤 정보를 잊을지 결정합니다.
- 입력 게이트 (it)가 어떤 새로운 정보를 셀 상태에 추가할지 결정하고, 새로운 후보 셀 상태 (Ct~)를 계산합니다.
- 셀 상태 (Ct)는 이전 셀 상태 (Ct−1)과 새로운 후보 셀 상태 (Ct~)의 조합으로 업데이트됩니다.
- 출력 게이트 (ot)가 현재 셀 상태로부터 어떤 정보를 출력할지 결정하고, 최종 출력 (ht)를 계산합니다.
Forget Gate(망각 게이트) 설명:

-
기능:
- 망각 게이트는 셀 상태에서 어떤 정보를 버릴지를 결정합니다.
- 즉, 이전 상태에서의 정보를 현재 상태에서 얼마나 유지할지 또는 잊을지를 결정합니다.
-
활성화 함수:
- 시그모이드 함수(sigmoid)가 활성화 함수로 사용됩니다.
- 시그모이드 함수는 출력 값을 0과 1 사이로 만듭니다.
-
출력 값 해석:
- Output 0: 모든 이전 값을 잊어버리라는 의미입니다. 시그모이드 함수의 출력이 0에 가까울 때 해당됩니다.
- Output 1: 모든 이전 값을 유지하라는 의미입니다. 시그모이드 함수의 출력이 1에 가까울 때 해당됩니다.

1. 기능:
- 입력 게이트는 셀 상태에 어떤 새로운 정보를 저장할지를 결정합니다.
- 현재 입력된 정보를 얼마나 셀 상태에 추가할지 결정하는 역할을 합니다.
- 활성화 함수:
- 시그모이드 함수(sigmoid)와 하이퍼볼릭 탄젠트 함수(tanh)가 사용됩니다.
- 시그모이드 함수는 출력 값을 0과 1 사이로 만들고, 하이퍼볼릭 탄젠트 함수(tanh)는 출력 값을 -1과 1 사이로 만듭니다.
- 역할:
- 입력 게이트는 얼마나 많은 새로운 정보를 현재 셀 상태에 추가할지를 결정합니다.
- 망각 게이트와 함께 입력 게이트는 이전 셀 상태 값을 얼마나 버릴지, 그리고 현재 입력과 이전 출력에서 얻은 값을 셀 상태에 얼마나 반영할지를 결정합니다.
Update Cell in LSTM (셀 업데이트)

LSTM(Long Short-Term Memory) 네트워크의 Update Cell(셀 업데이트)은 셀 상태를 업데이트하는 과정입니다. 이 과정은 입력 게이트와 망각 게이트의 작동을 통해 수행됩니다.
주요 기능:
- 업데이트 양 결정:
- 셀 상태 업데이트는 얼마만큼 업데이트할지를 결정하는 과정입니다. 이는 입력 게이트와 망각 게이트의 작동을 통해 이루어집니다.
- 망각 게이트와 입력 게이트의 역할:
- 망각 게이트는 이전 셀 상태의 어떤 정보를 잊을지를 결정합니다.
- 입력 게이트는 새로운 정보를 얼마나 현재 셀 상태에 추가할지를 결정합니다.
- 셀 상태 갱신:
- 셀 상태 (Ct)는 이전 셀 상태 (Ct−1)와 새로운 정보 (Ct~)를 결합하여 갱신됩니다.
- 망각 게이트의 출력 (ft)는 이전 셀 상태의 정보 중 얼마나 잊을지를 결정하고, 입력 게이트의 출력 (it)는 새로운 정보를 얼마나 추가할지를 결정합니다.
Output Gate in LSTM (출력 게이트)

LSTM(Long Short-Term Memory) 네트워크의 Output Gate(출력 게이트)는 셀 상태를 바탕으로 최종 출력을 결정하는 역할을 합니다. 출력 게이트는 셀 상태에서 어떤 정보를 출력할지를 결정하여, 이를 필터링된 형태로 만듭니다.
주요 기능:
-
출력 결정:
- 출력 게이트는 셀 상태 (Ct)에 기반하여 최종 출력 (ht)를 결정합니다. 이 출력은 필터링된 형태로, 셀 상태의 중요한 정보만 포함됩니다.
-
필터링 과정:
- 셀 상태는 (tanh) 함수에 의해 활성화된 후, 출력 게이트의 값을 통해 필터링됩니다.
- 출력 게이트 (ot)는 현재 입력 (xt)와 이전 출력 (ht−1)를 바탕으로 계산됩니다.
- 필터링된 출력 (ht)는 (ot)와 (tanh(Ct))의 곱으로 나타납니다.
-
출력 값 결정:
- (ot)의 값이 1에 가까울수록 해당 셀 상태 정보가 그대로 출력에 반영됩니다.
- (ot)의 값이 0에 가까울수록 해당 셀 상태 정보가 출력에서 제외됩니다.
📌 GRU (Gated Recurrent Unit)

GRU는 LSTM보다 단순화된 형태의 RNN 구조입니다. LSTM과 유사한 성능을 가지면서도 계산량이 적고, 구현이 더 간단합니다. GRU는 두 개의 주요 게이트로 구성됩니다: 업데이트 게이트와 리셋 게이트.
주요 특징 및 구성 요소:
-
업데이트 게이트 (zt):
- LSTM의 포겟 게이트와 입력 게이트를 합친 역할을 합니다.
- 업데이트 게이트는 현재 상태를 얼마나 업데이트할지를 결정합니다. 즉, 현재 상태 (ht)가 이전 상태 (ht−1)와 새 입력 (xt)에서 얼마나 영향을 받을지를 조절합니다.
-
리셋 게이트 (rt):
- 이전 상태를 얼마나 리셋할지를 결정합니다. 즉, 리셋 게이트는 현재 입력 (xt)와 이전 상태 (ht−1)가 얼마나 섞일지를 조절합니다.
- 리셋 게이트 값이 0에 가까울수록 이전 상태를 무시하고 새 입력에 더 의존하게 됩니다.
GRU의 작동 방식:
-
리셋 게이트:
- 리셋 게이트 (rt)는 현재 입력 (xt)와 이전 상태 (ht−1)를 이용하여 계산됩니다.
- 리셋 게이트 값에 따라 이전 상태가 얼마나 반영될지를 결정합니다.
-
잠재 상태:
- 잠재 상태 (h~t)는 리셋 게이트 (rt)에 의해 조정된 이전 상태 (ht−1)와 현재 입력 (xt)를 이용해 계산됩니다.
-
업데이트 게이트:
- 업데이트 게이트 (zt)는 현재 입력 (xt)와 이전 상태 (ht−1)를 이용하여 계산됩니다.
- 업데이트 게이트는 새로운 상태 (ht)가 이전 상태 (ht−1)와 잠재 상태 (h~t) 사이에서 어떻게 조합될지를 결정합니다.
-
최종 상태:
- 최종 상태 (ht)는 업데이트 게이트 (zt)에 따라 이전 상태와 잠재 상태의 가중합으로 결정됩니다. 업데이트 게이트 값이 1에 가까울수록 새로운 입력에 더 의존하게 되고, 0에 가까울수록 이전 상태를 유지합니다.
GRU는 이러한 구조 덕분에 긴 시퀀스에서도 효과적으로 학습할 수 있으며, LSTM에 비해 계산 효율성이 높은 장점이 있습니다.