๐น RNN(์ํ ์ ๊ฒฝ๋ง, Recurrent Neural Network)์ด๋?
RNN์ ์ํ์ค ๋ฐ์ดํฐ(์๊ฐ์ ๋ฐ๋ผ ๋ณํ๋ ๋ฐ์ดํฐ)๋ฅผ ์ฒ๋ฆฌํ๋ ์ธ๊ณต ์ ๊ฒฝ๋ง์
๋๋ค.
โ
๊ธฐ์กด์ ์ ๊ฒฝ๋ง๊ณผ ๋ฌ๋ฆฌ, ์ด์ ๋จ๊ณ์ ์ ๋ณด๋ฅผ ๊ธฐ์ตํ์ฌ ์ฐ์์ ์ธ ๋ฐ์ดํฐ(๋ฌธ์ฅ, ์์ฑ, ์ฃผ๊ฐ ๋ฑ)์ ๊ฐํจ
โ
์์ฐ์ด ์ฒ๋ฆฌ(NLP), ์์ฑ ์ธ์, ์๊ณ์ด ๋ฐ์ดํฐ ๋ถ์(์ฃผ์ ์์ธก) ๋ฑ์ ํ์ฉ
๐น RNN์ ํต์ฌ ๊ฐ๋
๊ธฐ์กด์ **์ผ๋ฐ์ ์ธ ์ ๊ฒฝ๋ง(Fully Connected Network, CNN)**์ ๋
๋ฆฝ์ ์ธ ์
๋ ฅ์ ์ฒ๋ฆฌํฉ๋๋ค.
ํ์ง๋ง RNN์ “์ํ ๊ตฌ์กฐ”๋ฅผ ๊ฐ์ง๋ฉฐ, ์ด์ ๋จ๊ณ์ ์ถ๋ ฅ์ ๋ค์ ๋จ๊ณ์ ์
๋ ฅ์ผ๋ก ํ์ฉํฉ๋๋ค.
๐ ์์ : ๋ฌธ์ฅ ์์ธก
๐ฌ ์
๋ ฅ: "๋๋ ๋ฐฅ์"
โ ์ถ๋ ฅ: "๋จน๋๋ค"
๐ฌ ์
๋ ฅ: "๋๋ ์ํ๋ฅผ"
โ ์ถ๋ ฅ: "๋ณธ๋ค"
๐ ์ผ๋ฐ ์ ๊ฒฝ๋ง์ "๋๋"
๊ณผ "๋ฐฅ์"
์ ๋ณ๊ฐ์ ์
๋ ฅ์ผ๋ก ๋ค๋ฃจ์ง๋ง,
๐ RNN์ “๋๋”์ด๋ ๋จ์ด๋ฅผ ๊ธฐ์ตํ ์ฑ "๋ฐฅ์"
์ ์
๋ ฅ์ผ๋ก ๋ฐ์ “๋จน๋๋ค”๋ฅผ ์์ธก!
๐น RNN์ ๊ตฌ์กฐ
RNN์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ๋ณต๋๋(hidden state๋ฅผ ๊ณต์ ํ๋) ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
โ RNN ๊ธฐ๋ณธ ๊ตฌ์กฐ
- ์ ๋ ฅ(Input): ์ํ์ค ๋ฐ์ดํฐ (์: ๋จ์ด, ์์ฑ ์ ํธ, ์ฃผ๊ฐ ๋ฑ)
- ์จ์ ์ํ(Hidden State, h): ์ด์ ๋จ๊ณ์ ์ ๋ณด๋ฅผ ๊ธฐ์ต
- ์ถ๋ ฅ(Output): ์์ธก๋ ๊ฐ (์: ๋ค์ ๋จ์ด, ๊ฐ์ ๋ถ์ ๊ฒฐ๊ณผ ๋ฑ)
๐ RNN ์์ht=f(Whhtโ1+Wxxt)h_t = f(W_h h_{t-1} + W_x x_t)htโ=f(Whโhtโ1โ+Wxโxtโ)yt=Wyhty_t = W_y h_tytโ=Wyโhtโ
โ
ํ์ฌ ์ํ hth_thtโ = ์ด์ ์ํ htโ1h_{t-1}htโ1โ + ํ์ฌ ์
๋ ฅ xtx_txtโ
โ
์ด๋ ๊ฒ ์ด์ ์ ๋ณด๊ฐ ๋ฐ์๋๋ฉด์ “์ํ”๋๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง
๐น RNN์ด ๊ฐ๋ ฅํ ์ด์
โ
์์ฐจ์ ์ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ฐ๋ฅ โ ํ
์คํธ, ์์ฑ, ์ฃผ๊ฐ ๋ฑ ์๊ฐ์ ๋ฐ๋ผ ๋ณํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ์ ์์
โ
์ด์ ์ ๋ณด ๊ธฐ์ต ๊ฐ๋ฅ โ ๋ฌธ์ฅ์ด๋ ์๊ณ์ด ํจํด์ ์ธ์ํ๋ ๋ฐ ์ ์ฉ
โ
๋งค๊ฐ๋ณ์ ๊ณต์ โ CNN๋ณด๋ค ์ฐ์ฐ๋์ ์ค์ผ ์ ์์
๐น RNN์ ํ๊ณ (Vanishing Gradient Problem)
ํ์ง๋ง RNN์ ๊ธด ์ํ์ค๋ฅผ ๋ค๋ฃฐ ๋ ๋ฌธ์ ๊ฐ ์์ ๐ข
- ๊ธฐ์ต์ด ๊ธ๋ฐฉ ์ฌ๋ผ์ง โ “๋๋ ์ด์ ๋ง์๋ โฆ ๐” (๋๋ฌด ๊ธด ๋ฌธ์ฅ์์ “๋๋”์ ๊ธฐ์ต ๋ชปํจ)
- Vanishing Gradient (๊ธฐ์ธ๊ธฐ ์์ค ๋ฌธ์ ) โ ์ญ์ ํ ๊ณผ์ ์์ ๋ฉ๋ฆฌ ๋จ์ด์ง ์ ๋ณด๊ฐ ์ ๋ฌ๋์ง ์์
- ์๋ฅผ ๋ค์ด, ์ฒซ ๋จ์ด(“๋๋”)๊ฐ ๋ง์ง๋ง ๋จ์ด(“๋จน์๋ค”)์ ์ํฅ์ ์ฃผ๊ธฐ ์ด๋ ค์
๐น RNN์ ๋ฐ์ ๋ ํํ
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ๋ฐ์ ๋ RNN ๋ชจ๋ธ์ด ๋ฑ์ฅํจ!
โ 1. LSTM (Long Short-Term Memory)
LSTM์ RNN์ ๊ธฐ์ต๋ ฅ ๋ฌธ์ ๋ฅผ ๊ฐ์ ํ ๋ชจ๋ธ ๐
- ์ ์ํ(Cell State)์ ๊ฒ์ดํธ(Gates) ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ํ ์ ๋ณด๋ง ์ ํ์ ์ผ๋ก ๊ธฐ์ต
- ์ฅ๊ธฐ ๊ธฐ์ต(Long-term Dependency) ์ ์ง ๊ฐ๋ฅ
๐ LSTM์ ํต์ฌ ๊ตฌ์กฐ
1๏ธโฃ ์
๋ ฅ ๊ฒ์ดํธ(Input Gate) โ ์ ์ ๋ณด ์ผ๋ง๋ ์ ์ฅํ ์ง ๊ฒฐ์
2๏ธโฃ ๋ง๊ฐ ๊ฒ์ดํธ(Forget Gate) โ ๋ถํ์ํ ์ ๋ณด ์ญ์
3๏ธโฃ ์ถ๋ ฅ ๊ฒ์ดํธ(Output Gate) โ ์ต์ข
์ถ๋ ฅ ๊ฒฐ์
๐ ์์ : ๋ฌธ์ฅ ์ฒ๋ฆฌ
๐ฌ "๋๋ ์ด์ ์์ฃผ ๋ง์๋ ํ๋ฒ๊ฑฐ๋ฅผ"
โ "๋จน์๋ค"
โ LSTM์ “๋๋”์ด๋ผ๋ ๋จ์ด๋ฅผ ์ค๋ซ๋์ ๊ธฐ์ตํ์ฌ ์ฌ๋ฐ๋ฅธ ์ถ๋ ฅ์ ์์ฑ ๊ฐ๋ฅ!
โ 2. GRU (Gated Recurrent Unit)
GRU๋ LSTM๋ณด๋ค ๋ ๊ฐ๋จํ ๊ตฌ์กฐ๋ก ๋น์ทํ ํจ๊ณผ๋ฅผ ๋
- ๊ณ์ฐ๋์ด ์ ๊ณ ๋น ๋ฆ
- LSTM๋ณด๋ค ๊ฐ๋จํ์ง๋ง ์ฑ๋ฅ์ ๊ฑฐ์ ๋น์ท
- NLP์์ LSTM๊ณผ GRU ์ค ํ๋๋ฅผ ์ ํํด์ ์ฌ์ฉํจ
๐น RNN vs CNN ๋น๊ต
๋ชจ๋ธ | ์ฃผ์ ํน์ง | ์ฌ์ฉ ์์ |
---|---|---|
CNN | ์ด๋ฏธ์ง, ๊ณต๊ฐ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ | ์ด๋ฏธ์ง ๋ถ๋ฅ, ๊ฐ์ฒด ํ์ง |
RNN | ์ํ์ค ๋ฐ์ดํฐ ์ฒ๋ฆฌ | ์์ฐ์ด ์ฒ๋ฆฌ, ์์ฑ ์ธ์, ์ฃผ๊ฐ ์์ธก |
LSTM | ์ฅ๊ธฐ ๊ธฐ์ต ๊ฐ๋ฅ | ๋ฌธ์ฅ ์์ฑ, ๋ฒ์ญ, ์์ฑ ์ธ์ |
GRU | LSTM๋ณด๋ค ๊ฐ๋ณ๊ณ ๋น ๋ฆ | ์ฑ๋ด, ์ค์๊ฐ ๋ฒ์ญ |
๐น RNN ์ ์ฉ ์ฌ๋ก
๐ ์์ฐ์ด ์ฒ๋ฆฌ(NLP) โ ๋ฒ์ญ, ๊ฐ์ฑ ๋ถ์, ์ฑ๋ด
๐ ์์ฑ ์ธ์ โ Siri, Google Assistant
๐ ์๊ณ์ด ์์ธก โ ์ฃผ๊ฐ ์์ธก, ๋ ์จ ์์ธก
๐ ์์จ์ฃผํ โ ์ฐจ๋ ์ผ์ ๋ฐ์ดํฐ ๋ถ์
๐น ๊ฒฐ๋ก
โ
RNN์ ์ํ์ค ๋ฐ์ดํฐ(ํ
์คํธ, ์์ฑ, ์ฃผ๊ฐ ๋ฑ)๋ฅผ ๋ค๋ฃจ๋ ๊ฐ๋ ฅํ ์๊ณ ๋ฆฌ์ฆ
โ
ํ์ง๋ง ๊ธฐ์ต ์ ์ง ๋ฌธ์ (๊ธฐ์ธ๊ธฐ ์์ค)๊ฐ ์กด์ฌ โ LSTM, GRU๊ฐ ํด๊ฒฐ์ฑ
โ
์์ฐ์ด ์ฒ๋ฆฌ, ์์ฑ ์ธ์, ์๊ณ์ด ๋ถ์์์ ํ์์ ์ธ ๋ฅ๋ฌ๋ ๋ชจ๋ธ ๐
โ ์ด๋ฏธ์ง๋ฅผ ๋ค๋ฃฌ๋ค๋ฉด CNN, ์ํ์ค๋ฅผ ๋ค๋ฃฌ๋ค๋ฉด RNN!
โ ๋ ๊ธด ๊ธฐ์ต์ด ํ์ํ๋ฉด LSTM์ด๋ GRU ์ฌ์ฉ!