일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- UE5
- motion matching
- 생성모델
- WinAPI
- cv
- Unreal Engine
- NLP
- 딥러닝
- Stat110
- BERT
- ue5.4
- deep learning
- 언리얼엔진
- Generative Model
- userwidget
- animation retargeting
- ddpm
- dl
- 폰트생성
- GAN
- Font Generation
- 디퓨전모델
- 모션매칭
- CNN
- RNN
- multimodal
- Few-shot generation
- WBP
- inductive bias
- Diffusion
- Today
- Total
Deeper Learning
Long Short-Term Memory (LSTM) 본문
LSTM
GRU와 비슷하게 기초 RNN에 Gate를 추가한 구조의 모델
Forget Gate, Update Gate, Output Gate를 사용합니다.
Structure
Forget Gate는 previous cell state (memory)인 $c^{<t-1>}$를 얼마나 "Forget" 할 것인지 결정합니다.
$\tilde{c}^{<t>}$는 현재 시점의 정보를 담고 있습니다.
Update Gate는 현재 시점의 정보를 담고 있는 $\tilde{c}^{<t>}$의 특정 부분을 최종 $c^{<t>}로 전달하기 위한 mask 역할을 합니다.
Output Gate는 현시점에서 output을 정하기 위한 Gate입니다.
Forward Propagation
위에서 설명한 Gate들을 사용하여 Forward Propagation이 이루어집니다.
현시점의 cell state는 전 시점의 cell state인 \$c^{<t-1>}과 Forget Gate의 원소곱과 candidate cell state인 $\tilde{c}^{<t>}$와 Update Gate의 원소곱의 합으로 계산이 가능합니다.
수식을 Gate의 역할에 따라 해석해보면 전 시점에서 전달된 memory들을 얼마나 잊어버릴지 Forget Gate를 통해 결정하고 현재 시점에서 생성된 memory들을 얼마나 현재 최종 memory에 반영할 것인지 Update Gate를 통해 결정한다고 볼 수 있습니다.
다음으로 hidden state인 a는 Gate들의 값을 정할 때 그 시점의 input과 함께 사용됩니다. a는 cell state인 c의 값을 사용하여 계산이 가능합니다. 위와 같이 Output Gate와 $tanh(c^{<t>})의 원소곱으로 정의됩니다.
수식을 해석하면 Output Gate가 다음 hidden state를 생성하는 데 사용되는 memory의 부분과 정도를 정한다고 생각할 수 있습니다.
마지막으로 y값은 기초 RNN 구조와 마찬가지로 activations인 a를 input으로 신경망을 통과시킵니다. activation function으로는 다중 분류 모델의 경우 softmax를 사용합니다.
Back Propagation
위는 Basic RNN 역전파가 이루어질 때 계산식입니다.
식이 복잡해 보이지만 Chain Rule을 사용하면 쉽게 구할 수 있는 값입니다.
LSTM은 위와 같이 추가로 cell state에 대한 역전파가 이루어져 더욱 복잡해집니다.
위와 같은 식을 사용하여 직접 gradient의 계산이 가능합니다. (*는 element-wise product를 의미합니다)
cct는 cancdidate cell state로 $\tilde{c}^{<t>}$를 말합니다.
Reference
Klaus Greff et al. (2017). LSTM: A Search Space Odyssey / arXiv:1503.04069v2 [cs.NE]
Coursera Deep Learning Specialization - Sequence models
'AI > Deep Learning' 카테고리의 다른 글
Inception score (IS) (0) | 2020.12.04 |
---|---|
Feature Extraction (0) | 2020.12.04 |
Gated Recurrent Units (GRU) (0) | 2020.12.03 |
Language Model (0) | 2020.12.01 |
Recurrent Neural Network (0) | 2020.12.01 |