2023. 4. 6. 16:16ใ๐ง๐ป๐ซ Ideas/(Advanced) Time-Series
1. RNN(Recurrent Neural Network)
RNN(Recurrent Neural Network)์ ์์๋ฅผ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ์ฐ์ด๋ ๋ฅ๋ฌ๋ ๋ชจ๋ธ์ด๋ค.
์ด ๋ชจ๋ธ์ ์ํคํ ์ฒ๋ ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด recurrentํ(์ฌํํ๋) ๋ฐฉ์์ผ๋ก ์ธํ์ ์ฒ๋ฆฌํ๋๋ก ๋์์ธ๋์๋ค.
์ ๊ทธ๋ฆผ์์์ฒ๋ผ ์ด ๋ชจ๋ธ์ ์ธํ์ ์์๋๋ก ๋ฐ์ ์ฒ๋ฆฌํ๋๋ฐ, ๊ทธ ๊ณผ์ ์์ ์๋์ธต์ธ h์ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํ์ฌ ๋ค์ ์์๋ก ๋๊ฒจ์ค๋ค๋ ๊ฒ์ด ํน์ง์ด๋ค. ์ฆ, ๊ฒฐ๊ณผ๋ฅผ ์ฐ์ถํ๋ ๋ฐ ์์ด์ ์ธํ์ ์ฐ์ฐ์ ๋ณด๋ฅผ ๊ณ์ํด์ ์ ๋ฌํ๋ฉฐ ์ ๋ฐ์ดํธ๋ฅผ ํด ๋๊ฐ๋ ๊ฒ์ด๋ค.
์ด๋ฌํ ํน์ง์ ์์์ ๋ฐ๋ผ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ ์์ฐ์ด๋ ์๊ณ์ด ๋ฐ์ดํฐ์ ์ฒ๋ฆฌ์ ์ ํฉํ๊ธฐ ๋๋ฌธ์ RNN์ ๊ทธ ์์ ๋ค์ ์ฒ๋ฆฌํ๋ ๋ฅ๋ฌ๋ ๋ชจ๋ธ๋ก ๋๋ฆฌ ์ด์ฉ๋์๋ค.
1-1) RNN์ ์น๋ช ์ ์ธ ํ๊ณ
RNN์ ๋ค๋ฅธ ๋ฅ๋ฌ๋ ๋ชจ๋ธ๊ณผ ๋ฌ๋ฆฌ, ์์(sequence)๋ฅผ ๋ฐ์ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค.
๊ทธ๋ฌ๋, ์ธํ์ ์์๊ฐ ์ฅ๊ธฐ์ ์ผ๋ก ์ด์ด์ง ๋, ์ฆ, ๋ชจ๋ธ์ ํฌ๊ธฐ๊ฐ ์ปค์ง ๋, ๊ทธ๋ฌํ ํจ๊ณผ๊ฐ ํฌ๊ฒ ๋จ์ด์ง๋ ๋ฌธ์ ๊ฐ ์๋ค.
๊ทธ๋ฌํ ๋ฌธ์ ๋ฅผ "์ฅ๊ธฐ ์์กด์ฑ ๋ฌธ์ (long-term dependency)"๋ผ๊ณ ํ๋ค.
์ฅ๊ธฐ ์์กด์ฑ ๋ฌธ์ ๋ ๊ฐ์ค์น๋ฅผ ์ ๋ฐ์ดํธํ๋ ๋ฅ๋ฌ๋์ ํต์ฌ ๊ณผ์ ์ธ ์ค์ฐจ ์ญ์ ํ ๊ณผ์ ์์ ๋ฐ์ํ๋ค.
์ธํ์ด ๊ธธ์ด์ง๋ค๋ ๊ฒ์ ๊ทธ๋งํผ ๋ชจ๋ธ์ด ์ปค์ง๊ณ ๊ทธ ๊ตฌ์กฐ๊ฐ ๊น์ด์ง๋ค๋ ๊ฒ์ ์๋ฏธํ๋๋ฐ, ์ด๋ ์ญ์ ํ์ ๊ฐ์ค์น๋ฅผ ์ ๋ฐ์ดํธํ๋ ์ฐ์ฐ์ด ๋ ๊ธธ์ด์ง๋ ๊ฒ์ ์๋ฏธํ๊ธฐ๋ ํ๋ค.
๋ฌธ์ ๋ ๊ฐ์ค์น๋ฅผ ์ ๋ฐ์ดํธ ํ๊ธฐ ์ํด ํ์ฑํ ํจ์์ ๋ฏธ๋ถ๊ฐ(๋ณดํต rnn์์๋ tanh๋ฅผ ์ด์ฉ)์ ๊ณฑํด์ฃผ๋๋ฐ ๊ทธ๊ฒ์ด 1๋ณด๋ค ์๋ค๋ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ 1๋ณด๋ค ์์ ๊ฐ์ ๊ณ์ ๊ณฑํด์ฃผ๋ ๊ทธ ์ํฅ๋ ฅ์ ํฌ๋ฏธํด์ง๊ณ ๊ฒฐ๊ตญ ๋จผ ์์ ์ผ์๋ก ๊ทธ ์ํฅ๋ ฅ์ ์ ๋๋ก ๋ฐ์ํ์ง ๋ชปํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
์์์ ๋ฐ๋ผ ์๋ฏธ์ ๊ทธ ๋งฅ๋ฝ์ด ์์ฑ๋๋ sequentialํ ๋ฌธ์ ์์ ์ด๋ ํ ํฌ์ธํธ์ ๋ฌธ๋งฅ์ ์ ๋๋ก ์ง์ด๋ด์ง ๋ชปํ๋ค๋ฉด ์ด๋ ์น๋ช ์ ์ธ ๋ฌธ์ ์ผ ์ ๋ฐ์ ์๋ค.
์ค์ ๋ก ์๊ณ์ด ๋ถ์์ ์์ด์ "์ฅ๊ธฐ ์๊ณ์ด ์์ธก ๋ฌธ์ "๋ฅผ ๋ค๋ฃฐ ๋ RNN์ ๊ทธ ์์ธก ์ ํ๋๊ฐ ํฌ๊ฒ ๋จ์ด์ง๋ค.
2. LSTM(Long Short-Term Memory)
๊ธฐ๋ณธ RNN(๋ฐ๋๋ผ RNN)์ ์์์ ์ธ๊ธํ๋๋ก ๊ทธ ๋งค์ปค๋์ฆ์ ์ฅ๊ธฐ ์์กด์ฑ ๋ฌธ์ ๋ผ๋ ๋จ์ ์ ์๊ณ ์๋ค. ๋ฐ๋ผ์ ์ด๋ ๋จ๊ธฐ์์ ์ฌ์ ํ ์ข์ ์ฑ๋ฅ์ ๋ณด์ผ ์ ์์ง๋ง, ์ธํ์ด ๊ธธ์ด์ง๋ ์ฅ๊ธฐ ์์ ์๋ ๊ทธ ์ฑ๋ฅ์ด ํฌ๊ฒ ๋จ์ด์ง ์ํ์ด ์๋ค.
๋ฐ๋ผ์ ๊ทธ๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ธฐ๋ณธ RNN์ ๊ตฌ์กฐ๋ฅผ ๋ฐํ์ผ๋ก ๋ด๋ถ์ "๋คํธ์ํฌ"๋ฅผ ์์ ํ์ฌ ๊ณผ๊ฑฐ ๋ด์ง๋ ๋จผ ์์ ์ ์ ๋ณด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ด๋ฆฌ๋ ค๋ ์์ด๋์ด๋ฅผ ํตํด LSTM์ด๋ผ๋ ๋ชจ๋ธ์ด ์ ์๋์๋ค.
LSTM ๋ชจ๋ธ์ RNN์ ํ๊ณ์ ์ธ ์ฅ๊ธฐ ์์กด์ฑ(long dependemcy) ๋ฌธ์ ๋ฅผ ํ์ด๋ธ ๋ฅ๋ฌ๋ ๋ชจ๋ธ๋ก, ์ค๋๋ ์๋ ์ฌ์ ํ ์๊ณ์ด ๋ถ์์ ๋ํ์ ์ธ ์๋ฃจ์ ์ผ๋ก ์ด์ฉ๋๊ณ ์๋ค.
2-1) LSTM ๋คํธ์ํฌ
์ ๊ทธ๋ฆผ์ ๊ธฐ๋ณธ RNN ๊ตฌ์กฐ์ ์ฌ๋ฌ ๋คํธ์ํฌ๋ฅผ ์ถ๊ฐํ LSTM ๋ชจ๋ธ์ ์ ๋ณดํ๋ฆ์ ๋ณด์ฌ์ค๋ค.
์ด ์ค ํ ๋ธ๋ก์ ๊ธฐ๋ฅ์ ํ๋ํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
LSTM ๋คํธ์ํฌ์ ํต์ฌ์ ๋ฐ๋ก "์ ๋ณด ํ๋ฆ์ ์ ์ด"์ด๋ค.
์ด ๋คํธ์ํฌ์ ๋ชฉ์ ์ ํ์ํ ์ ๋ณด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ธฐ์ตํ๊ณ , ์ด๋ฅผ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐ์ํ๊ธฐ ์ํด ์ ๋ณด์ ํ๋ฆ์ ํต์ ํ๋ ๊ฒ์ด๋ค.
๊ทธ๋ฌํ ์ญํ ์ ํ๋ ํต์ฌ ์์๋ค์ ๋ค์๊ณผ ๊ฐ๋ค.
*C(์ ์ํ), h(์๋ ์ํ), F(๋ง๊ฐ ๊ฒ์ดํธ), I(์ ๋ ฅ ๊ฒ์ดํธ), O(์ถ๋ ฅ ๊ฒ์ดํธ)
*ํ์ฑํ ํจ์: σ(์๊ทธ๋ชจ์ด๋, 0~1์ ๊ฒฐ๊ณผ๊ฐ ์ฐ์ถ), tanh(ํ์ดํผ๋ณผ๋ฆญ ํ์ ํธ, -1~1์ ๊ฒฐ๊ณผ๊ฐ ์ฐ์ถ)
1. Cell State (C)
์ด๋ ๋ง ๊ทธ๋๋ก ์ ์ ์ํ๋ฅผ ์๋ฏธํ๋ ๊ฒ์ผ๋ก, ์๋์ธต๋ค์ ํต๊ณผํ๋ "์ ๋ณด ํ๋ฆ์ ์ํ"๋ผ๊ณ ์ดํดํ ์ ์๋ค.
์ ์ํ๋ ์๋์์ ์ค๋ช ํ ์ฌ๋ฌ Gate๋ค์ ๊ฒฐ๊ณผ๊ฐ๊ณผ ์ฐ์ฐ๋์ด ๊ฒฐ๊ณผ์ ์ผ๋ก ํ ์๋์ธต์ ๊ฒฐ๊ณผ๊ฐ์ ๋ง๋๋ ๋ฐ ์ฐ์ธ๋ค.
์ ๊ทธ๋ฆผ์์์ฒ๋ผ C๋ ์๋์ธต์ ์ฐ์ฐ์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ฐ์ด ๊ณฑํด์ง๊ณ ๋ํด์ ธ t์ ํ๋ฆ์ ๋ฐ๋ผ ๊ทธ ์ํ๊ฐ ๋ฐ๋๋ค.
์ด๋ ๊ฒ t๋ฅผ ๋ฐ๋ผ ์๋์ธต๋ค์ ํต๊ณผํ๋ C๋ฅผ global C๋ผ๊ณ ๋ ํ๋ค. ๋ฐ๋ฉด์ local C๋ ํน์ ์์ ์์์ ์๋์ธต์ด ๋ง๋ค์ด๋ด๋ ๊ฒฐ๊ณผ๊ฐ์ด๋ค.
global C๊ฐ ๊ฑฐ์น๋ ํ๋ฆ์ ์์ฝํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
* ๊ฐ์ค์น: ๊ณผ๊ฑฐ์ h์ ํ์ฌ์ ์ธํ x๋ฅผ ๋ฐ์ ์๊ทธ๋ชจ์ด๋ ํจ์๋ฅผ ํต๊ณผํ ๊ฐ(0~1), ๊ณผ๊ฑฐ ์๋์ํ์ ํ์ฌ ์ธํ์ ์ํฅ๋ ฅ์ ์กฐํฉํ ๊ฐ
- ๋ง๊ฐ ๊ฒ์ดํธ์์ ๋ง๋ ๊ฐ์ค์น์ ์ํด ์ด์ C, ์ฆ C_t-1์ ์ํฅ๋ ฅ์ ๊ฒฐ์ ํ๋ค.(์์ด๋ฒ๋ฆด ์ง, ์๋ ๊ธฐ์ตํ ์ง)
- ์ธํ ๊ฒ์ดํธ์์ ๋ง๋ local C์ ๊ทธ ๊ฐ์ค์น๋ฅผ ๊ณฑํ ๊ฐ๊ณผ ๋ํด์ง๋ค.
- ์ธํ ๊ฒ์ดํธ์ ๊ฐ๊ณผ ๋ํด์ง global C๋ ์ถ๋ ฅ ๊ฒ์ดํธ๋ฅผ ํต๊ณผํ๋ฉฐ ๊ฐ์ค์น๊ฐ ๊ณฑํด์ ธ ๊ทธ ์์ ์ ์๋์ธต์ ์ํ์ธ h_t๋ฅผ ์ฐ์ถํ๋ค.
์ด ๊ณผ์ ์ ์ดํดํ๊ธฐ ์ํด ๋ ๋ค๋ฅธ ํต์ฌ ์์ด๋์ด์ธ ์ฌ๋ฌ Gate๋ค์ ์ดํดํด์ผ ํ๋ค.
2. Forget Gate (F)
์ด๋ ์ด๋ฆ์ฒ๋ผ ๋ถํ์ํ ์ ๋ณด๋ฅผ ์ง์์ฃผ๋ ์ญํ ์ ํ๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก ๋งํ๋ฉด ์ด ๊ฒ์ดํธ์ ์ญํ ์ ์ด์ ์ ์ํ์ธ C_t-1์ ์ํฅ๋ ฅ์ ์์ด๋ฒ๋ฆด ์ง, ๊ธฐ์ตํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ด๋ค.
๊ตฌ์ฒด์ ์ผ๋ก ์ด ๊ฒ์ดํธ๋ ๊ณผ๊ฑฐ์ h์ ํ์ฌ์ ์ธํ x๋ฅผ ๋ฐ์ "์๊ทธ๋ชจ์ด๋"ํจ์์ ํต๊ณผ์ํค๋๋ฐ, ์ดํ ๊ทธ ๊ฒฐ๊ณผ๊ฐ์ ์ด์ ์ ์ํ(C_t-1)์ ๋ํ ๊ณผ๊ฑฐ h, ํ์ฌ x์ ๊ฐ์ค์น๋ก์จ ๊ณฑํด์ค๋ค.
์๊ทธ๋ชจ์ด๋ ํจ์๋ 0์์ 1 ์ฌ์ด์ ๊ฒฐ๊ณผ๊ฐ์ ์ฐ์ถํ๊ธฐ ๋๋ฌธ์ 0์ ๊ฐ๊น์ฐ๋ฉด C_t-1์ ์์ด๋ฒ๋ฆฌ๋ ๊ฒ์ด๊ณ , 1์ ๊ฐ๊น์ฐ๋ฉด ๊ธฐ์ตํ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ค.
3. Input Gate (I)
์ ๋ ฅ ๊ฒ์ดํธ๋ ์๋ก์ด ์ ๋ณด๋ฅผ ์ผ๋ง๋ ์ ์ํ(C)์ ๋ฐ์ํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ์ญํ ์ ํ๋ค.
์ด๋ ๋ง๊ฐ ๊ฒ์ดํธ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ณผ๊ฑฐ์ h์ ์๋ก์ด ์ธํ x๋ฅผ ๋ฐ์ Local C(์ ๊ทธ๋ฆผ์์ g)๋ฅผ ์์ฑํ๊ณ , ์ด๋ฅผ ์ผ๋ง๋ C์ ๋ฐ์ํ ์ง ๊ฒฐ์ ํ๋ ๊ฒ์ด๋ค.
๊ตฌ์ฒด์ ์ผ๋ก ๊ณผ๊ฑฐ์ h์ ์๋ก์ด ์ธํ x, ๋ ์ธํ์ ํ์ดํผ๋ณผ๋ฆญ ํ์ ํธ ํจ์(tanh)์ ์๊ทธ๋ชจ์ด๋ ํจ์(σ)๋ฅผ ๋ชจ๋ ํต๊ณผํ๋๋ฐ, tanh๋ ํ์ฌ ๋ด๋ถ ๋คํธ์ํฌ์ ๋ํ ์ ์ํ์ธ local C๋ฅผ ๋ง๋ค๊ณ , σ๋ ๊ทธ local C๋ฅผ global C์ ์ผ๋ง๋ ๋ฐ์ํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ค.
์ฆ, σ(์๊ทธ๋ชจ์ด๋)๋ ์ฌ๊ธฐ์๋ ์ด๋ ํ ๊ฐ์ค์น๋ฅผ ๋ง๋ค์ด๋ด๋ ์ญํ ์ ํ๊ณ ์๋ ๊ฒ์ด๋ค.
4. Output Gate (O)
์ถ๋ ฅ ๊ฒ์ดํธ๋ C(์ ์ํ)๋ฅผ ๋ฐ์์ ํ ์๋์ธต์ ์ถ๋ ฅ์ธ h(์๋์ํ)๋ฅผ ์ถ๋ ฅํ๋ ์ญํ ์ ํ๋ค.
์ด๋ ์ ๋ ฅ ๊ฒ์ดํธ๋ค์ ํตํด ๋ง๋ค์ด์ง global C๋ฅผ ๋ฐ์์ค๊ณ , ๋ง์ฐฌ๊ฐ์ง๋ก ๊ณผ๊ฑฐ์ h์ ์๋ก์ด ์ธํ x๋ฅผ ๋ฐ์ ๊ฐ์ค์น๋ฅผ ๋ง๋ ๋ค.
๊ตฌ์ฒด์ ์ผ๋ก ์ ์ํ์ ๊ฐ์ด ํ์ดํผ๋ณผ๋ฆญ ํ์ ํธ ํจ์๋ฅผ ์ง๋์ค๊ณ , ๊ณผ๊ฑฐ์ h์ ์๋ก์ด ์ธํ x๊ฐ ์๊ทธ๋ชจ์ด๋ ํจ์๋ฅผ ํต๊ณผํ๋ฉฐ ๊ฐ์ค์น๋ฅผ ๋ง๋ ๋ค.
์ด ๋ ํจ์์ ๊ฒฐ๊ณผ๊ฐ๋ค์ ๊ณฑํ ๊ฐ์ด ํ ์์ t์์์ ์๋์ธต์ ๊ฒฐ๊ณผ์ธ ์๋์ํ h_t์ด๋ค.
์ด ์๋์ํ๋ ์ถ๋ ฅ์ธต๊ณผ ๋ค์ ์์ ์ ์๋์ธต์ผ๋ก ๋๊ฒจ์ง๋ค.