https://getacherryontop.tistory.com/140
ํธ๋์คํฌ๋จธ์ ์ดํ ์ ์ ๋ฆฌ --1
๋๋์ด ๋๋ฅผ ๊ดด๋กญํ๋ ์ดํ ์ ์ ๊ดํด ์ดํดํ ํ, ์ค์ค๋ก ์ฒ์๋ถํฐ ์ ๋ฆฌํด๋ณด์๋ค!!! ํธ๋์คํฌ๋จธ ๋ฑ์ฅ ์ ํธ๋์คํฌ๋จธ ์ ์๋ RNN, CNN์ ํ์ฉํ ์์ฐ์ด์ฒ๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ก๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ๋ฐฉ๋ฒ์ ์
getacherryontop.tistory.com
์ง๋๋ฒ๊น์ง ํธ๋์คํฌ๋จธ์ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ, ์ดํ ์ ํจ์์ ๋ํด ์์๋ณด์๋ค.
์ธ์ฝ๋์ ๋์ฝ๋์ ๋ํด ์ ๋ฆฌํ๋ ์ค ์ฑ ์์ ์ข ์ด์ํ ๋ถ๋ถ์ด ์์ด ๋ช ํํ๊ฒ ์ดํด๋์ง ์์ ๋ถ๋ถ์ ๋ํด ์ง๋ฌธ์ ํตํด ํด๊ฒฐํ๋ค!
์๋ฌดํผ ์ด๋ฒ์๋ ํธ๋์คํฌ๋จธ์ ์ธ์ฝ๋์ ๋์ฝ๋์ ๋ํด ์ ๋ฆฌํ๊ฒ ๋ค.
์ผ์ชฝ ์ฌ์ง์ธ ํธ๋์คํฌ๋จธ ์ ์ฒด ๊ตฌ์กฐ์์ ์ด๋ก์์ ์ธ์ฝ๋, ๋นจ๊ฐ์์ ๋์ฝ๋์ด๋ค. ์ค๋ฅธ์ชฝ ์ฌ์ง์ ์ธ์ฝ๋์ ๋์ฝ๋๋ฅผ ๊ฐ์ํํ ๋์์ด๋ค.
ํ๋์ฉ ์ฐจ๋ก๋ก ์ดํด๋ณด์
ํธ๋์คํฌ๋จธ์ ์ธ์ฝ๋
ํธ๋์คํฌ๋จธ๋ก ํ๊ตญ์ด->์์ด ๋ฒ์ญ์ ํ๋ ค๊ณ ํ๋ค. ์ด๋ฅผ ์ํด์๋ ์ธ์ฝ๋์๋ ํ๊ตญ์ด๋ฌธ์ฅ์ด, ๋์ฝ๋์๋ ํ๊ตญ์ด์ ํด๋นํ๋ ์์ด๋ฌธ์ฅ์ด ์ ๋ ฅ์ผ๋ก ๋ค์ด๊ฐ๋ค. ์ ๋ฒ์ ํ๋ ์์๋ฌธ์ฅ์ ๊ฐ์ ธ์ ๋ณด๋ฉด ,
<ํ๊ตญ์ด->์์ด ๋ฒ์ญ>
์ธ์ฝ๋ ์ ๋ ฅ๋ฌธ์ฅ : '๋๋ ํ ๋ผ๋ฅผ ํค์. ๋ชจ๋ ์ฌ๋์ด ๊ทธ๋ฅผ ์ข์ํด.'
๋์ฝ๋ ์ ๋ ฅ๋ฌธ์ฅ : 'I have a rabbit. Everyone likes him.'
์ ๋ฃ์ด์ผ ํ๋ค.
์ ๋ ฅ์ ์ ๋ฒ๊ธ์ ์ค๋ช ํ๋ ๊ฒ์ฒ๋ผ input embedding+positional embedding์ผ๋ก ๋ค์ด๊ฐ๋ค.
Multi-Head Attention
์ธ์ฝ๋์์ ์ฒ์์ผ๋ก ํ๊ตญ์ด ๋ฌธ์ฅ์ด ๋ง์ฃผํ๋ ๊ฒ์ ๋ฉํฐํค๋ ์ดํ ์ ์ด๋ค. ์ด๋ ๋ฉํฐํค๋ ์ดํ ์ ์ ์ ํ ์ดํ ์ ๊ณผ ๊ฐ๋ค.
๋๋/ํ ๋ผ๋ฅผ/ํค์/๋ชจ๋ /์ฌ๋์ด/๊ทธ๋ฅผ/์ข์ํด - ํ๋์ฉ ์ ํ์ดํ ์ ์ ์ํํ๋ค.
์ฆ, ์ฟผ๋ฆฌ๊ฐ '๋๋' ์ผ๋ ํค๋ ๋๋/ํ ๋ผ๋ฅผ/ํค์/๋ชจ๋ /์ฌ๋์ด/๊ทธ๋ฅผ/์ข์ํด -> attention value ๊ณ์ฐ,
์ฟผ๋ฆฌ๊ฐ ํ ๋ผ๋ฅผ ์ผ๋ ํค๋ ๋๋/ํ ๋ผ๋ฅผ/ํค์/๋ชจ๋ /์ฌ๋์ด/๊ทธ๋ฅผ/์ข์ํด -> attention value ๊ณ์ฐ,,,, ๋ฐ๋ณตํ๋ ์ ํ์ดํ ์ ์ ํ๋ ๊ฒ์ด๋ค .
๋ฌผ๋ก 1ํธ์์ ์ค๋ช ํ๋ ๊ฒ์ฒ๋ผ ์ฟผ๋ฆฌ,ํค ๋ฒจ๋ฅ ๋ง๋ค๊ธฐ๋ถํฐ ์์์ด๋ค!
Feed Forward
Feed Forward NN = FFNN์ด๋ผ๊ณ ๋ ํ๋ค. (ํผ๋ํฌ์๋ ๋ด๋ด๋คํธ์ํฌ)
์์ ๋ฉํฐํค๋ ์ดํ ์ ์ ๊ฐ๋ณ ์ถ๋ ฅ ๋ฒกํฐ๋ค์ ๊ฐ์ง๊ณ ๊ณ์ฐํ๋ค.
Feed Forward ๊ณ์ฐ ๊ณผ์
์ ๋ ฅ์ธต, ์๋์ธต, ์ถ๋ ฅ์ธต์ ๊ฐ์ง ์ ๊ฒฝ๋ง์ผ๋ก, x์ ํด๋นํ๋ ๊ฐ์ค์ฐจ๋ค์ ๊ณฑํ ํฉ์ ํธํฅ์ ๋ํด ์๋์ธต์ ์์ฑํ๊ณ , ํ์ฑํจ์์ธ ReLU๋ฅผ ํต๊ณผ์ํจ ๊ฐ์ ์ถ๋ ฅ์ผ๋ก ํ๋ค. (ํธ๋์คํฌ๋จธ์์ ํ์ฑํจ์๋ ReLU์ด๋ค)
๋ ๋ฃจํจ์๋ ์์์ ๋ ฅ์ ๊ทธ๋๋ก ์ถ๋ ฅํ๊ณ , ์์์ ๋ ฅ์ 0์ผ๋ก ์ถ๋ ฅํ๋ ํจ์์ด๋ค. f(x) = max(0,x)
python์ผ๋ก ๊ตฌํํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
b1,b2=1,-1
x= torch.tensor([2,1])
w1 = torch.tensor([[3,2,-4],[2,-3,1]])
w2 = torch.tensor([[3,4],[-3,5],[1,-1]])
hidden = torch.matmul(x,w1)+b1
h = torch.nn.functional.relu(hidden)
y = torch.matmul(h,w2)+b2
์ฐธ๊ณ ๋ก ํธ๋์คํฌ๋จธ์์๋ ์๋์ธต์ ๋ด๋ฐ๊ฐ์(=์ฐจ์ ์)๋ฅผ ์ ๋ ฅ์ธต์ 4๋ฐฐ๋ก ์ค์ ํ๋ค. ๊ฐ๋ น FFNN์ ์ ๋ ฅ ์ ํฐ๊ฐ 768์ฐจ์์ด๋ผ๋ฉด, ์๋์ธต์ 12048์ฐจ์์ด์๋ค๊ฐ ์ถ๋ ฅ์ธต์์ ๋ค์ 768์ฐจ์์ผ๋ก ์ค์ด๋ ๋ค.
residual connection ์์ฐจ ์ฐ๊ฒฐ
๊ฑด๋๋ฐ๊ธฐ ๊ฒฝ๋ก๋ฅผ ํ๋ ๋๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค. ์ด๋ ๊ฒ!
์ด๋ ๊ฒ ํ๋ฉด ๋ญ๊ฐ ์ข์๊น?
๊ฒฝ๋ก๋ฅผ ๋ค์ํ๊ฒ ๋ ์ผ๋ก์จ ํ์ต์ด ๋ฌด์๋นํ๊ฒ ๊ธธ์ด์ง์ ๋ฐฉ์งํ๊ณ ์ข ๋ ์ฝ๋๋ก ํ๋ค.
Layer Normalization ๋ ์ด์ด ์ ๊ทํ
๋ฏธ๋๋ฐฐ์น ๋จ์์ ์ธ์คํด์ค(x)๋ณ๋ก ํ๊ท ์ ๋นผ์ฃผ๊ณ ํ์คํธ์ฐจ๋ก ๋๋ ์ ๊ทํ ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
***๋ ผ๋ฌธ์์๋ ์ด๋ฌํ ์ธ์ฝ๋ ๋ธ๋ก์ 6๊ฐ, ๋์ฝ๋ ๋ธ๋ก์ 6๊ฐ ์์๋ค. 6๋ฒ์ฉ ๋ฐ๋ณตํ๋ค๋ ๊ฒ์ด๋ค. ์ด ๋ธ๋ก์ ๋ช๊ฐ๋ฅผ ๋ ์์ ์๋, ๋ ์์ ์๋ ์๋ค!
ํธ๋์คํฌ๋จธ์ ๋์ฝ๋
๋ง์ฐฌ๊ฐ์ง๋ก ํ๊ตญ์ด-> ์์ด ๋ฒ์ญ์ ์ํํ๋ค๊ณ ํ ๋,
๋์ฝ๋ ์ธํ์ผ๋ก ์์ด ๋ฌธ์ฅ์ ๋ฃ์ด ์ค๋ค. 'I have a rabbit. Everyone likes him.'
Masked Multi-Head Attention
์์ ๋ดค๋ ์ธ์ฝ๋์ ๋น์ทํ ๋ฉํฐํค๋ ์ดํ ์ (์ ํ์ดํ ์ )์ด๋ค.
์ฐจ์ด์ 1. ์ฟผ๋ฆฌ์ ํค๊ฐ ์์ด ๋ฌธ์ฅ์ด๋ผ๋ ์
์ฐจ์ด์ 2. masked
- '<s>I have a rabbit. Everyone likes him.</s>'์์ <s>๊ฐ ์ฃผ์ด์ง๋ฉด I ๋ฅผ ๋งํ๋๋ก ํ์ต์ด ๋์ด์ผ ํ๋๋ฐ ์
ํ์ดํ ์
์ผ๋ก ๋ฏธ๋ฆฌ ๋ค ์๋ ค์ฃผ๋ฉด ํ์ต์ ๋์์ด ํ๋๋ ์๋จ ๋ฐ๋ผ์ <s>๊ฐ ์ฃผ์ด์ง๋ฉด I ๋ถํฐ๋ ๋ค ๋ง์คํนํ์ฌ I๋ฅผ ๋งํ๋๋กํ๊ณ , <s> I ๊ฐ ์ฃผ์ด์ง๋ฉด ๋ค์๋ ๋ค ๋ง์คํนํ๊ณ <s> I ๋ก have ์์ธกํ๋๋ก ํ์ตํ๊ณ .... ๋ฐ๋ณตํ๋ค.
Multi-Head Attention
- ์ ํ์ดํ ์ ์ด ์๋๋ค! ์ ์ผ ํท๊ฐ๋ ธ๋ ๋ถ๋ถ
์์ฐํ ๋งํ์๋ฉด cross attention๋ผ๊ณ ํ๋ค. ์์ธํ ๋ณด๋ฉด ํ์ดํ๊ฐ ์ธ์ฝ๋์์ ์ค๋ ๊ฒ์ ์ ์ ์๋ค. ์ฟผ๋ฆฌ์ ์์ด, ํค์ ํ๊ตญ์ด ๋ฌธ์ฅ ๋ฐฐ์น , ์ธ์ฝ๋์์ ๋์ด์จ ์์ค์ธ์ด(ํ๊ตญ์ด) ๋ฌธ์ฅ ์ ๋ณด์ ๋์ฝ๋์ ํ๊น๋ฌธ์ฅ์ ์์์ ์๋ฆฌ๋ ํ ํฐ <s>๋ฅผ ๋ฃ์ด ํ๊น์ธ์ด(์์ด)์ ์ฒซ๋ ํ ํฐ ์์ฑ, ์ด์ ์ ์์ฑ๋ ํํท์ธ์ด ํ ํฐ ์ํ์ค๋ฅผ ๋์ฝ๋์ ๋ฃ์ด ๋ง๋ ์ ๋ณด๋ก ๋ค์ ํ ํฐ์ ์์ฑํ๋ค. ์์ฑ๋ ๋ฌธ์ฅ ๊ธธ์ด๊ฐ ์ถฉ๋ถํ๊ฑฐ๋ ๋ง์ง๋ง์ ์๋ฆฌ๋ ํ ํฐ </s>๊ฐ ๋์ฌ๋๊น์ง ์ด ๊ณผ์ ์ ๋ฐ๋ณต๋๋ค.
Q1. ํธ๋์คํฌ๋จธ์์ ๋ฉํฐํค๋ ์ดํ ์ = ์ ํ ์ดํ ์ ์ด๋ค?
์๋๋ค! ๋์ฝ๋์์ ๋ฉํฐํค๋์ดํ ์ (Decoder-encoder attention)์ ์ ํ ์ดํ ์ ์ด ์๋ ํฌ๋ก์ค ์ดํ ์ ์ด๋ค
'์์ฐ์ด ์ฒ๋ฆฌ > Today I learned :' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฒํธ๋ฅผ ํ์ฉํ ์ํ๋ฆฌ๋ทฐ ๋ถ๋ฅ (0) | 2023.01.16 |
---|---|
ํ๊น ํ์ด์ค์ ํธ๋์คํฌ๋จธ ๐ค Huggingface's Transformers (0) | 2023.01.16 |
ํธ๋์คํฌ๋จธ์ ์ดํ ์ ์ ๋ฆฌ --1 (1) | 2023.01.15 |
transfomers ๋ฅผ ์ฌ์ฉํ ๊ฐ๋จํ ๋ถ๋ฅ ์์ (BertForSequenceClassification) (0) | 2023.01.12 |
Word Embedding (0) | 2023.01.05 |