Basic RNN ์๊ณ ๋ฆฌ์ฆ์ ์ฝ์
The cat, which already ate โฆ., was full
The cats, which already ate โฆ., were full
- ๋ฌธ์ฅ ์ด๋ฐ๋ถ์ cat/cats์ ๋ฐ๋ผ ๋ฌธ์ฅ ํ๋ฐ๋ถ์ was/were๊ฐ ๋ฌ๋ผ์ง๋ ๊ฒ์ ์ ์ ์์
- ์ด๋ ๋ฌธ์ฅ ์ด๋ฐ๋ถ์ ๋จ์ด๊ฐ ๋ฌธ์ฅ ํ๋ฐ๋ถ์ ์ํฅ์ ๋ผ์น๋ค๋ ๊ฒ์ ์๋ฏธ
- RNN์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง์ ํ ํฐ๋ค์ ๋ค๋ฃจ๊ธฐ ๋๋ฌธ์ ๊น์ ์ ๊ฒฝ๋ง์ผ๋ก ์ด๋ฃจ์ด์ ธ์์ผ๋ฉฐ
- Back Propagation์ ์ฌ์ฉํด ๊ฐ์ค์น๋ฅผ ์ ๋ฐ์ดํธํ๊ธฐ ๋๋ฌธ์
- ๋ฌธ์ฅ ์ด๋ฐ๋ถ์ ๋จ์ด๊ฐ ๊ฒฐ๊ณผ์ ๋ฏธ์น๋ ์ํฅ์ ๋ฌธ์ฅ ํ๋ฐ๋ถ์ ๋จ์ด๊ฐ ๊ฒฐ๊ณผ์ ๋ฏธ์น๋ ์ํฅ์ผ๋ก๋ถํฐ ๊ณ์ฐ๋๋ค
- ์ ๊ฒฝ๋ง์ด ๊น์ด์ง์๋ก ๋ฌธ์ฅ ์ด๋ฐ๋ถ์ ๋จ์ด๊ฐ ๊ฒฐ๊ณผ์ ๋ฏธ์น๋ ์ํฅ์ด ์ ์ด์ ธ
- ๊ฐ๊น์ด ๊ณณ์ ์๋ ์ ๋ ฅ์ ์ํฅ์ ๋ ๋ง์ด ๋ฐ์ ์ ๋ฐ์ ์๋ค
- ์ด๊ฒ์ด Basic RNN ์๊ณ ๋ฆฌ์ฆ์ ์ฝ์ ์ด๋ค
LSTM
- Long Short-Term Memory ์ ์ฝ์
- ํ์์คํ ์ด ๊ธด ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ์ตํ๊ธฐ ์ํด ๊ณ ์๋ ์ํ์ธต
- ๋จ๊ธฐ ๊ธฐ์ต์ ์ค๋ ๊ธฐ์ตํ๊ธฐ ์ํด ๊ณ ์๋จ
- ์ ๋ ฅ๊ณผ ๊ฐ์ค์น๋ฅผ ๊ณฑํ๊ณ ์ ํธ์ ๋ํด ํ์ฑํ ํจ์๋ฅผ ํต๊ณผ์ํค๋ ๊ตฌ์กฐ๋ฅผ ์ฌ๋ฌ ๊ฐ ๊ฐ์ง๊ณ ์์ (4๊ฐ)
- ์ ๋ ฅ ๊ฒ์ดํธ, ์ญ์ ๊ฒ์ดํธ, ์ถ๋ ฅ ๊ฒ์ดํธ ์ญํ ์ ํ๋ ์์ ์ ์ด ํฌํจ๋์ด ์์
- ์๋ ์ํ ์ธ์ ์ ์ํ๋ฅผ ์ถ๋ ฅํ๋ฉฐ ์ ์ํ๋ ๋ค์ ์ถฉ์ผ๋ก ์ ๋ฌ๋์ง ์์ผ๋ฉฐ ํ์ฌ ์ ์์๋ง ์ํ๋จ
์ ์ํCell state
- ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ์กด์ฌ์ด๋ฉฐ ์๋ ์ํ์ ๋ฌ๋ฆฌ ๋ค์ ์ธต์ผ๋ก ์ ๋ฌ๋์ง ์๊ณ ์ ์์ ์ํ๋ง ๋๋ ๊ฐ
- ์ปจ๋ฒ ์ด์ด ๋ฒจํธ์ ๊ฐ์์ State๊ฐ ๊ฝค ์ค๋ ๊ฒฝ๊ณผํ๋๋ผ๋ Gradient๊ฐ ์ ์ ํ๋จ
- Gate๋ผ ๋ถ๋ฆฌ๋ ๊ตฌ์กฐ์ ์ํด ์ ๋ณด๊ฐ ์ถ๊ฐ๋๊ฑฐ๋ ์ ๊ฑฐ๋๋ฉฐ
Gate๋ Training์ ํตํด ์ด๋ค ์ ๋ณด๋ฅผ ์ ์งํ๊ณ ๋ฒ๋ฆด์ง ํ์ตํ๋ฉฐ
Cell State๋ฅผ ๋ณดํธํ๊ณ ์ ์ดํ๋ ์ญํ ์ ํจ- Forget gate (f) : ๊ณผ๊ฑฐ ์ ๋ณด๋ฅผ ์๊ธฐ ์ํ ๊ฒ์ดํธ
- Inout gate (i) : ํ์ฌ ์ ๋ณด๋ฅผ ๊ธฐ์ดํ๊ธฐ ์ํ ๊ฒ์ดํธ
- Output gate (o) : ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ณด๋ด๊ธฐ ์ํ ๊ฒ์ดํธ
- ๋ชจ๋ Gate๋ ์๊ทธ๋ชจ์ด๋ ํจ์๋ฅผ ์ฌ์ฉํ๊ณ ์ถ๋ ฅ ๊ฐ์ด 0์ด๋ฉด ์๋ฌด๊ฒ๋ ๋๊ธฐ์ง ๋ง๋ผ, 1์ด๋ฉด ๋ชจ๋ ๊ฒ์ ๋๊ฒจ๋ผ
- Forget Gate (f) : ๊ณผ๊ฑฐ ์ ๋ณด๋ฅผ ์ผ๋ง๋ ์์์ง์ ๋ํ ๋จ๊ณ
- ์ ๋ ฅ๊ฐ๊ณผ ์๋์ํ๋ฅผ ๊ฐ์ค์น์ ๊ณฑํ ๋ค์ ์๊ทธ๋ชจ์ด๋ ํจ์๋ฅผ ํต๊ณผ์ํจ ํ 0๊ณผ 1 ์ฌ์ด์ ๊ฐ์ ์ด์ Cell State์ ๊ณฑํจ
- ๊ฒฐ๊ณผ๊ฐ์ด 1์ด๋ฉด โ์ด์ ์ํ์ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ณด์กดํด๋ผโ๊ฐ ๋๊ณ , 0์ด๋ฉด โ์ด์ ์ํ์ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ฒ๋ ค๋ผโ๊ฐ ๋จ
- Input Gate (i) : ํ์ฌ ์ ๋ณด๋ฅผ ์ผ๋ง๋ ๊ธฐ์ตํ ๊ฒ์ธ์ง์ ๋ํ ๋จ๊ณ
- ์ ๋ ฅ๊ฐ๊ณผ Hidden State๋ฅผ ๊ฐ๊ฐ ๋ค๋ฅธ ๊ฐ์ค์น์ ๊ณฑํ ๋ค์ ํ๋๋ ์๊ทธ๋ชจ์ด๋ ํจ์๋ฅผ ํต๊ณผ ์ํค๊ณ , ํ๋๋ tanhํจ์๋ฅผ ํต๊ณผ์ํจ ํ ๋ ๊ฒฐ๊ณผ๋ฅผ ๊ณฑํ ํ ์ด์ Cell State์ ๋ํจ
- Output Gate (o) : ๋ค์ State๋ก ๋ด๋ณด๋ผ Output(Hidden state)์ ๊ตฌํ๋ ๋จ๊ณ
- ์ ๋ ฅ๊ฐ๊ณผ ์ด์ ํ์์คํ ์ Hidden State๋ฅผ ๊ฐ์ค์น์ ๊ณฑํ ํ ํ์ฑํ ํจ์(์๊ทธ๋ชจ์ด๋)๋ฅผ ํต๊ณผ์ํค๊ณ ์ด์ Cell State๋ฅผ tanh ํ์ฑํ ํจ์๋ฅผ ํต๊ณผ์ํจ ๊ฐ๊ณผ ๊ณฑํ์ฌ Hidden State๋ฅผ ๋ง๋ ๋ค
- State Update : ์ด์ Cell State์ธ C(t-1)๋ฅผ ์
๋ฐ์ดํธํด์ ์๋ก์ด Cell State์ธ C(t) ๋ง๋๋ ๋จ๊ณ
- Forget gate๋ฅผ ๊ณฑํ๊ณ
- Input gate๋ฅผ ๋ํ๊ณ
- ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ๋ค์ Cell State๋ก ๋ด๋ณด๋
GRUGated Recurrent Unit
- LSTM์ ๊ตฌ์ฑํ๋ Time-step์ Cell์ ์กฐ๊ธ ๋ ๊ฐ์ํํ ๋ฒ์
- GRU๋ LSTM๋ณด๋ค ํ์ต ์๋๊ฐ ๋น ๋ฅด๋ค๊ณ ์๋ ค์ ธ์์ง๋ง, ์ฌ๋ฌ ํ๊ฐ์์ GRU๋ LSTM๊ณผ ๋น์ทํ ์ฑ๋ฅ์ ๋ณด์ธ๋ค๊ณ ์๋ ค์ ธ ์์
- ๋ฐ์ดํฐ ์์ด ์ ์ ๋๋, ๋งค๊ฐ ๋ณ์์ ์์ด ์ ์ GRU๊ฐ ์กฐ๊ธ ๋ ๋ซ๊ณ ๋ฐ์ดํฐ ์์ด ๋ ๋ง์ผ๋ฉด LSTM์ด ๋ ๋ซ๋ค๊ณ ์๋ ค์ ธ ์์
- LSTM๊ตฌ์กฐ
- GRU๊ตฌ์กฐ
- ์ฐจ์ด์
- GRU๋ LSTM๊ณผ ๋ค๋ฅด๊ฒ Gate๊ฐ 2๊ฐ์ด๋ฉฐ, Reset Gate(r)๊ณผ Update Gate(z)๋ก ์ด๋ฃจ์ด์ ธ์๋ค
- Reset Gate๋ ์ด์ ์ํ๋ฅผ ์ผ๋ง๋ ๋ฐ์ํ ์ง
- Update Gate๋ ์ด์ ์ํ์ ํ์ฌ ์ํ๋ฅผ ์ผ๋ง๋งํผ์ ๋น์จ๋ก ๋ฐ์ํ ์ง
- LSTM์์์ Cell State์ Hidden State๊ฐ Hidden State๋ก ํตํฉ๋์๊ณ
- Update Gate๊ฐ LSTM์์์ forget gate, input gate๋ฅผ ์ ์ดํ๋ค
- GRU์๋ Output Gate๊ฐ ์๋ค
- GRU๋ LSTM๊ณผ ๋ค๋ฅด๊ฒ Gate๊ฐ 2๊ฐ์ด๋ฉฐ, Reset Gate(r)๊ณผ Update Gate(z)๋ก ์ด๋ฃจ์ด์ ธ์๋ค
- Reset Gate
- ์ด์ ์ํ์ hidden state์ ํ์ฌ ์ํ์ x๋ฅผ ๋ฐ์ sigmoid ์ฒ๋ฆฌ
- ์ด์ hidden state์ ๊ฐ์ ์ผ๋ง๋ ํ์ฉํ ๊ฒ์ธ์ง์ ๋ํ ์ ๋ณด
- Update Gate
- ์ด์ ์ํ์ Hidden state์ ํ์ฌ ์ํ์ x๋ฅผ ๋ฐ์ sigmoid ์ฒ๋ฆฌ
- LSTM์ Forget gate, Input gate์ ๋น์ทํ ์ญํ ์ ํ๋ฉฐ,
- ์ด์ ์ ๋ณด์ ํ์ฌ ์ ๋ณด๋ฅผ ๊ฐ๊ฐ ์ผ๋ง๋ ๋ฐ์ํ ๊ฒ์ธ์ง์ ๋ํ ๋น์จ์ ๊ตฌํ๋ ๊ฒ์ด ํต์ฌ์ด๋ค
- Update gate์ ๊ณ์ฐ ํ ๋ฒ์ผ๋ก LSTM์ Forget gate + Input gate์ ์ญํ ์ ๋์ ํ ์ ์๋ค.
- ์ต์ข ๊ฒฐ๊ณผ๋ ๋ค์ ์ํ์ Hidden state๋ก ๋ณด๋ด์ง