โ ํธ๋์คํฌ๋จธ๋?
ํธ๋์คํฌ๋จธ(Transformer)๋ 2017๋
๊ตฌ๊ธ์ด ๋ฐํํ ๋
ผ๋ฌธ์ธ โAttention is all you needโ์์ ๋์จ ๋ชจ๋ธ๋ก ๊ธฐ์กด์ seq2seq์ ๊ตฌ์กฐ์ธ ์ธ์ฝ๋-๋์ฝ๋๋ฅผ ๋ฐ๋ฅด๋ฉด์๋, ๋
ผ๋ฌธ์ ์ด๋ฆ์ฒ๋ผ ์ดํ
์
(Attention)๋ง์ผ๋ก ๊ตฌํํ ๋ชจ๋ธ์
๋๋ค. ์ด ๋ชจ๋ธ์ RNN์ ์ฌ์ฉํ์ง ์๊ณ , ์ธ์ฝ๋-๋์ฝ๋ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ์์์๋ ์ฑ๋ฅ๋ RNN๋ณด๋ค ์ฐ์ํ๋ค๋ ํน์ง์ ๊ฐ๊ณ ์์ต๋๋ค.
๊ธฐ์กด์ seq2seq ๋ชจ๋ธ์ ํ๊ณ
ํธ๋์คํฌ๋จธ์ ๋ํด์ ๋ฐฐ์ฐ๊ธฐ ์ ์ ๊ธฐ์กด์ seq2seq๋ฅผ ์๊ธฐํด๋ณด๋ฉด, ๊ธฐ์กด์ seq2seq๋ชจ๋ธ์ ์ธ์ฝ๋-๋์ฝ๋ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑ๋์ด์ ธ ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ธ์ฝ๋๋ ์
๋ ฅ ์ํ์ค๋ฅผ ํ๋์ ๋ฒกํฐ ํํ์ผ๋ก ์์ถํ๊ณ , ๋์ฝ๋๋ ์ด ๋ฒกํฐ ํํ์ ํตํด์ ์ถ๋ ฅ ์์ฟผ์ค๋ฅผ ๋ง๋ค์ด๋์ต๋๋ค. ํ์ง๋ง ์ด๋ฌํ ๊ตฌ์กฐ๋ ์ธ์ฝ๋๊ฐ ์
๋ ฅ ์์ฟผ์ค๋ฅผ ํ๋์ ๋ฒกํฐ๋ก ์์ถํ๋ ๊ณผ์ ์์ ์
๋ ฅ ์์ฟผ์ค์ ์ ๋ณด๊ฐ ์ผ๋ถ ์์ค๋๋ค๋ ๋จ์ ์ด ์์๊ณ , ์ด๋ฅผ ๋ณด์ ํ๊ธฐ ์ํด ์ดํ
์
์ด ์ฌ์ฉ๋์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์ดํ
์
์ RNN์ ๋ณด์ ์ ์ํ ์ฉ๋๊ฐ ์๋๋ผ ์์ ์ดํ
์
์ผ๋ก ์ธ์ฝ๋์ ๋์ฝ๋๋ฅผ ๋ง๋ค์ด๋ณด๋ฉด ์ด๋จ๊น์?
โ ํธ๋์คํฌ๋จธ (Transformer) ์ ์ฃผ์ ํ์ดํผํ๋ผ๋ฏธํฐ
์์์ ์์ ํธ๋์คํฌ๋จธ์ ํ์ดํผํ๋ผ๋ฏธํฐ๋ฅผ ์ ์ํ๊ณ ์ ํฉ๋๋ค. ๊ฐ ํ์ดํผํ๋ผ๋ฏธํฐ์ ์๋ฏธ์ ๋ํด์๋ ๋ค์์ ์ค๋ช
ํ๊ธฐ๋กํ๊ณ , ์ฌ๊ธฐ์๋ ํธ๋์คํฌ๋จธ์๋ ์ด๋ฌํ ํ์ดํผํ๋ผ๋ฏธํฐ๊ฐ ์กด์ฌํ๋ค๋ ์ ๋๋ก๋ง ์ดํดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์๋์์ ์ ์ํ๋ ์๊ฐ์ ํธ๋์คํฌ๋จธ๋ฅผ ์ ์ํ ๋
ผ๋ฌธ์์ ์ฌ์ฉํ ์๊ฐ์ผ๋ก ํ์ดํผํ๋ผ๋ฏธํฐ๋ ์ฌ์ฉ์๊ฐ ๋ชจ๋ธ ์ค๊ณ์ ์์๋ก ๋ณ๊ฒฝํ ์ ์๋ ๊ฐ๋ค์
๋๋ค.
ํธ๋์คํฌ๋จธ์ ์ธ์ฝ๋์ ๋์ฝ๋์์์ ์ ํด์ง ์
๋ ฅ๊ณผ ์ถ๋ ฅ์ ํฌ๊ธฐ๋ฅผ ์๋ฏธํฉ๋๋ค.
์๋ฒ ๋ฉ ๋ฒกํฐ์ ์ฐจ์ ๋ํ ์ด๋ฉฐ, ๊ฐ ์ธ์ฝ๋์ ๋์ฝ๋๊ฐ ๋ค์ ์ธต์ ์ธ์ฝ๋์ ๋์ฝ๋๋ก ๊ฐ์ ๋ณด๋ผ ๋์๋ ์ด ์ฐจ์์ ์ ์งํฉ๋๋ค. ๋
ผ๋ฌธ์์๋ 512 ์
๋๋ค.
num_layers = 6
ํธ๋์คํฌ๋จธ์์ ํ๋์ ์ธ์ฝ๋์ ๋์ฝ๋๋ฅผ ์ธต์ผ๋ก ์๊ฐํ์์ ๋, ํธ๋์คํฌ๋จธ ๋ชจ๋ธ์์ ์ธ์ฝ๋์ ๋์ฝ๋๊ฐ ์ด ๋ช์ธต์ผ๋ก ๊ตฌ์ฑ๋์๋์ง๋ฅผ ์๋ฏธํฉ๋๋ค. ๋
ผ๋ฌธ์์๋ ์ธ์ฝ๋์ ๋์ฝ๋๋ฅผ ๊ฐ๊ฐ ์ด 6๊ฐ ์์์ต๋๋ค.
numheads = 8
ํธ๋์คํฌ๋จธ์์๋ ์ดํ
์
์ ์ฌ์ฉํ ๋, 1 ๋ฒ ํ๋ ๊ฒ ๋ณด๋ค ์ฌ๋ฌ ๊ฐ๋ก ๋ถํ ํด์ ๋ณ๋ ฌ๋ก ์ดํ
์
์ ์ํํ๊ณ ๊ฒฐ๊ณผ๊ฐ์๋ค์ ํ๋๋ก ํฉ์น๋ ๋ฐฉ์์ ํํ์ต๋๋ค. ์ด๋ ์ด ๋ณ๋ ฌ์ ๊ฐ์๋ฅผ ์๋ฏธํฉ๋๋ค.
=2048
ํธ๋์คํฌ๋จธ ๋ด๋ถ์๋ ํผ๋ ํฌ์๋ ์ ๊ฒฝ๋ง์ด ์กด์ฌํฉ๋๋ค. ์ด๋ ์๋์ธต์ ํฌ๊ธฐ๋ฅผ ์๋ฏธํฉ๋๋ค. ํผ๋ ํฌ์๋ ์ ๊ฒฝ๋ง์ ์
๋ ฅ์ธต๊ณผ ์ค๋ ฅ์ธต์ ํฌ๊ธฐ๋ ์
๋๋ค.
โ ํธ๋์คํฌ๋จธ ๊ตฌ์กฐ
โ๋โ ์์ ๊ทธ๋ฆผ์ ์ธ์ฝ๋๋ก๋ถํฐ ์ ๋ณด๋ฅผ ์ ๋ฌ๋ฐ์ ๋์ฝ๋๊ฐ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด๋ด๋ ํธ๋์คํฌ๋จธ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ๋์ฝ๋๋ ๋ง์น ๊ธฐ์กด์ seq2seq ๊ตฌ์กฐ์ฒ๋ผ, ์์ ์ฌ๋ณผ <sos>๋ฅผ ์
๋ ฅ์ผ๋ก ๋ฐ์ ์ข
๋ฃ ์ฌ๋ณผ <eos>๊ฐ ๋์ฌ ๋๊น์ง ์ฐ์ฐ์ ์งํํฉ๋๋ค. ์ด๋ RNN์ ์ฌ์ฉ๋์ง ์์ง๋ง ์ฌ์ ํ ์ธ์ฝ๋-๋์ฝ๋์ ๊ตฌ์กฐ๋ ์ ์ง๋๊ณ ์์์ ๋ณด์ฌ์ค๋๋ค.
์ด์ ํธ๋์คํฌ๋จธ์ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ์กฐ๊ธ์ฉ ํ๋ํด๊ฐ๋ ๋ฐฉ์์ผ๋ก ํธ๋์คํฌ๋จธ๋ฅผ ์ดํดํด๋ณด๋ฉด,
์ฐ์ ์ธ์ฝ๋์ ๋์ฝ๋์ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๊ธฐ ์ ์ ํธ๋์คํฌ๋จธ์ ์
๋ ฅ์ ๋ํด์ ์ดํดํด๋ณด๊ฒ ์ต๋๋ค.
ํธ๋์คํฌ๋จธ์ ์ธ์ฝ๋์ ๋์ฝ๋๋ ๋จ์ํ ๊ฐ ๋จ์ด์ ์๋ฒ ๋ฉ ๋ฒกํฐ๋ค์ ์
๋ ฅ๋ฐ๋ ๊ฒ์ด ์๋๋ผ ์๋ฒ ๋ฉ ๋ฒกํฐ์์ ์กฐ์ ๋ ๊ฐ์ ์
๋ ฅ๋ฐ๋๋ฐ ์ด์ ๋ํด์ ์์๋ณด๊ธฐ ์ํด ์
๋ ฅ ๋ถ๋ถ์ ํ๋ํด๋ณด๊ฒ ์ต๋๋ค.
โ ํฌ์ง์ ๋ ์ธ์ฝ๋ฉ(Positional Encoding)
ํธ๋์คํฌ๋จธ์ ๋ด๋ถ๋ฅผ ์ดํดํ๊ธฐ ์ ์ ์ฐ์ ํธ๋์คํฌ๋จธ์ ์
๋ ฅ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. RNN ์ด ์์ฐ์ด ์ฒ๋ฆฌ์์ ์ ์ฉํ๋ ์ด์ ๋ ๋จ์ด์ ์์น์ ๋ฐ๋ผ ๋จ์ด๋ฅผ ์์ฐจ์ ์ผ๋ก ์
๋ ฅ๋ฐ์์ ์ฒ๋ฆฌํ๋ RNN์ ํน์ฑ์ผ๋ก ์ธํด ๊ฐ ๋จ์ด์ ์์น ์ ๋ณด(position information)๋ฅผ ๊ฐ์ง ์ ์๋ค๋ ์ ์ ์์์ต๋๋ค.
ํ์ง๋ง ํธ๋์คํฌ๋จธ๋ ๋จ์ด ์
๋ ฅ์ ์์ฐจ์ ์ผ๋ก ๋ฐ๋ ๋ฐฉ์์ด ์๋๋ฏ๋ก ๋จ์ด์ ์์ง ์ ๋ณด๋ฅผ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์๋ ค์ค ํ์๊ฐ ์์ต๋๋ค. ํธ๋์คํฌ๋จธ๋ ๋จ์ด์ ์์น ์ ๋ณด๋ฅผ ์ป๊ธฐ ์ํด์ ๊ฐ ๋จ์ด์ ์๋ฒ ๋ฉ ๋ฒกํฐ์ ์์ง ์ ๋ณด๋ค์ ๋ํ์ฌ ๋ชจ๋ธ์ ์
๋ ฅ์ผ๋ก ์ฌ์ฉํ๋๋ฐ, ์ด๋ฅผ ํฌ์ง์
๋ ์ธ์ฝ๋ฉ(positional encod ing)์ด๋ผ๊ณ ํฉ๋๋ค.
๊ทธ๋ฆผ์ ์
๋ ฅ์ผ๋ก ์ฌ์ฉ๋๋ ์๋ฒ ๋ฉ ๋ฒกํฐ๋ค์ด ํธ๋์คํฌ๋จธ์ ์
๋ ฅ์ผ๋ก ์ฌ์ฉ๋๊ธฐ ์ ์ ํฌ์ง์
๋ ์ธ์ฝ๋ฉ๊ฐ์ด ๋ํด์ง๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค. ์๋ฒ ๋ฉ ๋ฒกํฐ๊ฐ ์ธ์ฝ๋์ ์
๋ ฅ์ผ๋ก ์ฌ์ฉ๋๊ธฐ ์ ์ ํฌ์ง์
๋ ์ธ์ฝ๋ฉ๊ฐ์ด ๋ํด์ง๋ ๊ณผ์ ์ ์๊ฐํํ๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
ํฌ์ง์
๋ ์ธ์ฝ๋ฉ ๊ฐ๋ค์ ์ด๋ค ๊ฐ์ด๊ธฐ์ ์์น ์ ๋ณด๋ฅผ ๋ฐ์ํด์ค ์ ์๋ ๊ฒ์ผ๊น์?
ํธ๋์คํฌ๋จธ๋ ์์ง ์ ๋ณด๋ฅผ ๊ฐ์ง ๊ฐ์ ๋ง๋ค๊ธฐ ์ํด์ ์๋์ ๋ ๊ฐ์ ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฌ์ธ ํจ์์ ์ฝ์ฌ์ธ ํจ์์ ๊ทธ๋ํ๋ฅผ ์๊ธฐํด๋ณด๋ฉด ์๋์น๋ ๊ฐ์ ํํ๋ฅผ ์๊ฐํด๋ณผ ์ ์๋๋ฐ,
ํธ๋์คํฌ๋จธ๋ ์ฌ์ธ ํจ์์ ์ฝ์ฌ์ธ ํจ์์ ๊ฐ์ ์๋ฒ ๋ฉ ๋ฒกํฐ์ ๋ํด์ฃผ๋ฏ๋ก์ ๋จ์ด์ ์์ ์ ๋ณด๋ฅผ ๋ํ์ฌ ์ค๋๋ค.
๊ทธ๋ฐ๋ฐ ์์ ๋ ํจ์์๋ , , ๋ฑ์ ์์ํ ๋ณ์๋ค์ด ์์ต๋๋ค. ์์ ํจ์๋ฅผ ์ดํดํ๊ธฐ ์ํด์๋ ์์์ ๋ณธ ์๋ฒ ๋ฉ ๋ฒกํฐ์ ํฌ์ง์
๋ ์ธ์ฝ๋ฉ์ ๋ง์
์ ์ฌ์ค ์๋ฒ ๋ฉ ๋ฒกํฐ๊ฐ ๋ชจ์ฌ ๋ง๋ค์ด์ง, ๋ฌธ์ฅ ๋ฒกํฐ-ํ๋ ฌ๊ณผ ํฌ์ง์
๋ ์ธ์ฝ๋ฉ ํ๋ ฌ์ ๋ง์ ์ฐ์ฐ์ ํตํด ์ด๋ฃจ์ด์ง๋ค๋ ์ ์
๋๋ค.
CODE
โ ์ดํ ์ (Attention)
ํธ๋์คํฌ๋จธ์์ ์ฌ์ฉ๋๋ ์ธ ๊ฐ์ง์ ์ดํ
์
์ ๋ํด์ ๊ฐ๋จํ ์ ๋ฆฌํด๋ด
์๋ค.
์ง๊ธ์ ํฐ ๊ทธ๋ฆผ์ ์ดํดํ๋๊ฒ์๋ง ์ง์คํฉ๋๋ค.
์ฒซ๋ฒ์งธ ๊ทธ๋ฆผ์ธ ์
ํ ์ดํ
์
์ ์ธ์ฝ๋์์ ์ด๋ฃจ์ด์ง์ง๋ง,
๋๋ฒ์งธ ๊ทธ๋ฆผ์ธ ์
ํ ์ดํ
์
๊ณผ ์ธ๋ฒ์งธ ๊ทธ๋ฆผ์ธ ์ธ์ฝ๋-๋์ฝ๋ ์ดํ
์
์ ๋์ฝ๋์์ ์ด๋ฃจ์ด์ง๋๋ค.
์
ํ ์ดํ
์
์ ๋ณธ์ง์ ์ผ๋ก Query, Key, Value๊ฐ ๋์ผํ ๊ฒฝ์ฐ๋ฅผ ๋งํฉ๋๋ค.
๋ฐ๋ฉด, ์ธ๋ฒ์งธ ๊ทธ๋ฆผ ์ธ์ฝ๋-๋์ฝ๋ ์ดํ
์
์์๋ Query๊ฐ ๋์ฝ๋์ ๋ฒกํฐ์ธ ๋ฐ๋ฉด์ Key์ Value๊ฐ ์ธ์ฝ๋์ ๋ฒกํฐ์ด๋ฏ๋ก ์
ํ ์ดํ
์
์ด๋ผ๊ณ ๋ถ๋ฅด์ง ์์ต๋๋ค.
์ ๊ทธ๋ฆผ์ ํธ๋์คํฌ๋จธ์ ์ํคํ
์ฒ์์ ์ธ ๊ฐ์ง ์ดํ
์
์ด ๊ฐ๊ฐ ์ด๋์์ ์ด๋ฃจ์ด์ง๋์ง๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ธ ๊ฐ์ ์ดํ
์
์ ์ถ๊ฐ์ ์ผ๋ก ๋ฉํฐ ํค๋'๋ผ๋ ์ด๋ฆ์ด ๋ถ์ด์์ต๋๋ค. ๋ค์์ ์ค๋ช
ํ๊ฒ ์ง๋ง,
์ด๋ ํธ๋์คํฌ๋จธ๊ฐ ์ดํ
์
์ ๋ณ๋ ฌ์ ์ผ๋ก ์ํํ๋ ๋ฐฉ๋ฒ์ ์๋ฏธํฉ๋๋ค.
โ ์ธ์ฝ๋(Encoder)
ํธ๋์คํฌ๋จธ๋ ํ์ดํผํ๋ผ๋ฏธํฐ์ธ num_layers ๊ฐ์์ ์ธ์ฝ๋ ์ธต์ ์์ต๋๋ค.
๋
ผ๋ฌธ์์๋ ์ด 6๊ฐ์ ์ธ์ฝ๋์ธต์ ์ฌ์ฉํ์์ต๋๋ค. ์ธ์ฝ๋๋ฅผ ํ๋์ ์ธต์ด๋ผ๋ ๊ฐ๋
์ผ๋ก ์๊ฐํ๋ค๋ฉด, ํ๋์ ์ธ์ฝ๋ ์ธต์ ํฌ๊ฒ ์ด 2๊ฐ์ ์๋ธ์ธต(sublayer) ์ผ๋ก ๋๋์ด์ง๋๋ค.
๋ฐ๋ก ์
ํ ์ดํ
์
๊ณผ ํผ๋ ํฌ์๋ ์ ๊ฒฝ๋ง์
๋๋ค.
์์ ๊ทธ๋ฆผ์์๋ ๋ฉํฐ ํค๋ ์
ํ ์ดํ
์
๊ณผ ํฌ์ง์
์์ด์ฆ ํผ๋ ํฌ์๋ ์ ๊ฒฝ๋ง์ด๋ผ๊ณ ์ ํ์์ง๋ง,
๋ฉํฐ ํค๋์
ํ ์ดํ
์
์ ์
ํ ์ดํ
์
์ ๋ณ๋ ฌ์ ์ผ๋ก ์ฌ์ฉํ์๋ค๋ ์๋ฏธ๊ณ ,
ํฌ์ง์
์์ด์ฆ ํผ๋ ํฌ์๋ ์ ๊ฒฝ๋ง์ ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ์ผ๋ฐ์ ์ธ ํผ๋ ํฌ์๋ ์ ๊ฒฝ๋ง์
๋๋ค.
์ฐ์ ์
ํ ์ดํ
์
์ ๋ํด์ ์์๋ด
์๋ค.
โ ์ ํ ์ดํ ์ ์ ์๋ฏธ์ ์ด์
์ดํ
์
ํจ์๋ ์ฃผ์ด์ง ์ฟผ๋ฆฌ(Query)โ์ ๋ํด์ ๋ชจ๋ 'ํค (Key)โ์์ ์ ์ฌ๋๋ฅผ ๊ฐ๊ฐ ๊ตฌํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ตฌํด๋ธ ์ด ์ ์ฌ๋๋ฅผ ๊ฐ์ค์น๋ก ํ์ฌ ํค์ ๋งตํ๋์ด์๋ ๊ฐ๊ฐ์ โ๊ฐ (Value)โ์ ๋ฐ์ํด์ค๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ฌ๋๊ฐ ๋ฐ์๋ โ๊ฐ(Value)โ์ ๋ชจ๋ ๊ฐ์คํฉํ์ฌ ๋ฆฌํดํฉ๋๋ค.
Q = Query : t ์์ ์ ๋์ฝ๋ ์
์์์ด ์๋ ์ํ
K = Keys : ๋ชจ๋ ์์ ์ผ| ์ธ์ฝ๋ ์
์ ์๋ ์ํ๋ค
V = Values : ๋ชจ๋ ์์ ์ ์ธ์ฝ๋ ์
์ ์๋ ์๋๋ค
๊ทธ๋ฐ๋ฐ ์ฌ์ค t ์์ ์ด๋ผ๋ ๊ฒ์ ๊ณ์ ๋ณํํ๋ฉด์ ๋ฐ๋ณต์ ์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ์ํํ๋ฏ๋ก ๊ฒฐ๊ตญ ์ ์ ์์ ์ ๋ํด์ ์ผ๋ฐํ๋ฅผ ํ ์๋ ์์ต๋๋ค.
Q = Querys : ๋ชจ๋ ์์ ์ ๋์ฝ๋ ์
์์์ ์๋ ์ํ๋ค
K = Keys : ๋ชจ๋ ์์ ์ ์ธ์ฝ๋ ์
์ ์๋ ์ํ๋ค
V = Values : ๋ชจ๋ ์์ ์ ์ธ์ฝ๋ ์
์ ์๋ ์๋๋ค
์ด์ฒ๋ผ ๊ธฐ์กด์๋ ๋์ฝ๋ ์
์ ์๋ ์ํ๊ฐ Q์ด๊ณ ์ธ์ฝ๋ ์
ธ์ ์๋ ์ํ๊ฐ K๋ผ๋ ์ ์์ Q์ K๊ฐ ์๋ก ๋ค๋ฅธ ๊ฐ์ ๊ฐ์ง๊ณ ์์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์
ํ ์ดํ
์
์์๋ Q, K, V๊ฐ ์ ๋ถ ๋์ผํฉ๋๋ค. ํธ๋์คํฌ๋จธ์ ์
ํ ์ดํ
์
์์์ Q, K, V๋ ์๋์ ๊ฐ์ต๋๋ค.
Q = Querys : ๋ชจ๋ ์์ ์ ๋ไธ๋ ์
์์์ ์๋ ์ํ๋ค
K = Keys : ๋ชจ๋ ์์ ์ ์ธ์ฝ๋ ์
์ ์๋ ์๋๊ธ
V = Values : ๋ชจ๋ ์์ ์ ์ธ๊ถๆฐ ์
์ ์๋ ์๋๋ค
์
ํ ์ดํ
์
์ ๋ํ ๊ตฌ์ ์ ์ธ ์ฌํญ์ ๋ฐฐ์ฐ๊ธฐ ์ ์ ์
ํ ์ดํ
์
์ ํตํด ์ป์ ์ ์๋ ๋ํ์ ์ธ ํจ๊ณผ์ ๋ํด์ ์ดํดํด๋ด
์๋ค.
์์ ๊ทธ๋ฆผ์ ํธ๋์คํฌ๋จธ์ ๋ํ ๊ตฌ๊ธ AI ๋ถ๋ก๊ทธ ํฌ์คํธ์์ ๊ฐ์ ธ์์ต๋๋ค. ์์ ์์ ๋ฌธ์ฅ์ ๋ฒ์ญํ๋ฉด '๊ทธ ๋๋ฌผ์ ๊ธธ์ ๊ฑด๋์ง ์์๋ค. ์๋๋ฉด ๊ทธ๊ฒ์ ๋๋ฌด ํผ๊ณคํ์๊ธฐ ๋๋ฌธ์ด๋ค.โ ๋ผ๋ ์๋ฏธ๊ฐ ๋ฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ๊ทธ๊ฒ(it)์ ํด๋นํ๋ ๊ฒ์ ๊ณผ์ฐ ๊ธธ (street)์ผ๊น์? ๋๋ฌผ (anima|) ์ผ๊น์? ์ฐ๋ฆฌ๋ ํผ๊ณคํ ์ฃผ์ ๊ฐ ๋๋ฌผ์ด๋ผ๋ ๊ฒ์ ์์ฃผ ์ฝ๊ฒ ์ ์ ์์ง๋ง ๊ธฐ๊ณ๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ํ์ง๋ง ์
ํ ์ดํ
์
์ ์
๋ ฅ ๋ฌธ์ฅ ๋ด์ ๋จ์ด๋ค๋ผ๋ฆฌ ์ ์ฌ๋๋ฅผ ๊ตฌํ๋ฏ๋ก์ ๊ทธ๊ฒ(it)์ด ๋๋ฌผ(animal) ๊ณผ ์ฐ๊ด๋์์ ํ๋ฅ ์ด ๋๋ค๋ ๊ฒ์ ์ฐพ์๋
๋๋ค.
โ Q, K, V ๋ฒกํฐ ์ป๊ธฐ
์์ ์
ํ ์ดํ
์
์ ์
๋ ฅ ๋ฌธ์ฅ์ ๋จ์ด ๋ฒกํฐ๋ค์ ๊ฐ์ง๊ณ ์ํํ๋ค๊ณ ํ์๋๋ฐ, ์ฌ์ค ์
ํ ์ดํ
์
์ ์ธ์ฝ๋์ ์ด๊ธฐ ์
๋ ฅ์ธ d_model ์ ์ฐจ์์ ๊ฐ์ง๋ ๋จ์ด ๋ฒกํฐ๋ค์ ์ฌ์ฉํ์ฌ ์
ํ ์ดํ
์
์ ์ํํ๋ ๊ฒ์ด ์๋๋ผ ์ฐ์ ๊ฐ ๋จ์ด ๋ฒกํฐ๋ค๋ก๋ถํฐ Q๋ฒกํฐ, K ๋ฒกํฐ, V๋ฒกํฐ๋ฅผ ์ป๋ ์์
์ ๊ฑฐ์นฉ๋๋ค.
์ด๋ ์ด Q๋ฒกํฐ, K ๋ฒกํฐ, V๋ฒกํฐ๋ค์ ์ด๊ธฐ ์
๋ ฅ์ธ d_model ์ ์์์ ๊ฐ์ง๋ ๋จ์ด ๋ฒกํฐ๋ค๋ณด๋ค ๋ ์์ ์์์ ๊ฐ์ง๋๋ฐ,๋
ผ๋ฌธ์์๋ = 512 ์ ์์์ ๊ฐ์ก๋ ๊ฐ ๋จ์ด ๋ฒกํฐ๋ค์ 64์ ์ฐจ์์ ๊ฐ์ง๋ Q๋ฒกํฐ, K๋ฒกํฐ, v๋ฒกํฐ๋ก ๋ณ์ํ์์ต๋๋ค.
64๋ผ๋ ๊ฐ์ ํธ๋์คํฌ๋จธ์ ๋ ๋ค๋ฅธ ํ์ดํผํ๋ผ๋ฏธํฐ์ธ num_heads ๋ก ์ธํด ๊ฒฐ์ ๋๋๋ฐ, ํธ๋์คํฌ๋จธ๋ ์ num_heads๋ก ๋๋ ๊ฐ์ ๊ฐ Q๋ฒกํฐ, K๋ฒกํฐ, V๋ฒกํฐ์ ์ฐจ์์ผ๋ก ๊ฒฐ์ ํฉ๋๋ค. ๋
ผ๋ฌธ์์๋ num_heads ๋ฅผ 8๋กํ์์ต๋๋ค. ์ด์ ๊ทธ๋ฆผ์ ํตํด ์ดํดํด๋ด
์๋ค. ์๋ฅผ ๋ค์ด ์ฌ๊ธฐ์ ์ฌ์ฉํ๊ณ ์๋ ์๋ฌธ ์ค student๋ผ๋ ๋จ์ด ๋ฒกํฐ๋ฅผ ์ ๋ฒกํฐ๋ก ๋ณ์ํ๋ ๊ณผ์ ์ ๋ณด๊ฒ ์ต๋๋ค.
๊ธฐ์กด์ ๋ฒกํฐ๋ก๋ถํฐ ๋ ์์ ๋ฒกํฐ๋ ๊ฐ์ค์น ํ๋ ฌ์ ๊ณฑํ๋ฏ๋ก์ ์์ฑ
๊ฐ ๊ฐ์ค์น ํ๋ ฌ์ ์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋๋ค.
์ด ๊ฐ์ค์ง ํ๋ ฌ์ ํ๋ จ ๊ณผ์ ์์ ํ์ต๋ฉ๋๋ค.
์ฆ, ๋
ผ๋ฌธ๊ณผ ๊ฐ์ด = 512 ์ด๊ณ num_heads = 8๋ผ๋ฉด, ๊ฐ ๋ฒกํฐ์ 3๊ฐ์ ์๋ก ๋ค๋ฅธ ๊ฐ์ค์ง ํ๋ ฌ์ ๊ณฑํ๊ณ 64์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ ๋ฒกํฐ๋ฅผ ์ป์ด๋
๋๋ค. ์์ ๊ทธ๋ฆผ์ ๋จ์ด ๋ฒกํฐ ์ค student ๋ฒกํฐ๋ก๋ถํฐ ๋ฒกํฐ๋ฅผ ์ป์ด๋ด๋ ๋ชจ์ต์ ๋ณด์ฌ์ค๋๋ค. ๋ชจ๋ ๋จ์ด ๋ฒกํฐ์ ์์ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์น๋ฉด I, am, a, student๋ ๊ฐ๊ฐ์ ๋ฒกํฐ๋ฅผ ์ป์ต๋๋ค.
โ ์ค์ผ์ผ๋ ๋ท-ํ๋ก๋ํธ ์ดํ ์
๋ฒกํฐ๋ฅผ ์ป์๋ค๋ฉด ์ง๊ธ๋ถํฐ๋ ๊ธฐ์กด์ ๋ฐฐ์ด ์ดํ
์ ๋ฉ์ปค๋์ฆ๊ณผ ๋์ผํฉ๋๋ค. ๊ฐ ๋ฒกํฐ๋ ๋ชจ๋ ๋ฒกํฐ์ ๋ํด์ ์ดํ
์
์ค์ฝ์ด๋ฅผ ๊ตฌํ๊ณ , ์ดํ
์
๋ถํฌ๋ฅผ ๊ตฌํ ๋ค์ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๋ฒกํฐ๋ฅผ ๊ฐ์คํฉํ์ฌ ์ดํ
์
๊ฐ ๋๋ ์ปจํ
์คํธ ๋ฒกํฐ๋ฅผ ๊ตฌํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ๋ชจ๋ Q ๋ฐฑํฐ์ ๋ํด์ ๋ฐ๋ณตํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ์์ ์ดํ
์
์ฑํฐ์์ ์ดํ
์
ํจ์์ ์ข
๋ฅ๋ ๋ค์ํ๋ค๊ณ ์ธ๊ธํ ๋ฐ ์์ต๋๋ค. ํธ๋์คํฌ๋จธ์์๋ ์ดํ
์
์ฑํฐ์ ์ฌ์ฉํ๋ ๋ด์ ๋ง์ ์ฌ์ฉํ๋ ์ดํ
์
ํจ์ = ๊ฐ ์๋๋ผ ์ฌ๊ธฐ์ ํน์ ๊ฐ์ผ๋ก ๋๋ ์ค ์ดํ
์
ํจ์์ธ = ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฌํ ํจ์๋ฅผ ์ฌ์ฉํ๋ ์ดํ
์
์ ์ดํ
์ ์ฑํฐ์์ ๋ฐฐ์ด ๋ท-ํ๋ก๋ํธ ์ดํ
์
(dot-product attention) ์์ ๊ฐ์ ์ค์ผ์ผ๋งํ๋ ๊ฒ์ ์ฃผ๊ฐํ์๋ค๊ณ ํ์ฌ ์ค์ผ์ผ๋ ๋ท-ํ๋ฅด๋ํธ ์ดํ
์
(Scaled dot-product Attention) ์ด๋ผ๊ณ ํฉ๋๋ค. ์ด์ ๊ทธ๋ฆผ์ ํตํด ์ดํดํด๋ด
์๋ค.
์ฐ์ ๋จ์ด ์ ๋ํ ๋ฒกํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ช
ํด๋ณด๊ฒ ์ต๋๋ค.
์ง๊ธ๋ถํฐ ์ค๋ช
ํ๋ ๊ณผ์ ์ am์ ๋ํ ๋ฒกํฐ, a์ ๋ํ Q๋ฒกํฐ, student์ ๋ํ Q๋ฒกํฐ์ ๋ํด์๋ ๋ชจ๋ ๋์ผํ ๊ณผ์ ์ ๊ฑฐ์ง๋๋ค. ์์ ๊ทธ๋ฆผ์ ๋จ์ด I์ ๋ํ Q ๋ฒกํฐ๊ฐ ๋ชจ๋ K ๋ฒกํฐ์ ๋ํด์ ์ดํ
์
์ค์ฝ์ด๋ฅผ ๊ตฌํ๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค. ์์ 128๊ณผ 32๋ ์ ์๊ฐ ์์๋ก ๊ฐ์ ํ ์์ง๋ก ์ ๊ฒฝ์ฐ์ง์์๋์ข์ต๋๋ค.
์์ ๊ทธ๋ฆผ์์ ์ดํ
์ ์ค์ฝ์ด๋ ๊ฐ๊ฐ ๋จ์ด ๊ฐ ๋จ์ด I, am, a, student์ ์ผ๋ง๋ ์ฐ๊ด๋์ด ์๋์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ์์น์
๋๋ค. ํธ๋์คํฌ๋จธ์์๋ ๋ ๋ฒกํฐ์ ๋ด์ ๊ฐ์ ์ค์ผ์ผ๋งํ๋ ๊ฐ์ผ๋ก ๋ฒกํฐ์ ์์์ ๋ํ๋ด๋ ์ ๋ฃจํธ๋ฅผ ์์ด๊ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ ํํ์ต๋๋ค. ์์ ์ธ๊ธํ์๋ฏ์ด ๋
ผ๋ฌธ์์ ๋ ๋ผ๋ ์์ ๋ฐ๋ผ์ 64์ ๊ฐ์ ๊ฐ์ง๋ฏ๋ก ๋8์ ๊ฐ์๊ฐ์ง๋๋ค.
CODE
โ ํ๋ ฌ ์ฐ์ฐ์ผ๋ก ์ผ๊ด ์ฒ๋ฆฌํ๊ธฐ
์ฌ์ค ๊ฐ ๋จ์ด์ ๋ํ ๋ฒกํฐ๋ฅผ ๊ตฌํ๊ณ ์ค์ผ์ผ๋ ๋ท-ํ๋ก๋ํธ ์ดํ
์ ์ ์ํํ์๋ ์์ ๊ณผ์ ๋ค์ ๋ฒกํฐ ์ฐ์ฐ์ด ์๋๋ผ ํ๋ ฌ ์ฐ์ฐ์ ์ฌ์ฉํ๋ฉด ์ผ๊ด ๊ณ์ฐ์ด ๊ฐ๋ฅํฉ๋๋ค. ์ง๊ธ๊น์ง ๋ฒกํฐ ์ฐ์ฐ์ผ๋ก ์ค๋ช
ํ์๋ ์ด์ ๋ ์ดํด๋ฅผ ๋๊ธฐ ์ํ ๊ณผ์ ์ด๊ณ , ์ค์ ๋ก๋ ํ๋ ฌ ์ฐ์ฐ์ผ๋ก ๊ตฌํ๋ฉ๋๋ค.
์์ ๊ณผ์ ์ ๋ฒกํฐ๊ฐ ์๋ ํ๋ ฌ ์ฐ์ฐ์ผ๋ก ์ดํดํด๋ด
์๋ค. ์ฐ์ , ๊ฐ ๋จ์ด ๋ฒกํฐ๋ง๋ค ์ผ์ผํ ๊ฐ์ค์น ํ๋ ฌ์ ๊ณฑํ๋ ๊ฒ์ด ์๋๋ผ ๋ฌธ์ฅ ํ๋ ฌ์ ๊ฐ์ค์น ํ๋ ฌ์ ๊ณฑํ์ฌ ํ๋ ฌ, ํ๋ ฌ, ํ๋ ฌ์ ๊ตฌํฉ๋๋ค.
์ด์ ํ๋ ฌ ์ฐ์ฐ์ ํตํด ์ดํ
์ ์ค์ฝ์ด๋ ์ด๋ป๊ฒ ๊ตฌํ ์ ์์๊น์? ์ฌ๊ธฐ์ Q ํ๋ ฌ์ K ํ๋ ฌ์ ์ ์นํ ํ๋ ฌ๊ณผ ๊ณฑํด์ค๋ค๊ณ ํด๋ด
์๋ค. ์ด๋ ๊ฒ ๋๋ฉด ๊ฐ๊ฐ์ ๋จ์ด์ Q๋ฒกํฐ์ K๋ฒกํฐ์ ๋ด์ ์ด ๊ฐ ํ๋ ฌ์ ์์๊ฐ ๋๋ ํ๋ ฌ์ด ๊ฒฐ๊ณผ๋ก ๋์ต๋๋ค.
๋ค์ ๋งํด ์์ ๊ทธ๋ฆผ์ ๊ฒฐ๊ณผ ํ๋ ฌ์ ๊ฐ์ ์ ์ฒด์ ์ผ๋ก ๋ฅผ ๋๋์ด์ฃผ๋ฉด ์ด๋ ๊ฐ ํ๊ณผ ์ด์ด ์ดํ
์ ์ค์ฝ์ด๊ฐ์ ๊ฐ์ง๋ ํ๋ ฌ์ด ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด I ํ๊ณผ st udent ์ด์ ๊ฐ์ I ์ Q๋ฒกํฐ์ student์ K ๋ฒกํฐ์ ์ดํ
์
์ค์ฝ์ด์ ๋์ผํํ๋ ฌ์ด ๋๋ค๋ ๊ฒ์
๋๋ค. ์ฆ, ์ดํ
์ ์ค์ฝ์ด ํ๋ ฌ์
๋๋ค. ์ดํ
์ ์ค์ฝ์ด ํ๋ ฌ์ ๊ตฌํ์๋ค๋ฉด ๋จ์ ๊ฒ์ ์ดํ
์
๋ถํฌ๋ฅผ๊ตฌํ๊ณ , ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๋จ์ด์ ๋ํ ์ดํ
์
๊ฐ์ ๊ตฌํ๋ ์ผ์
๋๋ค. ์ด๋ ๊ฐ๋จํ๊ฒ ์ดํ
์ ์ค์ฝ์ด ํ๋ ฌ์ ์ํํธ๋งฅ์ค ํจ์๋ฅผ ์ฌ์ฉํ๊ณ , V ํ๋ ฌ์ ๊ณฑํ๋ ๊ฒ์ผ๋ก ํด๊ฒฐ๋ฉ๋๋ค. ์ด๋ ๊ฒ ๋๋ฉด ๊ฐ ๋จ์ด์ ์ดํ
์
๊ฐ์ ๋ชจ๋ ๊ฐ์ง๋ ์ดํ
์
๊ฐ ํ๋ ฌ์ด ๊ฒฐ๊ณผ๋ก ๋์ต๋๋ค.
์์ ๊ทธ๋ฆผ์ ํ๋ ฌ ์ฐ์ฐ์ ํตํด ๋ชจ๋ ๊ฐ์ด ์ผ๊ด ๊ณ์ฐ๋๋ ๊ณผ์ ์ ์์ผ๋ก ๋ณด์ฌ์ค๋๋ค. ํด๋น ์์ ์ค์ ํธ๋์คํฌ๋จธ ๋
ผ๋ฌธ์ ๊ธฐ์ฌ๋ ์๋์ ์์๊ณผ ์ ํํ๊ฒ ์ผ์นํ๋ ์์
๋๋ค.
์์ ํ๋ ฌ ์ฐ์ฐ์ ์ฌ์ฉ๋ ํ๋ ฌ์ ํฌ๊ธฐ๋ฅผ ๋ชจ๋ ์ ๋ฆฌํด๋ด
์๋ค. ์ฐ์ ์
๋ ฅ ๋ฌธ์ฅ์ ๊ธธ์ด๋ฅผ seq_len์ด๋ผ๊ณ ํด๋ด
์๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ฌธ์ฅ ํ๋ ฌ์ ํฌ๊ธฐ๋ seq_len, ์
๋๋ค. ์ฌ๊ธฐ์ 3๊ฐ์ ๊ฐ์ค์ง ํ๋ ฌ์ ๊ณฑํด์ ํ๋ ฌ์ ๋ง๋ค์ด์ผํฉ๋๋ค.
์ฐ์ ํ๋ ฌ์ ํฌ๊ธฐ๋ฅผ ์ ์ํ๊ธฐ ์ํด ํ๋ ฌ์ ๊ฐ ํ์ ํด๋น๋๋ ๋ฒกํฐ์ ๋ฒกํฐ์ ํฌ๊ธฐ๋ฅผ ๋ผ๊ณ ํ๊ณ , ๋ฒกํฐ์ ํฌ๊ธฐ๋ฅผ ๋ผ๊ณ ํด๋ด
์๋ค. ๊ทธ๋ ๋ค๋ฉด ํ๋ ฌ๊ณผ ํ๋ ฌ์ ํฌ๊ธฐ๋ (seq_len, ) ์ด๋ฉฐ, ํ๋ ฌ์ ํฌ๊ธฐ๋ (seq_len, ) ๊ฐ ๋์ด์ผ ํฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ฌธ์ฅ ํ๋ ฌ๊ณผ ํ๋ ฌ์ ํฌ๊ธฐ๋ก๋ถํฐ ๊ฐ์ค์น ํ๋ ฌ์ ํฌ๊ธฐ ์ถ์ ์ด ๊ฐ๋ฅํฉ๋๋ค. ์ ๋ (, ) ์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ฉฐ, ๋ (, ) ์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋๋ค. ๋จ, ๋
ผ๋ฌธ์์๋ ์ ์ ํฌ๊ธฐ๋ ์ ๊ฐ์ต๋๋ค.
์ฆ, = = ์
๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก
์์ ์ ์ฉํ์ฌ ๋์ค๋ ์ดํ
์
๊ฐ ํ๋ ฌ a์ ํฌ๊ธฐ๋ (seq_len, )์ด ๋ฉ๋๋ค.
์ค์ต CODE
๋ฉํฐ ํค๋ ์ดํ ์ (Multi -head Attention)
์์ ๋ฐฐ์ด ์ดํ
์ ์์๋ ์ ์์์ ๊ฐ์ง ๋จ์ด ๋ฒกํฐ๋ฅผ num_heads๋ก ๋๋ ์์์ ๊ฐ์ง๋ ๋ฒกํฐ๋ก ๋ฐ๊พธ๊ณ ์ดํ
์ ์จ ์ํํ์์ต๋๋ค. ๋
ผ๋ฌธ ๊ธฐ์ค์ผ๋ก๋ 512์ ์์์ ๊ฐ ๋จ์ด ๋ฒกํฐ๋ฅผ 8๋ก ๋๋์ด 64์ฐจ์์ ๋ฒกํฐ๋ก ๋ฐ๊พธ์ด์ ์ดํ
์
์ ์ํํ ์์ธ๋ฐ, ์ด์ num_heads ์ ์๋ฏธ์ ์ dmodel ์ ์์์ ๊ฐ์ง ๋จ์ด ๋ฒกํฐ๋ฅผ ๊ฐ์ง๊ณ ์ดํ
์
์ ํ์ง ์๊ณ ์์์ ์ถ์์ํจ ๋ฒกํฐ๋ก ์ดํ
์
์ ์ํํ์๋์ง ์ดํดํด๋ณด๊ฒ ์ต๋๋ค.
ํธ๋์คํฌ๋จธ ์ฐ๊ตฌ์ง์ ํ ๋ฒ์ ์ดํ
์
์ ํ๋ ๊ฒ๋ณด๋ค ์ฌ๋ฌ๋ฒ์ ์ดํ
์
์ ๋ณ๋ ฌ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ํจ๊ณผ์ ์ด๋ผ๊ณ ํ๋จํ์์ต๋๋ค. ๊ทธ๋์ ์ ์์์ num_heads๊ฐ๋ก ๋๋์ด /num_heads ์ ์ฐจ์์ ๊ฐ์ง๋ ์ ๋ํด์ num_heads ๊ฐ์ ๋ณ๋ ฌ ์ดํ
์
์ ์ํํฉ๋๋ค.
๋
ผ๋ฌธ์์๋ ํ์ดํผํ๋ผ๋ฏธํฐ์ธ num_heads ์ ๊ฐ์ 8๋ก ์ง์ ํ์๊ณ , 8๊ฐ์ ๋ณ๋ ฌ ์ดํ
์
์ด ์ด๋ฃจ์ด์ง๊ฒ ๋ฉ๋๋ค.
๋ค์ ๋งํด ์์์ ์ค๋ช
ํ ์ดํ
์
์ด 8๊ฐ๋ก ๋ณ๋ ฌ๋ก ์ด๋ฃจ์ด์ง๊ฒ ๋๋๋ฐ,์ด๋ ๊ฐ๊ฐ์ ์ดํ
์
๊ฐ ํ๋ ฌ์ ์ดํ
์ ํค๋๋ผ๊ณ ๋ถ๋ฆ
๋๋ค.
์ด๋ ๊ฐ์ค์น ํ๋ ฌ , , ์ ๊ฐ์ 8๊ฐ์ ์ดํ
์
ํค๋๋ง๋ค ์ ๋ถ ๋ค๋ฆ
๋๋ค.
๋ณ๋ ฌ ์ดํ
์ ์ผ๋ก ์ป์ ์ ์๋ ํจ๊ณผ๋ ๋ฌด์์ผ๊น์?
๊ทธ๋ฆฌ์ค๋ก๋ง์ ํ์๋ ๋จธ๋ฆฌ๊ฐ ์ฌ๋ฌ ๊ฐ์ธ ๊ดด๋ฌผ ํ๋๋ผ๋ ์ผ๋ก๋ฒ ๋ก์ค๊ฐ ๋์ต๋๋ค. ์ด ๊ดด๋ฌผ๋ค์ ํน์ง์ ๋จธ๋ฆฌ๊ฐ ์ฌ๋ฌ ๊ฐ์ด๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ์์ ์์ ์๋๋ฐฉ์ ๋ถ ์ ์๋ค๋ ๊ฒ๋๋ค. ์ด๋ ๊ฒ๋๋ฉด ์๊ฐ์์ ๋์น๋ ๊ฒ ๋ณ๋ก ์์ํ
๋๊น ์ด๋ฐ ๊ดด๋ฌผ๋ค์๊ฒ ๊ธฐ์ต์ ํ๋ ๊ฒ์ด ๊ต์ฅํ ํ์ด ๋ค๊ฒ๋๋ค.
๋ฉํฐ ํค๋ ์ดํ
์
๋ ๋๊ฐ์ต๋๋ค. ์ดํ
์
์ ๋ณ๋ ฌ๋ก ์ํํ์ฌ ๋ค๋ฅธ ์๊ฐ์ผ๋ก ์ ๋ณด๋ค์ ์์งํ๊ฒ ๋ค๋ ๊ฒ๋๋ค.
์๋ฅผ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ์์ ์ฌ์ฉํ ์๋ฌธ '๊ทธ ๋๋ฌผ์ ๊ธธ์ ๊ฑด๋์ง ์์๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ์ ๋๋ฌด ํผ๊ณคํ์๊ธฐ ๋๋ฌธ์ด๋ค.๋ฅผ ์๊ธฐํด๋ด
์๋ค. ๋จ์ด ๊ทธ๊ฒ(it)์ด ์ฟผ๋ฆฌ์๋ค๊ณ ํด๋ด
์๋ค. ์ฆ, it์ ๋ํ Q๋ฒกํฐ๋ก๋ถํฐ ๋ค๋ฅธ ๋จ์ด์์ ์ฐ๊ด๋๋ฅผ ๊ตฌํ์์ ๋ ์ฒซ๋ฒ์งธ ์ดํ
์ ํค๋๋ '๊ทธ๊ฒ(it)โ๊ณผ '๋๋ฌผ(anima|)โ ์ ์ฐ๊ด๋๋ฅผ ๋๊ฒ ๋ณธ๋ค๋ฉด, ๋๋ฒ์งธ ์ดํ
์ ํค๋๋ '๊ทธ๊ฒ (it)โ๊ณผ 'ํผ๊ณคํ์๊ธฐ ๋๋ฌธ์ด๋ค(tired)' ์ ์ฐ๊ด๋๋ฅผ ๋๊ฒ ๋ถ ์ ์์ต๋๋ค. ๊ฐ ์ดํ
์
ํค๋๋ ์ ๋ถ ๋ค๋ฅธ ์๊ฐ์์ ๋ณด๊ณ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
๋ณ๋ ฌ ์ดํ
์ ์ ๋ชจ๋ ์ํํ์๋ค๋ฉด ๋ชจ๋ ์ดํ
์
ํค๋๋ฅผ ์ฐ๊ฒฐ(concatenate) ํฉ๋๋ค. ๋ชจ๋ ์ฐ๊ฒฐ๋ ์ดํ
์
ํค๋ ํ๋ ฌ์ ํฌ๊ธฐ๋ (seq_len, ) ๊ฐ ๋ฉ๋๋ค.
์ง๊ธ๊น์ง ๊ทธ๋ฆผ์์๋ ๋
ธ์
์ ์ง๋ฉด์์ ํ๊ณ๋ก 4์์์ = 512 ๋ก ํํํ๊ณ , 2์ฐจ์์ = 64๋ก ํํํด์๊ธฐ ๋๋ฌธ์ ์์ ๊ทธ๋ฆผ์ ํ๋ ฌ์ ํฌ๊ธฐ์ ํผ๋์ ์์ ์ ์์ผ๋ 8๊ฐ์ ์ดํ
์ ํค๋์ ์ฐ๊ฒฐ (concatenate), ๊ณผ์ ์ ์ดํด๋ฅผ ์ํด ์ด๋ฒ ํ๋ ฌ๋ง ์์ธ๋ก ์์ ๊ฐ์ด ์ ํฌ๊ธฐ๋ฅผ ์ 8 ๋ฐฐ์ธ 16์ฐจ์์ผ๋ก ํํํ์์ต๋๋ค.
์๋์ ๊ทธ๋ฆผ์์๋ ๋ค์ ๋ฅผ 4์ฐจ์์ผ๋ก ํํํฉ๋๋ค.
๋ฉํฐ ํค๋ ์ดํ ์ (Multi -head Attention)
์ดํ
์
ํค๋๋ฅผ ๋ชจ๋ ์ฐ๊ฒฐํ ํ๋ ฌ์ ๋ ๋ค๋ฅธ ๊ฐ์ค์ง ํ๋ ฌ ์ ๊ณฑํ๊ฒ ๋๋๋ฐ, ์ด๋ ๊ฒ ๋์จ ๊ฒฐ๊ณผ ํ๋ ฌ์ด ๋ฉํฐ-ํค๋ ์ดํ
์
์ ์ต์ข
๊ฒฐ๊ณผ๋ฌผ์
๋๋ค. ์์ ๊ทธ๋ฆผ์ ์ดํ
์
ํค๋๋ฅผ ๋ชจ๋ ์ฐ๊ฒฐํ ํ๋ ฌ์ด ๊ฐ์ค์ง ํ๋ ฌ ๊ณผ ๊ณฑํด์ง๋ ๊ณผ์ ์ ๋ณด์ฌ์ค๋๋ ์ด๋ ๊ฒฐ๊ณผ๋ฌผ์ธ ๋ฉํฐ-ํค๋ ์ดํ
์
ํ๋ ฌ์ ์ธ์ฝ๋์ ์
๋ ฅ์ด์๋ ๋ฌธ์ฅ ํ๋ ฌ์ (seq_len, ) ํฌ๊ธฐ์ ๋์ผํฉ๋๋ค.
๋ค์ ๋งํด ์ธ์ฝ๋์ ์ฒซ๋ฒ์งธ ์๋ธ์ธต์ธ ๋ฉํฐ-ํค๋ ์ดํ
์
๋จ๊ณ๋ฅผ ๋๋ง์ณค์ ๋, ์ธ์ฝ๋์ ์
๋ ฅ์ผ๋ก ๋ค์ด์๋ ํ๋ ฌ์ ํฌ๊ธฐ๊ฐ ์์ง ์ ์ง๋๊ณ ์์์ ๊ธฐ์ตํด๋ก์๋ค. ์ฒซ๋ฒ์งธ ์๋ธ์ธต์ธ ๋ฉํฐ-ํค๋ ์ดํ
์
๊ณผ ๋๋ฒ์งธ ์๋ธ์ธต์ธ ํฌ์ง์ ์์ด์ฆ ํผ๋ ํฌ์๋ ์ ๊ฒฝ๋ง์ ์ง๋๋ฉด์ ์ธ์ฝ๋์ ์
๋ ฅ์ผ๋ก ๋ค์ด์ฌ ๋์ ํ๋ ฌ์ ํฌ๊ธฐ๋ ๊ณ์ ์ ์ง๋์ด์ผ ํฉ๋๋ค. ํธ๋์คํฌ๋จธ๋๋ค์์ ์ธ์ฝ๋๋ฅผ ์์ ํํ์ธ๋ฐ(๋
ผ๋ฌธ์์๋ ์ธ์ฝ๋๊ฐ 6๊ฐ), ์ธ์ฝ๋์์์ ์
๋ ฅ์ ํฌ๊ธฐ๊ฐ ์ค๋ ฅ์์๋ ๋์ผ ํฌ๊ธฐ๋ก ๊ณ์ ์ ์ง๋์ด์ผ๋ง ๋ค์ ์ธ์ฝ๋์์๋ ๋ค์ ์
๋ ฅ์ด ๋ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
๋ฉํฐ ํค๋ ์ดํ ์ (Multi -head Attention) ๊ตฌํํ๊ธฐ
๋ฉํฐ ํค๋ ์ดํ
์ ์์๋ ํฌ ๊ฒ ๋ ์ข
๋ฅ์ ๊ฐ์ค์น ํ๋ ฌ์ด L~์ต๋๋ค. ๋ฐ๋ก ํ๋ ฌ์ ๋ง๋ค๊ธฐ ์ํ ๊ฐ์ค์น ํ๋ ฌ์ธ ํ๋ ฌ๊ณผ ๋ฐ๋ก ์ดํ
์
ํค๋๋ค์ ์ฐ๊ฒฐ (conca tenation) ํ์ ๊ณฑํด์ฃผ๋ ํ๋ ฌ์
๋๋ค. ๊ฐ์ค์ง ํ๋ ฌ์ ๊ณฑํ๋ ๊ฒ์ ๊ตฌํ ์์์๋ ์
๋ ฅ์ ๋ฐ์ง์ธต(Dense layer)๋ฅผ ์ง๋๊ฒ ํ๋ฏ๋ก์ ๊ตฌํํฉ๋๋ค. ์ผ๋ผ์ค ์ฝ๋ ์์ผ๋ก ์ง๊ธ๊น์ง ์ค๊ธฐ์๊ฒ ์ฌ์ฉํด์๋ Dense()์ ํด๋น๋ฉ๋๋ค.
๋ฉํฐ ํค๋ ์ดํ
์
์ ๊ตฌํ์ ํฌ๊ฒ ๋ค์ฏ ๊ฐ์ง ํํธ๋ก ๊ตฌ์ฑ
1. ์ ํด๋นํ๋ ํฌ๊ธฐ์ ๋ฐ์ง์ธต(Dense layer}์ ์ง๋๊ฒํ๋ค
2. ์ง์ ๋ ํค๋ ์(num_heads)๊ดํผ ๋๋๋ค(split).
3. ์ค์ผ์ผ๋ ๋ท ํ๋ก๋ํธ ์ดํ
์ .
4. ๋๋ ์ก๋ ํค๋๋ค์ ์ฐ๊ฒฐ (concatenateti on) ํ๋ค.
5. ์ ํด๋นํ๋ ๋ฐ์ง์ฆ์ ์ง๋๊ฒ ํ๋ค.
์ฝ๋
ํจ๋ฉ ๋ง์คํฌ (Padding Mask)
์ค์ผ์ผ๋ ๋ท ํ๋ก๋ํธ ์ดํ
์ ํจ์ ๋ด๋ถ๋ฅผ ๋ณด๋ฉด mask๋ผ๋ ๊ฐ์ ์ธ์๋ก ๋ฐ์์, ์ด mask๊ฐ์๋ค๊ฐ -le9๋ผ๋ ์์ฃผ ์์จ ์์๊ฐ์ ๊ณฑํ ํ ์ดํ
์
์ค์ฝ์ด ํ๋ ฌ์ ๋ํด์ฃผ๊ณ ์์ต๋๋ค. ์ด ์ฐ์ฐ์ ์ ์ ๋ ๋ฌด์์ผ๊น์?
def scaled_dot_product_attention(query, key, value, mask):
...์ค๋ต...
logits += (mask * -1e9) #์ดํ
์
์ค์ฝ์ด ํ๋ ฌ์ธ logits ์ mask * -1e9๊ฐ์ ๋ํด์ฃผ๊ณ ์๋ค.
...์ค๋ต...
Python
๋ณต์ฌ
์ด๋ ์
๋ ฅ ๋ฌธ์ฅ์ <PAD> ํ ํฐ์ด ์์ ๊ฒฝ์ฐ ์ดํ
์
์์ ์ฌ์ค์ ์ ์ธํ๊ธฐ ์ํ ์ฐ์ฐ์
๋๋ค. ์๋ฅผ ๋ค์ด <PAD>๊ฐ ํฌํจ๋ ์
๋ ฅ ๋ฌธ์ฅ์ ์
ํ ์ดํ
์
์ ์์ ๋ฅผ ๋ด
์๋ค. ์ด์ ๋ํด์ ์ดํ
์
์ ์ํํ๊ณ ์ดํ
์
์ค์ฝ์ด(Attention Score) ํ๋ ฌ์ ์ป๋ ๊ณผ์ ์ ๋ค์๊ณผ๊ฐ์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์ฌ์ค ๋จ์ด <PAD>์ ๊ฒฝ์ฐ์๋ ์ค์ง์ ์ธ ์๋ฏธ๋ฅผ ๊ฐ์ง ๋จ์ด๊ฐ ์๋๋๋ค. ๊ทธ๋์ ํธ๋์คํฌ๋จธ์์๋ Key์ ๊ฒฝ์ฐ์ <PAD> ํ ํฐ์ด ์กด์ฌํ๋ค๋ฉด ์ด์ ๋ํด์๋ ์ ์ฌ๋๋ฅผ ๊ตฌํ์ง ์๋๋ก ๋ง์คํน (Masking)์ ํด์ฃผ๊ธฐ๋ก ํ์ต๋๋ค. ์ฌ๊ธฐ์ ๋ง์คํน์ด๋ ์ดํ
์ ์์ ์ ์ธํ๊ธฐ ์ํด ๊ฐ์ ๊ฐ๋ฆฐ๋ค๋ ์๋ฏธ์
๋๋ค. ์ดํ
์ ์ค์ฝ์ด ํ๋ ฌ์์ ํ์ ํด๋นํ๋ ๋ฌธ์ฅ์ Query์ด๊ณ , ์ด์ ํด๋นํ๋ ๋ฌธ์ฅ์ Key์
๋๋ค. ๊ทธ๋ฆฌ๊ณ Key์ <PAD>๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ํด๋น ์ด ์ ์ ๋ฅผ ๋ง์คํน์ ํด์ค๋๋ค.
๋ง์คํน์ ํ๋ ๋ฐฉ๋ฒ์ ์ดํ
์
์ค์ฝ์ด ํ๋ ฌ์ ๋ง์คํน ์์ง์ ๋งค์ฐ ์์ ์์๊ฐ์ ๋ฃ์ด์ฃผ๋ ๊ฒ์
๋๋ค. ์ฌ๊ธฐ์ ๋งค์ฐ ์์ ์์๊ฐ์ด๋ผ๋ ๊ฒ์ -1,000,000,000๊ณผ ๊ฐ์ -๋ฌดํ๋์ ๊ฐ๊น์ด ์๋ผ๋ ์๋ฏธ์
๋๋ค. ํ์ฌ ์ดํ
์
์ค์ฝ์ด ํจ์๋ ์ํํธ๋งฅ์ค ํจ์๋ฅผ ์ง๋์ง ์์ ์ํ์
๋๋ค. ์์ ๋ฐฐ์ด ์ฐ์ฐ ์์๋ผ๋ฉด ์ดํ
์
์ค์ฝ์ด ํจ์๋ ์ํํธ๋งฅ์ค ํจ์๋ฅผ ์ง๋๊ณ , ๊ทธ ํ Value ํ๋ ฌ๊ณผ ๊ณฑํด์ง๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ํ์ฌ ๋ง์คํน ์์ง์ ๋งค์ฐ ์์ ์์ ๊ฐ์ด ๋ค์ด๊ฐ ์์ผ๋ฏ๋ก ์ดํ
์
์ค์ฝ์ด ํ๋ ฌ์ด ์ํํธ๋งฅ์ค ํจ์๋ฅผ ์ง๋ ํ์๋ ํด๋น ์์ง์ ๊ฐ์ 0์ ๊ต์ฅํ ๊ฐ๊น์ด ๊ฐ์ด ๋์ด ๋จ์ด ๊ฐ ์ ์ฌ๋๋ฅผ ๊ตฌํ๋ ์ผ์ <PAD> ํ ํฐ์ด ๋ฐ์๋์ง ์๊ฒ ๋ฉ๋๋ค.
์ ๊ทธ๋ฆผ์ ์ํํธ๋งฅ์ค ํจ์๋ฅผ ์ง๋ ํ๋ฅผ ๊ฐ์ ํ๊ณ ์์ต๋๋ค. ์ํํธ๋งฅ์ค ํจ์๋ฅผ ์ง๋๋ฉด ๊ฐ ํ์ ์ดํ
์ ๊ฐ์ค์ง์ ์ดํฉ์ 1 ์ด ๋๋๋ฐ, ๋จ์ด <PAD> ์ ๊ฒฝ์ฐ์๋ 0 ์ด ๋์ด ์ด๋ค ์ ์๋ฏธํ ๊ฐ์ ๊ฐ์ง๊ณ ์์ง ์์ต๋๋ค.
ํจ๋ฉ ๋ง์คํฌ๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์
๋ ฅ๋ ์ ์ ์ํ์ค์์ ํจ๋ฉ ํ ํฐ์ ์ธ๋ฑ์ค์ธ์ง, ์๋์ง๋ฅผ ํ๋ณํ๋ ํจ์๋ฅผ ๊ตฌํํ๋ ๊ฒ์
๋๋ค. ์๋์ ํจ์๋ ์ ์ ์ํ์ค์์ 0์ธ ๊ฒฝ์ฐ์๋ 1 ๋ก ๋ณ์ํ๊ณ , ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์๋ 0์ผ๋ก ๋ณ์ํ๋ ํจ์์
๋๋ค.
def create_padding_mask(x):
mask = tf.cast(tf.math.equal(x,0), tf.float32)
#(batch_size, 1, 1, key์ ๋ฌธ์ฅ๊ธธ์ด)
return mask[:, tf.newaxis, tf.newaxis, :]
Python
๋ณต์ฌ
์์์ ์ ์ ์ํ์ค ์
๋ ฅ์ ๋ฃ์ด์ ์ด๋ป๊ฒ ๋ณ์๋๋์ง ๋ณด๊ฒ ์ต๋๋ค.
prinit(create_padding_mask(tf.constant([[1,21,777,0,0]])))
Python
๋ณต์ฌ
์ ๋ฒกํฐ๋ฅผ ํตํด์ 1 ์ ๊ฐ์ ๊ฐ์ง ์์น์ ์ด์ ์ดํ
์
์ค์ฝ์ด ํ๋ ฌ์์ ๋ง์คํนํ๋ ์ฉ๋๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ ๋ฒกํฐ๋ฅผ ์ค์ผ์ผ๋ ๋ท ํ๋ก๋ํธ ์ดํ
์
์ ์ธ์๋ก ์ ๋ฌํ๋ฉด, ์ค์ผ์ผ๋ ๋ท ํ๋ก๋ํธ ์ดํ
์ ์์๋ ์ ๋ฒกํฐ์๋ค๊ฐ ๋งค์ฐ ์์ ์์๊ฐ์ธ -le9๋ฅผ ๊ณฑํ๊ณ , ์ด๋ฅผ ํ๋ ฌ์ ๋ํด์ฃผ์ด ํด๋น ์ด์ ์ ๋ถ ๋ง์คํนํ๊ฒ ๋๋ ๊ฒ์
๋๋ค.
์ฒซ๋ฒ์งธ ์๋ธ์ธต์ธ ๋ฉํฐ ํค๋ ์ดํ
์
์ ๊ตฌํํด๋ณด์์ต๋๋ค.
์์ ์ธ์ฝ๋๋ ๋ ๊ฐ์ ์๋ธ ์๋ธ์ธต(subla yer)์ผ๋ก ๋๋์ด์ง๋ค๊ณ ์ธ๊ธํ ์ ์ด ์๋๋ฐ, ์ด์ ๋๋ฒ์งธ ์๋ธ์ธต์ธ ํฌ์ง์ -์์ด์ฆ ํผ๋ ํฌ์๋ ์ ๊ฒฝ๋ง์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
ํฌ์ง์ -์์ด์ฆ ํผ๋ ํฌ์๋ ์ ๊ฒฝ๋ง
์ง๊ธ์ ์ธ์ฝ๋๋ฅผ ์ค๋ช
ํ๊ณ ์์ง๋ง, ํฌ์ง์ ์์ด์ฆ FFNN ์ ์ธ์ฝ๋์ ๋์ฝ๋์์ ๊ณตํต์ ์ผ๋ก ๊ฐ์ง๊ณ ์๋ ์๋ธ์ธต์
๋๋ค. ํฌ์ง์ -์์ด์ฆ FFNN๋ ์ฝ๊ฒ ๋งํ๋ฉด ์์ ์ฐ๊ฒฐFFNN(Full y-connected FFNN)์ด๋ผ๊ณ ํด์ํ ์ ์์ต๋๋ค.
์์ ์ธ๊ณต ์ ๊ฒฝ๋ง์ ๊ฒฐ๊ตญ ๋ฒกํฐ์ ํ๋ ฌ ์ฐ์ฐ์ผ๋ก ํํ๋ ์ ์์์ ๋ฐฐ์ ์ต๋๋ค. ์๋๋ ํฌ์ง์
์์ด์ฆ FFNN ์ ์์์๋ณด์ฌ์ค๋๋ค
์์ ๊ทธ๋ฆผ์ผ๋ก ํํํ๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
์ฌ๊ธฐ์ ๋ ์์ ๋ฉํฐ ํค๋ ์ดํ
์ ์ ๊ฒฐ๊ณผ๋ก ๋์จ (seq_len,) ์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ ํ๋ ฌ์ ๋งํฉ๋๋ค. ๊ฐ์ค์ง ํ๋ ฌ ์ (d_model,)์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๊ณ , ๊ฐ์ค์ง ํ๋ ฌ ์ (,) ์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋๋ค. ๋
ผ๋ฌธ์์ ์๋์ธต์ ํฌ๊ธฐ์ธ ๋ ์์ ํ์ดํผํ๋ผ๋ฏธํฐ๋ฅผ ์ ์ํ ๋ ์ธ๊ธํ๋ฏ์ด 2,048์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋๋ค.
์ฌ๊ธฐ์ ๋งค๊ฐ๋ณ์ ๋ ํ๋์ ์ธ์ฝ๋ ์ธต ๋ด์์๋ ๋ค๋ฅธ ๋ฌธ์ฅ, ๋ค๋ฅธ ๋จ์ด๋ค๋ง๋ค ์ ํํ๊ฒ ๋์ผํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค. ํ์ง๋ง ์ธ์ฝ๋ ์ธต๋ง๋ค๋ ๋ค๋ฅธ ๊ฐ์ ๊ฐ์ง๋๋ค.
์์ ๊ทธ๋ฆผ์์ ์ข์ธก์ ์ธ์ฝ๋์ ์
๋ ฅ์ ๋ฒกํฐ ๋จ์๋ก ๋ดค์ ๋, ๊ฐ ๋ฒกํฐ๋ค์ด ๋ฉํฐ ํค๋ ์ดํ
์
์ธต์ด๋ผ๋ ์ธ์ฝ๋ ๋ด ์ฒซ๋ฒ์งธ ์๋ธ ์ธต์ ์ง๋ ์ ํต๊ณผํ๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค. ์ด๋ ๋๋ฒ์งธ ์๋ธ์ธต์ธ Positi on-wise FFNN์ ์๋ฏธํฉ๋๋ค ๋ฌผ๋ก , ์ค์ ๋ก๋ ๊ทธ๋ฆผ์ ์ฐ์ธก๊ณผ ๊ฐ์ด ํ๋ ฌ๋ก ์ฐ์ฐ๋๋๋ฐ, ๋๋ฒ์งธ ์๋ธ์ธต์ ์ง๋ ์ธ์ฝ๋์ ์ต์ข
์ถ๋ ฅ์ ์ฌ์ ํ ์ธ์ฝ๋์ ์
๋ ฅ์ ํฌ๊ธฐ์๋ (seq_len, l) ์ ํฌ๊ธฐ๊ฐ ๋ณด์กด๋๊ณ ์์ต๋๋ค. ํ๋์ ์ธ์ฝ๋ ์ธต์ ์ง๋ ์ด ํ๋ ฌ์ ๋ค์ ์ธ์ฝ๋ ์ธต์ผ๋ก ์ ๋ฌ๋๊ณ , ๋ค์ ์ธต์์๋ ๋์ผํ ์ธ์ฝ๋ ์ฐ์ฐ์ด ๋ฐ๋ณต๋ฉ๋๋ค.
์์ฐจ ์ฐ๊ฒฐ๊ณผ ์ธต ์ ๊ทํ
์ธ์ฝ๋์ ๋ ๊ฐ์ ์๋ธ์ธต์ ๋ํด์ ์ดํดํ์๋ค๋ฉด ์ธ์ฝ๋์ ๋ํ ์ค๋ช
์ ๊ฑฐ์ ๋ค์์ต๋๋ค! ํธ๋์คํฌ๋จธ์์๋ ์ด๋ฌํ ๋ ๊ฐ์ ์๋ธ์ธต์ ๊ฐ์ง ์ธ์ฝ๋์ ์ถ๊ฐ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ธฐ๋ฒ์ด ์๋๋ฐ, ๋ฐ๋ก Add & Norm ์
๋๋ค. ๋ ์ ํํ๋ ์์ฐจ์ฐ๊ฒฐ (residual connection)๊ณผ ์ธต ์ ๊ทํ(layer normalization) ๋ฅผ ์๋ฏธํฉ๋๋ค.
์์ ๊ทธ๋ฆผ์ ์์ Positi on-wise FFNN ๋ฅผ ์ค๋ช
ํ ๋ ์ฌ์ฉํ ์์ ๊ทธ๋ฆผ์์ ํ์ดํ์ Add & Norm(์์ ์ฐ๊ฒฐ๊ณผ ์ ๊ทํ ๊ณผ์ )์ ์ถ๊ฐํ ๊ทธ๋ฆผ์
๋๋ค. ์ถ๊ฐ๋ ํ์ดํ๋ค์ ์๋ธ์ธต ์ด์ ์ ์
๋ ฅ์์ ์์๋์ด ์๋ธ์ธต์ ์ถ๋ ฅ ๋ถ๋ถ์ ํฅํ๊ณ ์๋ ๊ฒ์ ์ฃผ๋ชฉํฉ์๋ค. ์ถ๊ฐ๋ ํ์ดํ๊ฐ ์ด๋ค ์๋ฏธ๋ฅผ ๊ฐ๊ณ ์๋์ง๋ ์์ ์ฐ๊ฒฐ๊ณผ ์ธต ์ ๊ทํ๋ฅผ ๋ฐฐ์ฐ๊ณ ๋๋ฉด ์ดํดํ ์์์ต๋๋ค.
์์ ์ฐ๊ฒฐ (Residual connection)
์์ฐจ ์ฐ๊ฒฐ (residual connection) ์ ์๋ฏธ๋ฅผ ์ดํดํ๊ธฐ ์ํด์ ์ด๋ค ํจ์ ์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ํด๋ณด๊ฒ ์ต๋๋ค.
์ ๊ทธ๋ฆผ์ ์
๋ ฅ ์ ์ ๋ํ ์ด๋ค ํจ์ ์ ๊ฐ์ ๋ํ ํจ์ ์ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ด๋ค ํจ์ ๊ฐ ํธ๋์คํฌ๋จธ์์๋ ์๋ธ์ธต์ ํด๋น๋ฉ๋๋ค. ๋ค์ ๋งํด ์์ ์ฐ๊ฒฐ์ ์๋ธ์ธต์ ์
๋ ฅ๊ณผ ์ค๋ ฅ์ ๋ํ๋ ๊ฒ์ ๋งํฉ๋๋ค. ์์ ์ธ๊ธํ๋ฏ์ด ํธ๋์คํฌ๋จธ์์ ์๋ธ์ธต์ ์
๋ ฅ๊ณผ ์ค๋ ฅ์ ๋์ผํ ์์์ ๊ฐ๊ณ ์์ผ๋ฏ๋ก, ์๋ธ์ธต์ ์
๋ ฅ๊ณผ ์๋ธ์ธต์ ์ถ๋ ฅ์ ๋ง์
์ฐ์ฐ์ ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์์ ์ธ์ฝ๋ ๊ทธ๋ฆผ์์ ๊ฐ ํ์ดํ๊ฐ ์๋ธ์ธต์ ์
๋ ฅ์์ ์ค๋ ฅ์ผ๋ก ํฅํ๋๋ก๊ทธ๋ ค์ก๋ ์ด์ ์
๋๋ค. ์์ฐจ ์ฐ๊ฒฐ์ ์ปดํจํฐ ๋น์ ๋ถ์ผ์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ ๋ชจ๋ธ์ ํ์ต์ ๋๋ ๊ธฐ๋ฒ์
๋๋ค.
์ด๋ฅผ ์์ผ๋ก ํํํ๋ฉด ๋ผ๊ณ ํ ์ ์์ต๋๋ค.
๊ฐ๋ น, ์๋ธ์ธต์ด ๋ฉํฐ ํค๋ ์ดํ
์
์ด์๋ค๋ฉด ์์ ์ฐ๊ฒฐ ์ฐ์ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ๊ทธ๋ฆผ์ ๋ฉํฐ ํค๋ ์ดํ
์
์ ์
๋ ฅ๊ณผ ๋ฉํฐ ํค๋ ์ดํ
์
์ ๊ฒฐ๊ณผ๊ฐ ๋ํด์ง๋ ๊ณผ์ ์ ๋ณด์ฌ์ค๋๋ค.
์ธต ์ ๊ทํ(Layer Normalization)
์์ฐจ ์ฐ๊ฒฐ์ ๊ฑฐ์ง ๊ฒฐ๊ณผ๋ ์ด์ด์ ์ธต ์ ๊ทํ ๊ณผ์ ์ ๊ฑฐ์น๊ฒ๋ฉ๋๋ค. ์์ฐจ ์ฐ๊ฒฐ์ ์
๋ ฅ์ x, ์์ฐจ ์ฐ๊ฒฐ๊ณผ ์ธต ์ ๊ทํ ๋ ๊ฐ์ง ์ฐ์ฐ์ ๋ชจ๋ ์ํํ ํ์ ๊ฒฐ๊ณผ ํ๋ ฌ์ LN ์ด๋ผ๊ณ ํ์์ ๋, ์์ฐจ ์ฐ๊ฒฐ ํ ์ธต ์ ๊ทํ ์ฐ์ฐ์ ์์์ผ๋ก ํํํ์๋ฉด ๋ค์๊ณผ๊ฐ์ต๋๋ค.
=
์ด์ ์ธต ์ ๊ทํ๋ฅผ ํ๋ ๊ณผ์ ์ ๋ํด์ ์ดํดํด๋ด
์๋ค. ์ธต ์ ๊ทํ๋ ํ
์์ ๋ง์ง๋ง ์์์ ๋ํด์ ํ๊ท ๊ณผ ๋ถ์ฐ์ ๊ตฌํ๊ณ , ์ด๋ฅผ ๊ฐ์ง๊ณ ์ด๋ค ์์์ ํตํด ๊ฐ์ ์ ๊ทํํ์ฌ ํ์ต์ ๋์ต๋๋ค. ์ฌ๊ธฐ์ ํ
์์ ๋ง์ง๋ง ์ฐจ์์ด๋ ๊ฒ์ ํธ๋์คํฌ๋จธ์์๋ ์ฐจ์์ ์๋ฏธํฉ๋๋ค. ์๋ ๊ทธ๋ฆผ์ ์ฐจ์์ ๋ฐฉํฅ์ ํ์ดํ๋ก ํํํ์์ต๋๋ค
์ธต ์ ๊ทํ๋ฅผ ์ํด์ ์ฐ์ , ํ์ดํ ๋ฐฉํฅ์ผ๋ก ๊ฐ๊ฐ ํ๊ท ฮผ๊ณผ ๋ถ์ฐ ์ ๊ตฌํฉ๋๋ค. ๊ฐ ํ์ดํ ๋ฐฉํฅ์ ๋ฒกํฐ๋ฅผ ๋ผ๊ณ ๋ช
๋ช
ํด๋ด
์๋ค
์ธต ์ ๊ทํ๋ฅผ ์ํํ ํ์๋ ๋ฒกํฐ ๋ ๋ผ๋ ๋ฒกํฐ๋ก ์ ๊ทํ๊ฐ ๋ฉ๋๋ค.
= ()
์ด์ ์ธต ์ ๊ทํ์ ์์์ ์์๋ด
์๋ค. ์ฌ๊ธฐ์๋ ์ธต ์ ๊ทํ๋ฅผ ๋ ๊ฐ์ง ๊ณผ์ ์ผ๋ก ๋๋์ด์ ์ค๋ช
ํ๊ฒ ์ต๋๋ค.
์ฒซ๋ฒ์งธ๋ ํ๊ท ๊ณผ ๋ถ์ฐ์ ํตํ ์ ๊ทํ, ๋๋ฒ์งธ๋ ๊ฐ๋ง()์ ๋ฒ ํ()๋ฅผ ๋์
ํ๋ ๊ฒ์
๋๋ค. ์ฐ์ , ํ๊ท ๊ณผ ๋ถ์ฐ์ ํตํด ๋ฒกํฐ
โฌ(์
์ค๋ก )์ ๋ถ๋ชจ๊ฐ 0 ์ด ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๊ฐ์
๋๋ค.
์ด์ (๊ฐ๋ง)์ (๋ฒ ํ)๋ผ๋ ๋ฒกํฐ๋ฅผ ์ค๋นํฉ๋๋ค.
๋จ, ์ด๋ค์ ์ด๊ธฐ๊ฐ์ ๊ฐ๊ฐ 1 ๊ณผ 0 ์
๋๋ค.
์ B๋ฅผ ๋์
ํ ์ ๊ทํ์ ์ต์ข
์์์ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ,์ ๋ ํ์ต ๊ฐ๋ฅํ ํ๋ผ๋ฏธํฐ์
๋๋ค.
= = ()
์ธ์ฝ๋ / ๋์ฝ๋ ๊ตฌํ
์์ค ์ฐธ์กฐ
































