LSTM(Long Short Term Memory networks / GRU(Gated Recurrent Unit)
개인적으로 공부하기 위해 블로그나 논문을 찾아보면서 정리한 글입니다. 내용에 이상이 있거나 저작권상 문제가 있을 경우 댓글 남겨 주세요.
LSTM은 각 기능별로 forget gate layer, Input gate Layer, Output gate Layer로 나뉘어 있으며, 이 기능들을 토대로 4개의 과정을 거쳐 입력 값에 가중치를 부여하게 됩니다. Gate 별 구성 요소는 과정을 거쳐가면서 설명하도록 하겠습니다.
1. Cell
state에서 어떤 정보를 버릴지 선택(Forget gate)
Cell state에는 이전 시점들의 정보들을 가지고 있습니다. 이번 단계에서는 이전 시점의 값을 가져갈 지 버릴 지 선택하게 됩니다.
2. 새로운 정보가 Cell state에 저장될 지 결정(Input gate)
3. Cell
state 업데이트
4. 출력 값을 결정(Output gate)
LSTM
특징
LSTM(Long Short Term Memory networks)은 RNN 모델의 일종으로, RNN의 은닉층에 Cell state라는 개념을 도입하여 예전에 입력된 데이터라도 가중치를 긴 기간 가질 수 있게 설정된
네트워크입니다.
![]() |
| 그림 1 - LSTM |
LSTM은 각 기능별로 forget gate layer, Input gate Layer, Output gate Layer로 나뉘어 있으며, 이 기능들을 토대로 4개의 과정을 거쳐 입력 값에 가중치를 부여하게 됩니다. Gate 별 구성 요소는 과정을 거쳐가면서 설명하도록 하겠습니다.
1. Cell
state에서 어떤 정보를 버릴지 선택(Forget gate)
![]() |
| 그림 2 - Forget Gate Layer |
Cell state에는 이전 시점들의 정보들을 가지고 있습니다. 이번 단계에서는 이전 시점의 값을 가져갈 지 버릴 지 선택하게 됩니다.
Forget gate는 하나의 시그모이드 Layer(그림에서 노란색 상자)와 두 개의 입력 값(이전 시점의 결과값, 지금 시점의 입력 값)으로 구성되어 있습니다. 시그모이드 함수로 계산될 경우 0과 1 사이의 값이 나오게 되는데, 0의 값이 나올 경우 Cell state에서 이전 정보가 제거됩니다. 반대로 1이 나올 경우 Cell state에서 이전 정보를 계속 가져갑니다.
2. 새로운 정보가 Cell state에 저장될 지 결정(Input gate)
새롭게 들어온 데이터 및 이전의 결과값을 토대로, Cell state에
새 값을 입력할 지 결정합니다.
![]() |
| 그림 3 - Input Gate Layer |
Input gate에는 시그모이드 Layer와 하이퍼볼릭탄젠트(tanh) Layer 라는 두개의 함수로 이루어져 있습니다. 시그모이드 함수에서 나온 값과 tanh 함수에서 나온 값을 통해 Cell state에 입력할 데이터를
결정합니다. 결정된 데이터는 Cell state에 포함되어, 이후의 은닉층에 영향을 미치게 됩니다.
3. Cell
state 업데이트
Forget gate에서 도출된 데이터와 Input gate에서 도출된 값을 토대로 Cell state를 업데이트
합니다.
![]() |
| 그림 4 - Cell state Update |
4. 출력 값을 결정(Output gate)
시그모이드 함수를 통해 새롭게 들어온 데이터의 출력 값을 결정하고, Cell
State의 가중치를 출력 값에 적용하여 최종적으로 값을 도출합니다.
![]() |
| 그림 5 - Output Gate Layer |
Output gate에는 시그모이드 Layer와 tanh 함수로 구성됩니다. 이전의 결과값과 새로운 입력 값을 시그모이드 함수를 통해 출력 값 도출한 후,
현재 Cell state의 값을 tanh에 입력하여
가중치를 도출, 두 값을 곱함으로써 최종 값을 계산합니다. 이
gate에서 연산한 결과값은 해당 시점의 출력 값이 되거나, 혹은
다음 시점으로 넘어가 새로운 입력 값에 영향을 미치게 됩니다.
GRU
GRU(Gated
Recurrent Unit)은 LSTM의 장기 의존성 문제 해결 능력을 그대로 유지한
채로, 계산 방식을 간단화 시켜 학습 속도를 증진시킨 모델입니다.
![]() |
| 그림 6 - Gated Recurrent Unit |
이 모델은 Forget, Input, Output 라는 세개의 Gate 대신, Update, Reset이라는 두 개의
Gate가 존재 합니다. Update Gate는 Forget gate와
Input gate가 합쳐진 형태이며, 이전의 데이터를 얼마나
기억할 지 결정합니다. Reset gate의 경우 새로운 데이터와 이전 값을 어떻게 합칠 지를 결정합니다.
출처
colah’s blog, 2015년 8월 27일, http://colah.github.io/posts/2015-08-Understanding-LSTMs/
wikidocs, 2019년 9월 22일, https://wikidocs.net/48558
AIdev, 2018년 7월 11일, https://m.blog.naver.com/PostView.nhn?
Team AI Korea, 2015년 12월 28일, http://aikorea.org/blog/rnn-tutorial-4/
chris송호연, 2016년 11월 8일, https://brunch.co.kr/@chris-song/9
Wikipedia, 2019년 10월 20일, https://en.wikipedia.org/wiki/Recurrent_neural_network
ratsgo, 2017년 3월 9일, https://ratsgo.github.io/natural%20language%20processing/2017/03/09/rnnlstm/






댓글
댓글 쓰기