์ž์—ฐ์–ด ์ฒ˜๋ฆฌ/Today I learned :

ํŠธ๋žœ์Šคํฌ๋จธ์™€ ์–ดํƒ ์…˜ ์ •๋ฆฌ --2

์ฃผ์˜ ๐Ÿฑ 2023. 1. 16. 17:17
728x90
๋ฐ˜์‘ํ˜•

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)์€ ์…€ํ”„ ์–ดํƒ ์…˜์ด ์•„๋‹Œ ํฌ๋กœ์Šค ์–ดํƒ ์…˜์ด๋‹ค

 

๋ฐ˜์‘ํ˜•