728x90
2. LSTM
(1) LSTM 소개
- Long Short-Term Memory, 줄여서 LSTM은 RNN의 한 종류로 RNN의 한계를 극복하고 장기 의존성 문제를 해결함
- 장기 의존성 문제란 입력과 출력 사이의 거리가 멀어질수록 연관 관계가 적어지는 문제
- "The clouds are in the 000" 라는 문장 내에서 RNN은 문장 내의 핵심 단어 clouds 를 통해 빈칸에 들어갈 단어가 sky임을 유추할 수 있다. 하지만 "I grew up in France ... when I was young ... I speak fluent 000000" 와 같이 길이가 긴 순차 데이터에서는 핵심 단어 France와 유추해야하는 단어와의 거리가 멀어서 기존의 RNN으로는 예측이 어려움
- LSTM은 이 문제를 정보를 긴 시간동안 저장해서 해결
- 모든 순환신경망(RNN)들은 모듈들이 반복되는 고리 형태 구조를 가짐
- 일반적인 순환신경망에서는 모듈 내부에 하나의 하이퍼볼릭 탄젠트 층만 있음
- LSTM도 다른 순환신경망들 처럼 반복적인 고리 형태를 가지지만, 모듈 내부의 구조가 다름
(2) LSTM의 구조
- LSTM은 기본적으로 입력 게이트, 삭제 게이트, 출력 게이트 등으로 구성되고, 각 게이트는 정보의 흐름을 조절
- 삭제 게이트는 이전의 정보중 필요 없는 정보를 삭제
- 입력 게이트는 새로운 정보들 중에서 어떤 것을 셀 상태에 저장할지 결정
- 셀 상태는 이전 정보를 저장하고 전달
- 출력 게이트는 어떤 부분의 정보를 다음 단계로 출력할 지 결정
- LSTM의 핵심 구조는 셀 상태(cell state)로 기존 RNN과의 차별점
- 셀 상태는 일부 연산만을 수행하면서 신경망 내에서 전달됨
- 셀 상태의 정보를 수정하려면 게이트를 통해서 연산을 수행해야함
- LSTM의 모듈에서 은닉 상태를 전달 받으면 처음으로 하는 일은 삭제 게이트를 통해 셀 상태에서 필요 없는 정보를 삭제하는 것
- 처음에 은닉 상태 과 입력값 를 합치고(concatenate) 삭제 게이트 층의 가중치와 곱한 후 시그모이드 층에 넣음
- 삭제 게이트의 출력값은 로 입력값과 은닉 상태의 가중치는 서로 다름
- 시그모이드* 층을 통해서 출력된 결과값은 0과 1 사이의 수
- 출력값이 0이면 전부 삭제하라는 의미이고 1이면 전부 저장하라는 의미로 이를 통해 셀 상태에 저장된 정보를 삭제
* 시그모이드 함수 :
- 입력 게이트에서는 삭제 게이트 이후에 셀 상태에 새로운 정보를 추가함
- 시그모이드 층을 통해 삭제 게이트에서 했던 과정과 유사하게 은닉 상태 과 입력값 를 합친 벡터를 0과 1사이의 값으로 변환해서 출력
- 시그모이드 층을 지나 생성되는 벡터 는 셀 상태에 새롭게 추가되는 값들을 정함
- 은닉 상태 과 입력값 를 합친 벡터는 하이퍼볼릭 탄젠트 층을 지나 후보값을 형성
- 후보값 은 -1에서 1사이의 값으로 셀 상태에 실제로 추가되는 값
- 입력 게이트의 출력 값은 로 후보값 중에서 벡터를 통해 저장할 값만 남김
- 이전 셀 상태 에서 삭제할 값과 새롭게 추가할 값을 정했으므로 셀 상태를 최신화함
- 삭제 게이트를 통해 구한 와 를 곱하고 와 를 곱한 값을 더해 새로운 셀 상태 를 구함
- 새롭게 구한 셀 상태는 다음 모듈로 정보를 전달
- 마지막으로 새로운 셀 상태와 기존 은닉 상태와 입력값을 통해 모듈의 출력값을 구함
- 출력할 값을 선택하기 위해 x _{t}와 h _{t-1}을 합친 벡터를 시그모이드 층에 넣어 출력값 o _{t} = sigma (W _{xh(o)} x _{t} +W _{hh(o)} h _{t−1} +b _{h(o)} )를 구함
- 새로운 셀 상태 $C {t}$를 하이퍼볼릭 탄젠트 함수에 넣은 값을 o _{t}에 곱해서 새로운 은닉 상태 $h \{t} =o _{t} ODOT `tanh(C _{t} )$를 계산
Reference
1) https://colah.github.io/posts/2015-08-Understanding-LSTMs/
'인공지능 > 딥러닝' 카테고리의 다른 글
Pytorch - Tutorials(파이토치 모델 학습 코드 설명) (1) | 2024.04.09 |
---|---|
Transformer (2) | 2024.03.17 |
Attention Mechanism (1) | 2024.03.17 |
인공 신경망 종류 (3) Seq2Seq (0) | 2024.03.17 |
인공 신경망의 종류 (1) RNN (0) | 2024.03.17 |