일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- WBP
- CNN
- motion matching
- cv
- deep learning
- 딥러닝
- Diffusion
- WinAPI
- 폰트생성
- animation retargeting
- Few-shot generation
- userwidget
- UE5
- Generative Model
- Stat110
- 디퓨전모델
- BERT
- multimodal
- Font Generation
- dl
- ddpm
- 언리얼엔진
- NLP
- 생성모델
- RNN
- 모션매칭
- GAN
- Unreal Engine
- inductive bias
- ue5.4
- Today
- Total
Deeper Learning
Gated Recurrent Units (GRU) 본문
Why GRU?
기본 RNN을 구조를 사용할 경우 Deep Neural Network의 고질적인 문제인 Gradient vanishing과 Exploding gradient가 발생한다.
이를 해결하기 위한 기존 RNN와 다른 구조의 RNN이 필요하다.
Structure
GRU는 2개의 Gate(r: reset, z: update)를 사용하여 계산이 이루어진다.
위의 더 자세한 그림을 통해 보면 현재 시점의 input x와 전 시점의 hidden unit의 activations인 h가 하나의 Cell에 input으로 입력되는 것은 Basic RNN과 같다. 하지만 2개의 Gate와 tanh activation function이 추가로 GRU에서 사용된다.
Weight관련 표기는 $W_{rc}$는 c와의 내적으로 r을 만드는데 필요한 Weight라고 정한다.
위 식을 간략하게 표현하기위해 위와 같이 2개의 Weight matrix를 열 방향으로 쌓고 Input matrix r과 x를 행 방향으로 쌓으면 다음과 같이 표현이 가능하다.
*는 Hadamard product으로 element-wise product이다.
직전 시점의 정보인 $h_{t-1}$은 reset gate의 $r_{t}$와 Hadamard product 되어 $x_{t}와 함께 현 시점의 memory인 $\tilde{h}$를 계산하는데 사용된다.
마지막으로 최종 $h_{t}$는 앞서 계산된 update gate $z_{t}$와 Hadamard product로 산출이 가능하다.
과거의 정보인 $h_{t-1}$와 과거의 정보, reset gate, 현재의 input를 모두 사용하여 도출한 현재의 정보인 $\tilde{h}$는 update gate값에 따라 비중이 정해진다.
$h_{t}$는 다음 시점의 GRU cell에 전달된다.
Reference
Cho et al. (2014). Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling. arXiv:1412.3555
'AI > Deep Learning' 카테고리의 다른 글
Feature Extraction (0) | 2020.12.04 |
---|---|
Long Short-Term Memory (LSTM) (0) | 2020.12.04 |
Language Model (0) | 2020.12.01 |
Recurrent Neural Network (0) | 2020.12.01 |
Fréchet inception distance (FID) (0) | 2020.11.30 |