# LSTM : 장단기 메모리
(Long-short term memory)
- 바닐라 RNN : 가장 기본적인 꼴의 RNN
> 이 RNN으로부터 더 발전된 꼴의 RNN 들이 LSTM 등 여러가지 존재
- 장기 의존성 문제 : (RNN 의 한계점)
> 맨 마지막 state 에서, 올바른 y 값을 출력하기 위해서 앞부분에 있는 state 의 출력값이 필요하다고 하자
그럴 경우, 앞 부분의 state 값은 뒷부분까지 널리 전달되지 못하기 떄문에 (영향력이 미비해짐) 문제 발생
- 구성 방식 : 모두 시그모이드 함수를 사용한다는 특징 지님
1) 입력 게이트 : 현재의 정보를 기억하기 위한 게이트
> i : 시그모이드 함수 사용 -> 0, 1 출력
> g : 하이퍼볼릭 탄젠트 함수 사용 -> -1, 1 출력
>> 이 두 출력값을 이용, 기억할 정보의 양을 정함
2) 삭제 게이트 : 기억을 삭제하기 위한 게이트
>> 출력값이 0에 가까우면 많이 삭제한 것,
출력값이 1에 가까우면 정보를 많이 기억하는 것.
3) 셀 상태 (장기 상태) : 입력 게이트로부터 받은 정보와, 삭제 게이트로부터 받은 정보를 이용해서 다음 상태값을 만들어낸다
>> 이를 통해, 입력 게이트의 값에 더 의존할 것인지, 삭제 게이트의 정보에 더 의존할 것인지를 결정이 가능
-> 즉, 현재 데이터에 더 큰 영향을 받는지(입력 게이트)
과거 데이터에 더 큰 영향을 받는지(삭제 게이트) 를 결정해주는 상태다.
4) 출력 게이트와 은닉 상태 (단기 상태)
>> 셀 상태로부터 받은 값과, 입력층의 값을 다시 한 번 더 연산을 해줌.
-> 다시 한 번 더 입력층과 연산을 해줬다는 점에서 단기 상태라고 하는 것 같다.
>> 출력 게이트 값으로 나오는 동시에, 은닉 상태 값으로도 연산이 된다/
'기계학습 > 자연어 처리 머신러닝' 카테고리의 다른 글
글자레벨 번역기 코드 - 딥러닝을 이용한 자연어처리 입문 (0) | 2020.01.31 |
---|---|
GRU, ELMO - 딥러닝을 이용한 자연어처리 입문 (0) | 2020.01.28 |
RNN 언어모델 - 딥러닝을 이용한 자연어처리 입문 (0) | 2020.01.28 |
RNN - 딥러닝을 이용한 자연어처리 입문 (0) | 2020.01.28 |
태깅 작업 - 딥러닝을 이용한 자연어처리 입문 (0) | 2020.01.28 |