LSTM
- RNN 기반의 신경망 알고리즘
- Simple RNN 모델의 문제를 보완하기 위해 제안됨
- 장기의존문제 (long term dependency)
- 입력된 문서에서 상대적으로 오래 전에 사용된 단어의 정보가 잘 전달되지 않음
- 경사소실문제로 인해 발생함 (gradient descent) 각각의 RNN 층에 활성화 함수가 존재하는데, 주로 tanh 사용 이는 S자 모양의 함수로 입력값이 매우 커지거나 작아지면 활성화함수의 경사가 0에 가까워져 역전파 과정에서 경사 소실 문제가 발생함 이로 인해 파라미터의 값이 제대로 업데이트되지 않아 장기의존문제가 발생하게 됨 파라미터를 업데이트할 때 gradient descent 문제를 해결하고자 learning rate를 크게 두면 되려exploding gradient 문제가 발생함
- memory cell을 활용하여 이전 단어의 내용을 보다 더 잘 기억할 수 있도록
- 은닉 노드의 개수에 따라 그 개수가 정해지며 hidden state vector와 차원이 동일함
- 기존 hidden state Ht에 기억 셀인 Ct가 추가된 것으로 이해 가능
- LSTM 모델 구조
-
작동원리
-
gate
-
LSTM 레이어의 전체적인 작동 원리
- 기억 셀의 정보 업데이트
- 기억 셀의 일부 정보를 잊어버림 (forget gate)
- 기억 셀에 새로운 정보 추가 (input gate)
- 업데이트된 기억 셀 정보를 이용하여 hidden state 출력 (output gate)
-
LSTM 다음 계층으로 전달되는 값
- hidden state !
- 일반적으로 기억 셀의 특징은 다음 계층으로 전달되지 않음 (LSTM 레이어 내에서 이전 단어들의 정보를 기억하는 목적으로 사용됨)
-
Bidirectional LSTM
- 기존의 LSTM : 한 방향으로만 작동 ~ 시퀀스 데이터의 왼쪽에서 오른쪽 방향으로
- 현재 단어 이후의 정보가 중요한 경우도 있음 : 반대 방향으로 작동하는 LSTM 함께 사용
- Bidirectional LSTM : 작동 방향이 서로 반대인 2개의 LSTM layer를 사용하는 LSTM
- 순방향, 역방향 LSTM 레이어에서 출력되는 hidden state는 서로 차원 동일
- 모든 계층에서 출력하는 hidden state 정보 모두 사용하거나 혹은 각 LSTM 마지막 계층에서 출력하는 hidden state 정보들 만을 사용하는 것도 가능함
- 각 hidden state에 대해서는 concat 하여 사용
LSTM 변형
엿보기 구멍(peephole connection)"을 추가한 모델이다. Gate layer들이 cell state를 쳐다보게 만드는 모델
출처 (개발새발로그:티스토리)
RNN과 비교하여 장단점
- 장점 : 장기기억소실 문제 해결
- 단점 : 모델 구조 복잡해 추론 시간에 있어 불리함
Transformer와 비교하여 장단점
- 장점 : 적은 학습 데이터셋을 활용할 때 학습의 효율성을 가짐
- 단점 : 입력 시퀀스의 병렬처리가 불가능
GRU
- LSTM과 유사하게 게이트 개념 활용
- reset gate
- update gate : forget + input
- 기억 셀은 활용하지 않음
- LSTM보다 간단한 구조를 가짐 : 속도는 비교적 빠르나 정확도가 낮음
- 파라미터 수가 적어 적은 학습 데이터셋을 활용했을 경우 학습에 있어 유리할 수 있음
- 구조