The purpose of this post
LSTM network๋ ๊ฐ๋ฐ๋ ์ง ์ค๋๋ ๋ชจ๋ธ์์๋ ๋ถ๊ตฌํ๊ณ ์๋ง์ ๋ถ์ผ์์ ์ค๋ซ๋์ ์ฌ์ฉ๋์๋ ๋ชจ๋ธ์ด๋ค. ์์ฆ์๋ ๋ ์ฑ๋ฅ์ด ์ข์ ๋ชจ๋ธ๋ค์ด ๋ง์ด ๋์ค๋ฉด์ ์์ ๋งํผ์ ๋ช ์ฑ์ ๋ณด์ฌ์ฃผ์ง๋ ๋ชปํ๊ณ ์์ง๋ง, LSTM์ด ์ ๋ง ๋๋จํ๋ ๋ชจ๋ธ์ด์๋ค๋ ์ ์ ๋ณํจ์ด ์๋ค. ๊ทธ๋์!! ์ด๋ฒ ํฌ์คํธ์์๋ ์ด LSTM network์ ๋ํด์ ์์๋ณด๋ ค๊ณ ํ๋ค. ๋ณธ ํฌ์คํธ๋ colah's blog๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑ๋์๋ค.
Table of Contents
1. RNN $($Recurrent Neural Networks$)$
2. ์ฅ๊ธฐ์์กด์ฑ$($Long-Term Dependencies$)$ ๋ฌธ์
3. LSTM Networks
3-1. LSTM์ ํต์ฌ ์์ด๋์ด
3-2. ๋จ๊ณ ๋ณ๋ก LSTM ์์๋ณด๊ธฐ
3-3. GRU
RNN
๋ง์ฝ ์ง๊ธ์ ์์ธก์ ์ํด ์ด์ ์ ์ ๋ณด๋ค์ ์ฐธ๊ณ ํ ์ ์๋ค๋ฉด ์ด๋จ๊น? ์ด๋ฌํ ์์ด๋์ด๋ก๋ถํฐ ์์๋ ๊ฒ RNN์ด๋ค. RNN์ ๋ชจ๋ธ์ loop๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ณด๊ฐ ์ง์๋ ์ ์๋๋ก ํ์๋ค. ๋ค์์ ๊ทธ๋ฆผ์ด RNN์ loop ๊ตฌ์กฐ์ด๋ค.
์์ ๊ทธ๋ฆผ์์ ์ ๊ฒฝ๋ง ๋คํธ์ํฌ๋ $A$, ์ ๋ ฅ๊ฐ์ $x_t$, ๊ทธ๋ฆฌ๊ณ ์ถ๋ ฅ๊ฐ์ $h_t$์ด๋ค. loop๋ network์ ํ ์คํ ์์ ๋ค์ ์คํ ์ผ๋ก ์ ๋ณด๋ฅผ ๋๊ฒจ์ค ์ ์๋ค. ์ด๋ฌํ loop์ ๊ตฌ์กฐ๋ฅผ ์ ์๊ฐํด๋ณด๋ฉด ๋๊ฐ์ network๋ฅผ ์ฌ๋ฌ๊ฐ ๋ณต์ ํด๋์ ๊ผด์ด๋ผ๊ณ ์๊ฐํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ์ network๋ ๋ค์์ ํ์์์๊ฒ ๋ฉ์ธ์ง๋ฅผ ์ ๋ฌํ๋ ๊ผด์ด๋ค. ๋ค์์ ๊ทธ๋ฆผ์ด ์ด๋ฅผ ๋ํ๋ด๊ณ ์๋ค.
์ด๋ฌํ ์ฒด์ธ ๊ฐ์ ํ๊ฒฝ์ RNN์ด ์ํ์ค์ ๋ฆฌ์คํธ๋ ๋ฐ์ ํ๊ฒ ์ฐ๊ด๋์ด ์์์ ์๋ ค์ค๋ค. ๊ทธ๋ฆฌ๊ณ ์ด RNN์ผ๋ก๋ถํฐ ํ์๋ ๊ฒ์ด ๋ฐ๋ก 'LSTM'์ด๋ค.
์ฅ๊ธฐ์์กด์ฑ$($Long-Term Dependencies$)$ ๋ฌธ์
RNN์ ํน์ง ์ค ํ๋๋ ์ด์ ์ ์ ๋ณด๋ฅผ ํ์ฌ์ task์ ์ฐ๊ฒฐํด์ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ด๋ค. ์ด๋ค ๊ฒฝ์ฐ์๋ ๊ฐ๊น์ด ์ต๊ทผ์ ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ฐธ๊ณ ํ๊ณ ๋ ์์ธก์ ์งํํ ์ ์๋ ๋ฐ๋ฉด, ์ด๋ ํ ๊ฒฝ์ฐ์๋ ์์ฃผ ์ค๋ ์ ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์์ผ๋ง ์์ธก์ ์งํํ ์ ์๋ ๊ฒฝ์ฐ๋ ์๋ค. ์๋ฅผ ๋ค์ด์ '๊ตฌ๋ฆ์ ___ ์ ์์ต๋๋ค.'์ ๊ฐ์ ๋ฌธ์ฅ์์ ๋น์นธ์ '๊ตฌ๋ฆ'์ ์ฐธ๊ณ ํ์ฌ ์์ฝ๊ฒ 'ํ๋'์ด๋ผ๋ ๋ต์ ๋ผ ์ ์๋ค. ํ์ง๋ง, '๋๋ ํ๋์ค์์ ์ด์์ต๋๋ค. ..... ๊ทธ๋์ ๋๋ ____๋ฅผ ํ ์ค ์๋๋ค.'์ ๊ฐ์ ๋ฌธ์ฅ์์ ๋น์นธ์ ์ธ์ด ์ค ํ๋๋ผ๊ณ ๋ ์์ธกํ ์ ์์ง๋ง, ์์ธํ๊ฒ ํ๋์ค์ด๋ผ๊ณ ์์ธก์ ํ๊ธฐ ์ํด์๋ ์ด์ ๋ฌธ์ฅ์ 'ํ๋์ค์์ ์ด์์ต๋๋ค' ๋ผ๋ ๋ถ๋ถ์ ์ฐธ๊ณ ํด์ผ๋ง ์ ์ ์๋ค. ๋ฐ๋ผ์ ์ฐ๊ด๋ ์ ๋ณด์์ gap์ด ๋ฐ์ํ๊ฒ ๋๋ค. ๋ง์ฝ ์ด gap์ด ์ปค์ง๊ฒ ๋๋ค๋ฉด, RNN์ ์ด๋ฅผ ์ํํ ์ ์๋ค๋ ํฌ๋ํฐ ๋จ์ ์ ๊ฐ์ง๊ณ ์๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ฅ๊ธฐ์์กด์ฑ ๋ฌธ์ ๋ผ๊ณ ํ๋ค.
LSTM์ ์ด๋ฌํ RNN์ ์ฅ๊ธฐ์์กด์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ชจ๋ธ์ด๋ค!! ์ด์ LSTM์ ๋ํด ์์ธํ ์์๋ณด๊ฒ ๋ค.
LSTM Networks
LSTM์ ์ฝ์๋ก, Long SHort Term Memory์ ์ฝ์์ด๋ค. ์ด LSTM์ ํน์ํ RNN์ผ๋ก ์ฅ๊ธฐ์์กด์ฑ์ ํ์ตํ ์ ์๋ค๋ ํน์ง์ ๊ฐ์ง๊ณ ์๋ค. LSTM์ ์ฅ๊ธฐ์์กด์ฑ ๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํด ๊ฐ๋ฐ๋์๋ค. ๋ฐ๋ผ์ ์ ๋ณด๋ฅผ ์ค๋ซ๋์ ๊ธฐ์ตํ๋ ๊ฒ์ด ๊ธฐ๋ณธ ์ต์ ์ผ๋ก ๊น๋ ค ์๋ค.
๋ชจ๋ RNN์ ์ ๊ฒฝ๋ง ๋คํธ์ํฌ๋ฅผ ์ฒด์ธ์ฒ๋ผ ๋ฐ๋ณตํ๋ ํํ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ผ๋ฐ์ ์ธ RNN์ ์ด ๋ฐ๋ณต ๋ชจ๋์ด ํ๋์ tanh layer๋ก ๋งค์ฐ ๊ฐ๋จํ๊ฒ ๊ตฌ์ฑ๋์ด ์๋ค.
LSTM๋ RNN๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก chain ๊ตฌ์กฐ๋ฅผ ๋๊ณ ์์ง๋ง, ๊ฐ๊ฐ์ ๋ชจ๋์ ์๋ก ๋ค๋ฅธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ํ๋์ ์ ๊ฒฝ๋ง ๋ ์ด์ด๋ฅผ ๊ฐ์ง๊ธฐ ๋ณด๋ค๋, ์๋ก ์ํธ์์ฉํ๋ 4๊ฐ์ ํน๋ณํ ๋ฐฉ๋ฒ์ ๊ฐ์ง๊ณ ์๋ค.
์ด ๋ณต์กํ ๊ตฌ์กฐ์ ๋๋ฌด ๊ฑฑ์ ํ์ง ์์๋ ๋๋ค!! ์ง๊ธ๋ถํฐ ์ฒ์ฒํ ์ด ๊ตฌ์กฐ์ ๋ํด ์์ธํ๊ณ ์๊ธฐ ์ฝ๊ฒ ์์๋ณผํ ๋!! ๊ทธ๋ฌ๊ธฐ ์ํด์ ๋ค์์ ๋จ์ํ ์ฉ์ด๋ค์ ์ง๊ณ ๋์ด๊ฐ์!!
- ๋ ธ๋์ ์ฌ๊ฐํ: ์ ๊ฒฝ๋ง ๋ ์ด์ด
- ๋ถํ์ ๋๊ทธ๋ผ๋ฏธ: ์ฐ์ฐ์. ๋ฒกํฐ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ๊ณฑํ๋ ๋ฑ์ ์ฐ์ฐ์ ์ํ
- ์ผ๋ฐ ํ์ดํ: ๋ฒกํฐ๊ฐ ์ด๋ํจ
- ํ๋๋ก ํฉ์ณ์ง๋ ํ์ดํ: concatenate๋
- ๊ฐ๋ผ์ง๋ ํ์ดํ: ๋ณต์ ๋์ ๋ฐ๋ก๋ฐ๋ก ๊ฐ๋ผ์ง๊ฒ ๋
LSTM์ ํต์ฌ ์์ด๋์ด
LSTM์ ํต์ฌ ์์ด๋์ด๋ ๋๊ฐ ๋ญ๋ผ ํด๋ cell state์ด๋ค. ์ด cell state๋ ์๋ ๊ทธ๋ฆผ์ฒ๋ผ LSTM ๋ชจ๋ ๋ด๋ถ์์ ๋งจ ์์ชฝ์ ์์นํ ์ง์ ์ ์๋ฏธํ๋ค. cell state๋ ํ๋์ ์ปจ๋ฒ ์ด์ด ๋ฒจํธ ๊ฐ์ ๋๋์ผ๋ก ๋ชจ๋ chain์ ์ญ์ฑ ์ง๋๊ฐ๋๋ฐ ๊ทธ ์ฌ์ด์ ์กฐ๊ธ์ linear reaction์ด ๋ฐ์ํ๋ค. ์ ๋ณด๋ ๋งค์ฐ ์ฝ๊ฒ ๊ทธ์ ๋ณํจ์์ด ํ๋ฌ๊ฐ๊ธฐ๋ง ํ ๋ฟ์ด๋ค!
LSTM์ ์ด cell state์ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์์จ ์ ์๋ ๋ฅ๋ ฅ์ ๊ฐ์ง๊ณ ์๋๋ฐ, ์ด๋ gate๋ผ ๋ถ๋ฆฌ๋ ๊ตฌ์กฐ์ ์ํด ์ธ์ฌํ๊ฒ ๊ท์ ๋๋ค. gate๋ ์ ๋ณด๊ฐ ์ผ๋ง๋ ํ๋ฌ๊ฐ ์ง์ ๋ํด ๊ฒฐ์ ํ๋๋ฐ, sigmoid layer์ pointwise ๊ณฑ ์ฐ์ฐ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
sigmoid layer์ 0๊ณผ 1 ์ฌ์ด์ ๊ฐ์ ์ถ๋ ฅํ๋๋ฐ, ์ฌ๊ธฐ์ '0'์ '์ด๋ค ์ ๋ณด๋ ์ง๋๊ฐ๊ฒ ํ์ง ์๊ฒ ๋ค!'์ด๊ณ , '1'์ '๋ชจ๋ ์ ๋ณด ๋ค ์ง๋๊ฐ~'์ ๊ฐ์ ์๋ฏธ์ด๋ค.
LSTM์ ์ด๋ฌํ gate๋ฅผ 3๊ฐ ๊ฐ์ง๊ณ ์๋๋ฐ, ์ด gate๋ cell state๋ฅผ ๋ณดํธํ๊ณ ์กฐ์ข ํ๋ค.
๋จ๊ณ ๋ณ๋ก LSTM ์์๋ณด๊ธฐ
LSTM์ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ ์ด๋ค ์ ๋ณด๊ฐ cell state์ ๋ค์ด๊ฐ์ผํ ์ง ์ ํ๋ ๊ฒ์ด๋ค. ์ด๊ฒ์ 'forget gate layer'๋ผ ๋ถ๋ฆฌ๋ sigmoid layer์ ์ํด ๊ฒฐ์ ๋๋ค. ์ด์ ์ ์ถ๋ ฅ๊ฐ $h_{t-1}$๊ณผ $x_t$๊ฐ sigmoid์ ์ ๋ ฅ์ผ๋ก ๋ฐ์๋ค์ฌ์ ธ์ 0๊ณผ 1 ์ฌ์ด์ ๊ฐ $f_t$๊ฐ ์ถ๋ ฅ๋๊ณ , ์ด ๊ฐ์ด cell state์ธ $C_{t-1}$์ ์ํฅ์ ์ค๋ค. ์์ ๋งํ๋๋ก '0'์ด๋ฉด, '์์ ํ ์ ๊ฑฐํ๋ค!'์ด๊ณ , '1'์ด๋ฉด '์์ ํ ์ ์งํ๋ค'๋ผ๋ ์๋ฏธ์ด๋ค. ์ด๋ฅผ ๊ทธ๋ฆผ๊ณผ ์์์ผ๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
๋ค์์ผ๋ก ๋ ๋ฒ์งธ ๋จ๊ณ๋ ์ด๋ค ์๋ก์ด ์ ๋ณด๊ฐ cell state์ ์ ์ฅ๋ ์ง ๊ฒฐ์ ํ๋ ๊ฒ์ด๋ค. ์ด ๋จ๊ณ๋ ๋ ๊ฐ์ part๋ก ๋๋์ด์ ธ ์๋ค. ๋จผ์ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ 'input gate layer'๋ผ ๋ถ๋ฆฌ๋ sigmoid layer์ ์ง๋์ ์ด๋ค ๊ฐ์ updateํ ์ง ์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ๋ฒ์งธ ๋จ๊ณ๋ tanh layer์ ์ง๋์ ์๋กญ๊ฒ state์ ์ถ๊ฐ๋ ๊ฐ์ธ $\tilde{C}_{t}$์ ์ฐ์ถํ๋ค. ๋ง์ง๋ง์ผ๋ก, ์ด ๋ ๊ฐ์ ํฉ์ณ์ state์ ๋ํ update๋ฅผ ์ต์ข ์ ์ผ๋ก ์์ฑํ๋ค. ์ด๋ฅผ ๊ทธ๋ฆผ๊ณผ ์์์ผ๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
์ด์ ์ค๋๋ cell state์ธ $C_{t-1}$์ ์๋ก์ด cell state $C_{t}$๋ก ์ ๋ฐ์ดํธํ ์๊ฐ์ด๋ค.
์ค๋๋ state์ $f_t$๋ฅผ ๊ณฑํ๊ณ , ์๊ธฐ๋ก ํ๋ ์ ๋ณด๋ค์ ์๋๋ค. ๊ทธ ๋ค์์, $i_t$์ $\tilde{C}_t$๋ฅผ ํฉ์น๋ค. ์ด ๊ฐ์ ์๋ก์ด candidate value๊ฐ ๋๊ณ , ๊ฐ๊ฐ์ state value๋ฅผ ์ผ๋ง๋ ์ ๋ฐ์ดํธํ ์ง ๊ฒฐ์ ํ๋ค. ์ด๋ฅผ ๊ทธ๋ฆผ๊ณผ ์์์ผ๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
๋ง์ง๋ง์ผ๋ก, ์ด๋ค ๊ฒ์ด ์ถ๋ ฅ์ผ๋ก ๋์์ผ ํ ์ง ์ ํด์ผ ํ๋ค. ์ด ์ถ๋ ฅ์ cell state์ ๊ธฐ๋ฐ์ด ๋์ง๋ง, ํํฐ๋ง๋ ๋ฒ์ ์ด๋ค. ์ฒซ ๋ฒ์งธ๋ก, sigmoid gate๋ฅผ ๊ฑฐ์ณ์ cell state์ ์ด๋ค part๋ฅผ ์ถ๋ ฅํ ์ง ๊ฒฐ์ ํ๋ค. ๊ทธ ๋ค์์, cells state๋ฅผ tanh layer์ ์ง๋๊ณ sigmoid gate์ ์ถ๋ ฅ๊ณผ ๊ณฑํ๋ค. ๊ทธ๋์ ๊ฒฐ๊ตญ์ ์ํ๋ ๋ถ๋ถ์ ์ถ๋ ฅํ ์ ์๊ฒ ๋๋ค! ์ด๋ฅผ ๊ทธ๋ฆผ๊ณผ ์์์ผ๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
GRU $($Gated Recurrent Unit$)$
GRU ์ฆ, Gated Recurrent Unit์ LSTM์์ ์ข ๋ ๋๋ผ๋งํฑํ ๋ณ๋์ ์ค ๋ชจ๋ธ์ด๋ค. ์ด ๋ชจ๋ธ์์๋ ํ๋์ ์ ๋ฐ์ดํธ ๊ฒ์ดํธ์ forget gate์ input gate๋ฅผ ํฉ์ณค๋ค. ๊ทธ๋ฆฌ๊ณ cell state์ hidden state ๋ํ ํฉ์น๊ณ , ์ด๋ ํ ๋ณ๋ ๋ํ ์ฃผ์๋ค. ์ด ๊ฒฐ๊ณผ๋ก ๋์ค๊ฒ ๋ ๋ชจ๋ธ์ ๊ธฐ์กด์ LSTM ๋ชจ๋ธ๋ณด๋ค ํจ์ฌ ๊ฐ๋จํ๋ค. ๋ค์์ ๊ทธ๋ฆผ์ GRU์ ๊ตฌ์กฐ๋ฅผ ๋ํ๋ธ ๊ฒ์ด๋ค.
์ฐธ๊ณ ๋ฌธํ ๋ฐ ์ฐธ๊ณ ์ด๋ฏธ์ง
https://colah.github.io/posts/2015-08-Understanding-LSTMs/
'Paper Reading ๐ > Deep Learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Zero-shot, One-shot, Few-shot Learning์ด ๋ฌด์์ผ๊น? (2) | 2023.03.12 |
---|---|
Prompt Engineering์ด ๋ฌด์์ผ๊น? (0) | 2023.03.01 |
LSTM vs GRU ๋ญ๊ฐ ๋ ๋์๊น?: Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling ๋ ผ๋ฌธ ๋ฆฌ๋ทฐ (1) | 2023.01.30 |
Distilling the Knowledge in a Neural Network ๋ ผ๋ฌธ ๋ฆฌ๋ทฐ (0) | 2023.01.26 |
CNN network์ ์ญ์ฌ (0) | 2022.12.14 |