๋ฐ์ํ
BPTT (Backpropagation Through Time)
BPTT(Backpropagation Through Time)๋ ์ํ ์ ๊ฒฝ๋ง(RNN, Recurrent Neural Network)์ ํ์ต์ ์ํด ์ฌ์ฉ๋๋ Backpropagation(์ญ์ ํ) ์๊ณ ๋ฆฌ์ฆ์ ํ์ฅ ๋ฒ์ ์ ๋๋ค.
- ์ฌ๊ธฐ์์ Backpropagation(์ค์ฐจ์ญ์ ํ๋ฒ)์?
- '์๊ฐ ๋ฐฉํฅ์ผ๋ก ํผ์น ์ ๊ฒฝ๋ง์ ์ค์ฐจ์ญ์ ํ๋ฒ' ์ด๋ ๋ป์ผ๋ก BPTT(Backpropagation Through Time)์ด๋ผ๊ณ ํฉ๋๋ค.
- ์ด BPTT๋ฅผ ์ฌ์ฉํ๋ฉด RNN์ ํ์ตํ ์ ์์ต๋๋ค. RNN์ ๊ดํ ๊ฐ๋ ์ ์๋์ ๊ธ์ ์ ์ด๋์์ผ๋ ์ฐธ๊ณ ํด ์ฃผ์๋ฉด ๋ ๊ฑฐ ๊ฐ์ต๋๋ค.
- ๋ค๋ง, ๊ทธ์ ์ ํด๊ฒฐํด์ผ ํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๊ทธ๊ฑด ๋ฐ๋ก ๊ธด ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ํ์ตํ ๋์ ๋ฌธ์ ์ ๋๋ค.
- ์๊ณ์ด ๋ฐ์ดํฐ์ ์๊ฐ ํฌ๊ธฐ๊ฐ ์ปค์ง๋๊ฒ์ ๋น๋กํ์ฌ BPTT(Backpropagation Through Time)๊ฐ ์๋นํ๋ ์ปดํจํ ์์์ด ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ๋ํ ์๊ฐ ํฌ๊ธฐ๊ฐ ์ปค์ง๋ฉด Backpropagation(์ค์ฐจ์ญ์ ํ)๋์ Gradient(๊ธฐ์ธ๊ธฐ)๊ฐ ๋ถ์์ ํด์ง๋๊ฒ๋ ๋ฌธ์ ์ ๋๋ค.
BPTT๋ฅผ ์ด์ฉํด Gradient๋ฅผ ๊ตฌํ๋ ค๋ฉด, RNN ๊ณ์ธต์ ์ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์งํ๋ฉด ์๋ฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ์๊ณ์ด ๋ฐ์ดํฐ๊ฐ ์ฆ๊ฐํ์ฌ, ๊ณ์ฐ๋ & ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๋ ์ฆ๊ฐํฉ๋๋ค.
Truncated BPTT
- ํฐ ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ์ทจ๊ธํ ๋์ Neural Network(์ ๊ฒฝ๋ง)์ฐ๊ฒฐ์ ์ ๋นํ ๊ธธ์ด๋ก '๋์ต๋๋ค'.
- ๋๋ฌด ๊ธธ์ด์ง ์ ๊ฒฝ๋ง์ ์ ๋นํ ์ง์ ์์ ์๋ผ๋ด์ด์ ์์ Neural Network(์ ๊ฒฝ๋ง)์ ์ฌ๋ฌ๊ฐ ๋ง๋ญ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ด ์๋ผ๋ธ ์์ Neural Network(์ ๊ฒฝ๋ง)์์ Backpropagation(์ค์ฐจ์ญ์ ํ๋ฒ)์ ์ํํฉ๋๋ค.
- ์ด๊ฒ์ด ๋ฐ๋ก Truncated BPTT๋ผ๋ ๊ธฐ๋ฒ์ ๋๋ค.
Truncated - '์๋ฆฐ' ํํ์ ๋๋ค. ๋ฐ๋ผ์ ์ ๋นํ ๊ธธ์ด๋ก ์๋ผ๋ธ Backpropagation(์ค์ฐจ์ญ์ ํ๋ฒ)์ด ๋๋๊ฒ์ ๋๋ค.
- Truncated BPTT์์ Neural Network(์ ๊ฒฝ๋ง)์ ์ฐ๊ฒฐ์ ๋์ต๋๋ค๋ง, ์ ๋๋ก ๊ตฌํํ๋ ค๋ฉด 'Backpropagation(์ญ์ ํ)'์ ์ฐ๊ฒฐ๋ง ๋์ด์ผ ํฉ๋๋ค.
- Forward Propagation(์์ ํ)์ ํ๋ฆ์ ๋์ด์ง์ง ์๊ณ ์ ํ๋ฉ๋๋ค.
- ํํธ, 'Backpropagation(์ญ์ ํ)'์ ์ฐ๊ฒฐ์ ์ ๋นํ ๊ธธ์ด๋ก ์๋ผ๋ด์, ๊ทธ ์๋ผ๋ธ Neural Network(์ ๊ฒฝ๋ง) ๋จ์๋ก ํ์ต์ ์ํํฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ์์์๋ ์ค๋ช ํ์ง๋ง ์๊ณ์ด ๋ฐ์ดํฐ๊ฐ ๋๋ฌด ๊ธธ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, ๊ณ์ฐ์ชฝ์์ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์์ต๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ๊ณ์ธต์ด ๊ธธ์ด์ง์ ๋ฐ๋ผ Neural Network(์ ๊ฒฝ๋ง)์ ํ๋ ํต๊ณผํ ๋ ๋ง๋ค Gradient(๊ธฐ์ธ๊ธฐ)๊ฐ์ด ์กฐ๊ธ์ฉ ์์์ ธ์, ์ด์ ์๊ฐ t๋ก Backpropagation(์ญ์ ํ)๋๊ธฐ ์ ์ 0์ด ๋์ด ์๋ฉธ๋ ์๋ ์์ต๋๋ค.
- ๊ทธ๋์ ๊ธธ๊ฒ ๋ป์ Neural Network(์ ๊ฒฝ๋ง)์ Backpropagation(์ญ์ ํ)๋ ์ฐ๊ฒฐ์ ์ ๋นํ ๊ธธ์ด๋ก ๋์ด์ผ ํฉ๋๋ค.
- ์์ ๊ทธ๋ฆผ์ฒ๋ผ Backpropagation(์ญ์ ํ)์ ์ฐ๊ฒฐ์ ์๋ฅด๋ฉด, ๋ฏธ๋์ ๋ฐ์ดํฐ์ ๋ํด์๋ ์๊ฐํ ํ์๊ฐ ์์ด์ง๋๋ค.
- ๊ทธ๋์ ๊ฐ๊ฐ์ ๋ธ๋ก๋จ์๋ก, ๋ ๋ฆฝ์ ์ผ๋ก Backpropagation(์ญ์ ํ)๊ฐ ์ด๋ฃจ์ด์ง๋๋ค.
- ์ด๋ Backpropagation(์ญ์ ํ)์ ์ฐ๊ฒฐ์ ๋์ด์ง์ง๋ง, Forward Propagation(์์ ํ)๋ ์ฐ๊ฒฐ ๋๋ค๋ ์ ์
๋๋ค.
- ์ด๋ง์ ๋ฐ์ดํฐ๋ฅผ Sequentialํ๊ฒ, ์ฆ ์์๋๋ก ์ ๋ ฅํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
- ์ด์ Truncated BPTT ๋ฐฉ์์ผ๋ก RNN์ ํ์ต(์ฒซ๋ฒ์จฐ Block data๋ฅผ RNN ๊ณ์ธต์ ์ ๊ณต)์์ผ ๋ณด๋ฉด, ์๋์ ๊ฐ์ ์ผ์ด ์ผ์ด๋ฉ๋๋ค.
- ๊ทธ๋ฆผ์์ ๋ณด๋ฏ, ๋จผ์ Forward Propagation(์์ ํ)๋ฅผ ์ํํ ๋ค์, Backpropagation(์ญ์ ํ)๋ฅผ ์ํํฉ๋๋ค.
- ์ด๋ฌ๋ฉด ์ํ๋ Gradient(๊ธฐ์ธ๊ธฐ)๋ฅผ ๊ตฌํ ์ ์์ต๋๋ค.
- ์ด์ฒ๋ผ ๋ค์ ๋ธ๋ก์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํด ์ค์ฐจ์ญ์ ํ๋ฒ์ ์ํํฉ๋๋ค.
- ์ด ์คํ ํ๋ฆ์ ์๋์ ๊ทธ๋ฆผ์ ๋์ต๋๋ค.
- ์์ ๊ทธ๋ฆผ์ฒ๋ผ Truncated BPTT๋ ๋ฐ์ดํฐ๋ฅผ ์์๋๋ก ์ ๋ ฅํด์ ํ์ตํฉ๋๋ค.
- ์ด๋ฐ ์์ผ๋ก Forward Propagation(์์ ํ)์ ์ฐ๊ฒฐ์ ์ ์งํ๋ฉด์, Backpropagation(์ญ์ ํ)๋ฅผ ์ ์ฉํ ์ ์์ต๋๋ค.
Truncated BPTT์ Mini-Batch ํ์ต
- Truncated BPTT ์์ Mini-Batch ํ์ต์ ์๋๋๋ก ๋ผ๋ฉด ๊ตฌ์ฒด์ ์ธ ๋ฐฐ์น ๋ฐฉ์์ ๊ณ ๋ คํด ์์ Truncated BPTT ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์ ์ฒ๋ผ ๋ฐ์ดํฐ๋ฅผ ์์๋๋ก ์ ๋ ฅํด์ผ ํฉ๋๋ค.
- ๊ทธ๋ ๊ฒ ํ๋ ค๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๋ ์์ ์์น๋ฅผ ๊ฐ Mini-Batch์ ์์ ์์น๋ก '์ฎ๊ฒจ์ค์ผ' ํฉ๋๋ค.
- ์ฒซ๋ฒ์จฐ Mini-Batch ์์๋ฅผ X0, ... , X9๊ฐ ๋๊ณ , ๋๋ฒ์จฐ Mini-Batch ์์๋ X500, ... , X509๊ฐ ๋ฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ด Mini-Batch Data๋ฅผ RNN์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ก ์ฌ์ฉํด ํ์ต์ ์ํํฉ๋๋ค.
- ์ดํ๋ก๋ ์์๋๋ก ์งํ๋๋ฏ๋ก ๋ค์์ ๋๊ธธ ๋ฐ์ดํฐ๋ ๊ฐ๊ฐ ์๊ณ์ด ๋ฐ์ดํฐ์ 10~19๋ฒ์งธ, 510~519๋ฒ์งธ ๋ฐ์ดํฐ๊ฐ ๋๋ ์์ ๋๋ค.
- ์ด์ฒ๋ผ Mini-Batch ํ์ต์ ์ํํ ๋๋ ๊ฐ Mini-Batch์ ์์์ Offset์ผ๋ก ์ฎ๊ฒจ์ค ํ ์์๋๋ก ์ ๊ณตํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์์๋๋ก ์ ๋ ฅํ๋ค๊ฐ ๋์ ๋๋ฌํ๋ฉด ๋ค์ ์ฒ์๋ถํฐ ์ ๋ ฅํ๋๋ก ํฉ๋๋ค.
Truncated BPTT์ ์๋ฆฌ๋ ๋จ์ํ์ง๋ง, '๋ฐ์ดํฐ ์ ๊ณต ๋ฐฉ๋ฒ'์์๋ ์ฃผ์ํด์ผ ํ ์ ์ด ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฅผ ์์๋๋ก ์ ๊ณตํ๊ธฐ, Mini-Batch๋ณ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ ์์์์น ์ฎ๊ธฐ๊ธฐ ์ ๋๋ค.
Summary
• RNN์ ์ํ ๊ฒฝ๋ก๋ฅผ ํผ์นจ์ผ๋ก์จ ๋ค์์ RNN ๊ณ์ธต์ด ์ฐ๊ฒฐ๋ ์ ๊ฒฝ๋ง์ผ๋ก ํด์ํ ์ ์์ผ๋ฉฐ, ๋ณดํต์ ์ค์ฐจ์ญ์ ํ๋ฒ์ผ๋ก ํ์ตํ ์ ์๋ค (=BPTT).
• ๊ธด ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ํ์ตํ ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋นํ ๊ธธ์ด์ฉ ๋ชจ์ผ๊ณ (์ด๋ฅผ ‘๋ธ๋ก’์ด๋ผ ํ๋ค), ๋ธ๋ก ๋จ์๋ก BPTT์ ์ํ ํ์ต์ ์ํํ๋ค(=Truncated BPTT).
• Truncated BPTT์์๋ ์ญ์ ํ์ ์ฐ๊ฒฐ๋ง ๋๋๋ค.
• Truncated BPTT์์๋์์ ํ์ ์ฐ๊ฒฐ์์ ์งํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ‘์์ฐจ์ ’์ผ๋ก ์ ๋ ฅํด์ผ ํ๋ค.
๋ฐ์ํ
'๐ NLP (์์ฐ์ด์ฒ๋ฆฌ) > ๐ Natural Language Processing' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[NLP] AutoEncoder (์คํ ์ธ์ฝ๋) (0) | 2024.08.30 |
---|---|
[NLP] RNNLM - RNN์ ์ฌ์ฉํ Language Model (0) | 2024.06.02 |
[NLP] ์ถ๋ก ๊ธฐ๋ฐ ๊ธฐ๋ฒ & Neural Network (์ ๊ฒฝ๋ง) (0) | 2024.05.22 |
[NLP] ํต๊ณ ๊ธฐ๋ฐ ๊ธฐ๋ฒ ๊ฐ์ ํ๊ธฐ (0) | 2024.05.20 |
[NLP] Thesaurus(์์๋ฌ์ค), Co-occurence Matrix(๋์๋ฐ์ ํ๋ ฌ) (0) | 2024.05.18 |