LSTM(Long Short-Term Memory)
- LSTM은 이름에서 알 수 있듯이 장단기메모리를 사용한다
- LSTM은 은닉층의 메모리 셀에 입력 게이트, 망각 게이트, 출력 게이트를 추가하여 불필요한 기억을 지우고, 기억해야할 것들을 정한다
- 셀 상태(cell state)라는 값을 추가
구조도를 통해 Vanilla RNN과 LSTM를 보자


상대적으로 복잡해 보인다.
셀 상태(Ct)는 위의 그림에서 왼쪽에서 오른쪽으로 가는 굵은 선이다. 셀 상태 또한 이전에 배운 은닉 상태처럼 이전 시점의 셀 상태가 다음 시점의 셀 상태를 구하기 위한 입력으로서 사용된다.
은닉 상태의 값과 셀 상태의 값을 구하기 위해서 새로 추가 된 3개의 게이트를 사용
삭제 게이트, 입력 게이트, 출력 게이트라고 부르며 이 3개의 게이트에는 공통적으로 시그모이드 함수가 존재
- 이하식에서 σ는 시그모이드 함수를 의미
- 이하식에서 tanh는 하이퍼볼릭탄젠트 함수를 의미
- Wxi,Wxg,Wxf,Wxo 는xt 와 함께 각 게이트에서 사용되는 4개의 가중치임
- Whi,Whg,Whf,Who 는ht−1 와 함께 각 게이트에서 사용되는 4개의 가중치임
- bi,bg,bf,bo 는 각 게이트에서 사용되는 4개의 편향임
세 게이트삭제 게이트, 입력 게이트, 출력 게이트 세 게이트와 셀 상태 총 4개로 나눠 따로 알아보자
(1) 입력 게이트

현재 정보를 기억하기 위한 게이트
- it=σ(Wxixt+Whiht−1+bi)
- gt=tanh(Wxgxt+Whght−1+bg)
이 두 개의 값 을 가지고 이번에 선택된 기억할 정보의 양을 정한다
(2) 삭제 게이트

기억을 삭제하기 위한 게이트
- ft=σ(Wxfxt+Whfht−1+bf)
ft 0에 가까울수록 정보가 많이 삭제된 것이고 1에 가까울수록 정보를 온전히 기억한 것
(3) 셀 상태

이전 셀상태와 현재 정보의 반영 비율을 결정
- Ct=ft∘Ct−1+it∘gt
앞에서 구한 입력게이트의 it, gt, 그리고 삭제게이트의 ft,
그리고 이전 셀 상태 Ct−1을 이용해서 구한다
여기서 ∘ 는 원소별 곱을 의미
삭제게이트의 ft이 0 에 가까울수록 Ct−1 값과 곱해질때 작은 값을 갖게 되고 이는 이전 셀상태의 반영 비율이 적다는 의미, 현재 상태에 의존
반대로 입력 게이트의 it 값이 0에 가까워지면 Ct 값은 Ct−1에 의존하게 됨
(4) 출력 게이트와 은닉 상태

출력 게이트 ot, 은닉상태 ht
- ot=σ(Wxoxt+Whoht−1+bo)
- ht=ot∘tanh(Ct)
GRU(Gated Recurrent Unit)
abstract
- GRU(Gated Recurrent Unit)는 2014년 뉴욕대학교 조경현 교수님이 집필한 논문에서 제안되었습니다. GRU는 LSTM의 장기 의존성 문제에 대한 해결책을 유지하면서, 은닉 상태를 업데이트하는 계산을 줄였습니다. 다시 말해서, GRU는 성능은 LSTM과 유사하면서 복잡했던 LSTM의 구조를 간단화 시켰습니다.

- rt (리셋 게이트) =σ(Wxrxt+Whrht−1+br)
- zt (업데이트 게이트) =σ(Wxzxt+Whzht−1+bz)
- gt (새로운 정보 후보) =tanh(Whg(rt∘ht−1)+Wxgxt+bg)
- ht (t에서의 최종 은닉 상태) =(1−zt)∘gt+zt∘ht−1
특징
- LSTM과 다르게 "업데이트 게이트"와 "리셋 게이트" 두 가지 게이트만이 존재
- 경험적으로 데이터 양이 적을 때는 매개 변수의 양이 적은 GRU가 조금 더 낫고, 데이터 양이 더 많으면 LSTM이 더 낫다고도 함