์์ฆ NLP์ ์ ๋ฐ์ ์ธ ๋ฅ๋ฌ๋์ ๋ํ ๊ณต๋ถ๋ฅผ ํ๋ ์ค์ด๋ค.
Transformer ๋ชจ๋ธ์ด ๋๋ฌด ์ ๋ช ํด์, ์ด์ฉ๋ค ๋ณด๋ Transformer์ attention ๋ฉ์ปค๋์ฆ์ด ์ฌ์ฉ๋ ๋ชจ๋ธ๋ค๋ถํฐ ๊ณต๋ถํ๊ฒ ๋๋๋ฐ, ๋ ผ๋ฌธ์์ ์ด์ ๋ชจ๋ธ๋ค์ ๋ํ ์ง์์ด ๋ง์ด ์ฐ์ด๋ ๊ฒ์ ๋ณด๊ณ ์์ ์ค๋์ ๋ชจ๋ธ๋ถํฐ ๊ณต๋ถํด๋ณด๊ณ ์ ํ๋ค.
(์ฌ์ค hidden state๊ณผ back propagation ๋ฑ์ ๊ดํ ์ ํํ ์ง์์ด ์์ด์, ์ด ๋ถ๋ถ์ ๋ํ ๊ฐ๋ ์ ์ก๊ณ ๊ฐ์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.)
๊ทธ๋ฆฌํ์ฌ ์ด๋ฒ์๋ RNN์ ๊ฐ๋ ์ ์ง์คํด์ ๋ค๋ค๋ณด๊ณ ์ ํ๋ค.
์ฌ์ค LSTM ๋
ผ๋ฌธ์ ๋ดค๋๋ฐ ์ ๋ง ๋ง๋ ์๋๋ ์์๋ค์ด ๋ง์๊ณ , ์ดํดํ๊ธฐ๊ฐ ๋์ด๋ฌด ์ด๋ ค์์ ๊ณต๋ถํด์ผ ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค...
์ฐธ๊ณ :
- [๋ฐ๋๋์ด/๋ฅ๋ฌ๋] RNN(Recurrent Neural Network) - ์ํ ์ ๊ฒฝ๋ง ์ด๋ก ๋ฐ ๊ฐ๋ |์์ฑ์ ๋ฐ๋๋์ด
- https://velog.io/@cha-suyeon/%EC%98%A4%EC%B0%A8%EC%97%AD%EC%A0%84%ED%8C%8CBackpropagation
1. RNN์ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ
๊ธฐ์กด์ Neural Network๋ ์ด์ ์ ์ผ์ด๋ ์ฌ๊ฑด์ ๋ฐํ์ผ๋ก ์ดํ์ ์ผ์ด๋๋ ์ฌ๊ฑด์ ๋ํด ์์ธกํ์ง ๋ชปํ๋ค. ์๋์ธต(hidden layer)์์ ํ์ฑํ ํจ์๋ฅผ ์ง๋ ๊ฐ์ ๋ฌด์กฐ๊ฑด์ ์ผ๋ก ์ถ๋ ฅ์ธต(output layer) ๋ฐฉํฅ์ผ๋ก ํฅํ๋ Feed-Forward์ ํน์ง์ ์ง๋๋ค.
์ด์ ๋ค๋ฅด๊ฒ RNN์ hidden layer์ ๋ ธ๋์์ ํ์ฑํ ํจ์๋ฅผ ํตํด ๋์จ ๊ฒฐ๊ณผ๊ฐ์ ์ถ๋ ฅ์ธต ๋ฐฉํฅ์ผ๋ก ๋ณด๋ด๋ฉด์, ๋ค์ ์๋์ธต ๋ ธ๋์ ๋ค์ ๊ณ์ฐ์ ์ ๋ ฅ์ผ๋ก ๊ฐ์ง๋ ํน์ง์ ๊ฐ์ง๋ค. ์ด์ ๊ฐ์ ๊ตฌ์กฐ๋ ์๊ณ์ด ๋ฐ์ดํฐ (Sequence Data)๋ฅผ ๋ค๋ฃจ๊ธฐ์ ์ ํฉํ ๊ตฌ์กฐ์ด๋ค.
2. RNN vs. ANN
์์์ ์ค๋ช ํ๋ฏ์ด, RNN์ ์ํ ์ ๊ฒฝ๋ง์ผ๋ก์จ ์ธ์ ํ ๋ค์ ๋ ธ๋๋ก๋ง ๊ณ์ฐ๋๋ ๊ฒ์ด ์๋๋ผ ์๊ธฐ ์์ ์๊ฒ ํน์ ๊ทธ ์ ๋ ธ๋๋ก ๊ณ์ฐ๋๋ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ง Neural Network์ด๋ค. ๊ธฐ์กด์ ์๋ฐฉํฅ ์ ๊ฒฝ๋ง (Feed-Forward Network)์ ์๋ ๊ทธ๋ฆผ์ ํตํด ๋น๊ตํด๋ณด์.
(์ ๊ทธ๋ฆฌ๊ณ Feed-Forward Network๋ฅผ ANN์ด๋ผ๊ณ ๋ง์ด๋ค ๋ถ๋ฅด๋๋ผ.)
์ผ์ชฝ ๊ทธ๋ฆผ์์ ๋ณด๋ฏ์ด, ์ด๋ ๊ฒ ์ค์ค๋ก ๋์๊ฐ๋ ํ์ดํ๋ฅผ ๊ด์ฐฐํ ์ ์๋ค. ์ด๋ ๋ค์ ๊ทธ๋ฆผ์ฒ๋ผ ๊ฐ์ํํด์ ํํํ ์๋ ์๋ค.
์ ๊ทธ๋ฆผ์์ ๋ณด๋ฏ์ด, ๋งจ ๋ง์ง๋ง cell (์ด๋ก์ ์์) h_t๋ ์ด์ ๊น์ง์ ๋ชจ๋ ์ ๋ณด๋ค์ ํจ์ถ์ ์ผ๋ก ๋ด๊ณ ์์ ๊ฒ์ด๋ค.
๊ฒฐ๊ตญ RNN์์ ๋ค์ ์์ ์ ์ ๋ณด๋ ์ ์์ ์ ์ ๋ณด๋ง์ด ์๋๋ผ ์ด์ ๊น์ง์ ์ ๋ณด๋ค์ ๋ชจ๋ ๊ฐ์ง๊ณ ์์ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ด์ฒ๋ผ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ cell์ด๋ผ๊ณ ํ๋ฉฐ ํ์ฌ cell์ด ๊ฐ์ง๊ณ ์๋ ์ ๋ณด, ์ฆ ๋ค์ ์์ ์ผ๋ก ๋๊ฒจ์ค ์ ๋ณด๋ฅผ hidden state๋ผ๊ณ ํ๋ค.
RNN์ cell๋ค์ ๋ชจ๋ ๊ฐ์ ๊ฐ์ค์น W๋ฅผ ๊ณต์ ํ๋ค๋ ํน์ฑ์ด ์๋๋ฐ, ์๋ ๊ทธ๋ฆผ์์ ํด๋น ๊ฐ๋ ์ ์ ์ค๋ช ํด์ค๋ค.
์ฐธ๊ณ ) ์ ๊ทธ๋ฆผ๋ค์ ํ๋์ cell๋ง์ ๊ฐ์ง๊ณ ์๋๋ฐ, ์๋ ๊ทธ๋ฆผ์ฒ๋ผ cell๋ค์ ๋ง์ด ์์ ์ฌ๋ ค์ ๋ ๊น์ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค ์๋ ์๋ค.
3. RNN์ BPTT
๊ธฐ์กด์ back propagation์ ๋ค์ ๊ฐ์๋ฅผ ์ฐธ๊ณ ํ๋ฉด ๋งค์ฐ ์ ์ดํดํ ์ ์๋ค: https://youtu.be/1Q_etC_GHHk
๋จ์ผ ํผ์ ํธ๋ก
๋จ์ผ ํผ์ ํธ๋ก ์์๋ ๊ฒฐ๊ด๊ฐ์ ์ป์ผ๋ฉด ์ค์ ๊ฐ๊ณผ์ ๋น๊ต๋ฅผ ํตํด ์ค์ฐจ๋ฅผ ๊ตฌํ๊ณ , ์ด๋ฅผ ํ ๋๋ก ์ ๋จ๊ณ์์ ์ ํ ๊ฐ์ค์น๋ฅผ ์กฐ์ ํ๋ค.
์ด๋ ๋ค์๊ณผ ๊ฐ์ ๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ผ ์ ์๋ค.
๋ค์ธต ํผ์ ํธ๋ก
๋ง์ฐฌ๊ฐ์ง๋ก, ๋ค์ธต ํผ์ ํธ๋ก ์ญ์ ๊ฒฐ๊ด๊ฐ์ ์ค์ฐจ๋ฅผ ๊ตฌํด ์ด๋ฅผ ํ ๋๋ก ํ๋ ์์ ๊ฐ์ค์น๋ฅผ ์ฐจ๋ก๋ก ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ๋ฉฐ ์กฐ์ ํด ๊ฐ๋ค.
- output layer์ ๊ฐ์ค์น ์์
- hidden layer์ ๊ฐ์ค์น ์์
๊ทธ๋ฌ๋ค ๋ณด๋ ์ต์ ํ์ ๊ณ์ฐ ๋ฐฉํฅ์ด ์ถ๋ ฅ์ธต์์ ์์ํด ์์ผ๋ก ์งํ๋๋ค.
๊ทธ๋์ ๋ค์ธต ํผ์ ํธ๋ก ์์์ ์ต์ ํ ๊ณผ์ ์ ์ค์ฐจ ์ญ์ ํ(back propagation)์ด๋ผ ๋ถ๋ฅธ๋ค.
๊ทธ๋ฆผ์์๋ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์น๋ค:
- ์์์ ์ด๊ธฐ ๊ฐ์ค์น(W)๋ฅผ ์ค ๋ค ๊ฒฐ๊ณผ(y_out)์ ๊ณ์ฐํ๋ค.
- ๊ณ์ฐ ๊ฒฐ๊ณผ์ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฐ ์ฌ์ด์ ์ค์ฐจ๋ฅผ ๊ตฌํ๋ค.
- gradient descent๋ฅผ ์ด์ฉํด ๋ฐ๋ก ์ ๊ฐ์ค์น๋ฅผ ์ค์ฐจ๊ฐ ์์์ง๋ ๋ฐฉํฅ์ผ๋ก ์ ๋ฐ์ดํธํ๋ค.
- ์ ๊ณผ์ ์ ๋์ด์ ์ค์ฐจ๊ฐ ์ค์ด๋ค์ง ์์ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
๋๋ ์ฌ๊ธฐ์ gradient descent๋ก ์ด๋ป๊ฒ ์ค์ฐจ๊ฐ ์์์ง๋ ๋ฐฉํฅ์ผ๋ก ์ ๋ฐ์ดํธํ์ง ?? ๋ผ๊ณ ์๊ฐํ๋๋ฐ, ์ด๊ฒ์ ์๋ฏธ๋ ๋ฏธ๋ถ ๊ฐ์ด 0์ ๊ฐ๊น์์ง๋ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ๋ค๋ ๋ง์ด์๋ค.
์ฆ, '๊ธฐ์ธ๊ธฐ๊ฐ 0์ด ๋๋ ๋ฐฉํฅ'์ผ๋ก ๋์๊ฐ์ผ ํ๋๋ฐ, ์ด ๋ง์ ๊ฐ์ค์น์์ ๊ธฐ์ธ๊ธฐ๋ฅผ ๋บ์ ๋ ๊ฐ์ค์น์ ๋ณํ๊ฐ ์ ํ ์๋ ์ํ๋ฅผ ๋งํ๋ค.
๋ฐ๋ผ์ ์ค์ฐจ ์ญ์ ํ๋ฅผ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ํํํ๋ฉด ๊ฐ์ค์น์์ ๊ธฐ์ธ๊ธฐ๋ฅผ ๋นผ๋ ๊ฐ์ ๋ณํ๊ฐ ์์ ๋๊น์ง ๊ณ์ํด์ ๊ฐ์ค์น ์์ ์์ ์ ๋ฐ๋ณตํ๋ ๊ฒ์ด๋ค.
BPTT
RNN์์๋ ๋์ผํ ํ๋ ๋ ์ด์ด๊ฐ ๋ฐ๋ณต๋์ด ๊ฐ์ค์น ๋งคํธ๋ฆญ์ค๋ฅผ ๊ณต์ ํ๋ ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์, gradient๋ฅผ ๋๊ฒจ์ค ๋ ํ์ฌ ์๊ฐ ๋จ๊ณ๋ง์ด ์๋๋ผ ์ด์ ์๊ฐ์ ๋จ๊ณ๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ค.
์ด๋ฌํ ์ญ์ ํ ๋ฐฉ์์ BPPT(BackPropagation Through Time)๋ผ๊ณ ํ๋ค.
RNN์์ ์ ์ฒด loss์ ์ดํฉ์ ๊ฐ ํ์ ์คํ ์์์ loss์ ์ดํฉ์ผ๋ก ๋ํ๋ผ ์ ์๋๋ฐ, ๊ทธ๋ฆผ์ ๋ค์๊ณผ ๊ฐ๋ค:
RNN์์๋ ์ ์ฒด๊ฐ ๊ฐ์ ๊ฐ์ค์น W๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ๊ฐ ํ์ ์คํ ์ gradient๋ฅผ ๋ํด์ฃผ์ด ํ์ต์ํฌ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ์๋ฅผ ๋ค์ด t=3 ํ์ ์คํ ์์ ๋์จ ๊ฒฐ๊ณผ๋ t: 0~2๊น์ง์ ๊ฒฐ๊ณผ์ ์์กดํ๊ธฐ ๋๋ฌธ์ ๊ณผ๊ฑฐ ์์ ๊น์ง ์ญ์ ํํด์ฃผ๋ ๊ฒ์ผ๋ก ๋ณผ ์ ์๋ค.
์ด๋ฌํ ๋ฐฉ์์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฏธ๋ถ์ chain rule๋ก ๋ฐ์ํ๋ค.
4. RNN์ ํ๊ณ
์ด๋ ๊ฒ ์ด๋ ต๊ฒ ๊ณ ์ํด๋ธ RNN์ด๊ณ , ๋ค์ํ ์ฌ์ฉ ๋ถ์ผ๊ฐ ์์ง๋ง, ์ด๋ฐ RNN ๋ํ ํ๊ณ๊ฐ ์์๋ค.
๊ทธ๊ฒ์ ๋ฐ๋ก ์ฅ๊ธฐ ์์กด์ฑ ๋ฌธ์ (long-term dependecies)์ด๋ค.
RNN์ ๋น๊ต์ ์งง์ ์ํ์ค์์๋ ์ข์ ์ฑ๋ฅ์ ๋ณด์ด๋, ํ์ ์คํ ์ด ์ปค์ง๋ค๋ฉด ์ ์ชฝ์ ์๋ ์ ๋ณด๋ค์ด ๋ค์ชฝ๊น์ง ์ถฉ๋ถํ ์ ๋ฌ๋์ง ๋ชปํ๋ค.
์ด๋ gradient์ ์ ๋ฌ๋๋ ๊ณผ์ ๊ณผ ์ฐ๊ด์ด ์๋ค. RNN์ ์ฃผ๋ก tanh์ activation function์ฌ์ฉํ๋๋ฐ ์ด๋ gradient vanishing ๋ฌธ์ ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
์ฆ, ํ ์์ t์ ๋ํ loss๋ฅผ ํ์ตํ๊ธฐ ์ํด ์ด์ ์ ์ ๋ณด๋ค๋ก๊น์ง gradient๋ฅผ ์ ๋ฌํด์ผ ํ๋๋ฐ ํ์ ์คํ ์ด ํฌ๋ค๋ฉด ์์ชฝ๊น์ง ์ถฉ๋ถํ ์ ๋ฌํ์ง ๋ชปํ๋ ๊ฒ์ด๋ค. ๊ทธ๋์ t์์ ์ ์ค์ฐจ์ ๋ํด ์์ชฝ์ ์๋ ์ ๋ณด๋ค์ด ํ์ฉ๋ ์ ์๋ ๊ฒ์ด๋ค.
์ด๋ฌํ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ํ์ฑํํจ์๋ฅผ Relu ๋ฑ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์์ผ๋ฉฐ RNN์ ๊ฐ์ ํ LSTM, GRU ๋ชจ๋ธ์ด ๋์๋ค.
ํด๋น ๋ชจ๋ธ๋ค์ ๋ ผ๋ฌธ ๋ฆฌ๋ทฐ ์น์ ์์ ๋ ผ๋ฌธ์ ์ ๋ฆฌํ๋ฉฐ ๊ฐ๋ ๋ ํจ๊ป ์ ๋ฆฌํด๋ณผ ์์ ์ด๋ค.
์ด๋ ๊ฒ ์ค๋์ RNN์ ๊ดํด ์์๋ณด์๋ค.
์๋์ ์ฐ์ด๋ ๋ถ์ผ๊ฐ ๋ง์์ ๊ตฌ์กฐ๋ ์์ฒญ ๋ณต์กํ ๊ฒ ๊ฐ์์ง๋ง, ์๊ฐ๋ณด๋ค๋ ๋ณต์กํ์ง ์์๋ ๊ฒ ๊ฐ๋ค.
๋ค์์ ๋ด์ฉ๋ค๋ง ๊ธฐ์ตํด ๋์ผ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค:
- RNN์ ์ํ ์ ๊ฒฝ๋ง์ผ๋ก์จ ์ธ์ ํ ๋ค์ ๋ ธ๋๋ก๋ง ๊ณ์ฐ๋๋ ๊ฒ์ด ์๋๋ผ ์๊ธฐ ์์ ์๊ฒ ํน์ ๊ทธ ์ ๋ ธ๋๋ก ๊ณ์ฐ๋๋ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ง Neural Network์ด๋ค.
- RNN์ ๊ฐ์ํ ์ด๋ฏธ์ง
- RNN์ back propagation์ ์๊ฐ์ ๋ฐ๋ผ ์งํ๋์ด BPTT๋ผ๊ณ ๋ถ๋ฆฌ๋๋ฐ, RNN์์๋ ์ ์ฒด๊ฐ ๋ชจ๋ ๊ฐ์ ๊ฐ์ค์น๋ฅผ ๊ณต์ ํ๋ฏ๋ก ๊ฐ ํ์ ์คํ ์ gradient๋ฅผ ๋ํด์ฃผ์ด ํ์ต์ํฌ ์ ์๋ค.
- RNN์ ์ฅ๊ธฐ ์์กด์ฑ ๋ฌธ์ ๊ฐ ์๋๋ฐ, ์ด๋ ํ์ฑ ํจ์๋ฅผ tanh ํจ์๋ก ์ฌ์ฉํ๋ฉด์ gradient๊ฐ ์์ค๋๊ฑฐ๋ ํญ๋ฐํ์ฌ ์๊ธฐ๋ ๋ฌธ์ ์ด๋ค.
'๐ ์คํฐ๋ > NLP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Word2Vec์ ๊ดํ์ฌ] - CBOW, Skip-gram (0) | 2023.07.25 |
---|---|
[ํ ์คํธ๋ง์ด๋] 2-2. ๋ฌธ์ ์ ์ฌ๋ - ์คํ๋ฒ ์ค ๋ค์ด๋ฒ ๋ฌธ์ ์ ์ฌ๋ ๊ตฌํ๊ธฐ (0) | 2023.06.19 |
[ํ ์คํธ๋ง์ด๋] 2-1. ํ ์คํธ ํํ๊ณผ ๋ฌธ์ ์ ์ฌ๋ (0) | 2023.06.19 |
[ํ ์คํธ๋ง์ด๋] 1. ํ ์คํธ ๋ถ์ (0) | 2023.06.17 |