(08๊ฐ) Transformer (2)
210913
Last updated
Was this helpful?
210913
Last updated
Was this helpful?
cont'd ๋ continued์ ์ฝ์์ด๋ค. ์ด์ ๊ณผ ์ด์ด์ง๋ค๋ ์๋ฏธ
single attention ๋ฐฉ์์ ๋ณ๋ ฌ์ ์ผ๋ก ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ฐฉ๋ฒ์ ๋๊ฐ์ผ๋ฉฐ ๋ด๋ถ ํ๋ผ๋ฏธํฐ๋ง ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ๊ฐ์ง output์ด ๋์จ๋ค. ๋ฐฉ๋ฒ๋ก ์ ์ผ๋ก๋ ์์๋ธ์ ๋๋์ผ๋ก๋ ๋ณผ ์ ์๋ค. ์ต์ข output์ concatํ๊ฒ๋๋ค.
์ ํ๋๊ฑธ๊น? ๋จ์ํ ๋ชจ๋ธ์ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์กฐ์ํ๋ฉด์ ์ผ๋ฐํ ์ฑ๋ฅ์ ๋์ด๊ธฐ ์ํด์? ๋ ๋ง๋ ๋ง์ด์ง๋ง ์ด๋ฅผ ์ข ๋ ์์ธํ๊ฒ ์ด์ผ๊ธฐ ํ ์ ์๋ค. ๊ฐ ์ํ์ค๋ง๋ค ๋ณ๋ ฌ์ ์ผ๋ก ์๋ก ๋ค๋ฅธ ์ ๋ณด๋ฅผ ์ป์ด์ ํด๋น ์ํ์ค์ ๋ํด ํ๋ถํ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ output์ ๋ด๊ธฐ์ํจ์ผ๋ก ๋ณผ ์ ์๋ค.
๋ง์ฝ 8๋ฒ์ attention์ ์คํํ๋ค๋ฉด ๊ฐ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ concatํ๋ฏ๋ก ๊ฐ๋ก๋ก ๋งค์ฐ ๊ธธ์ด์ง ์ต์ข output์ ์ป๊ฒ๋๋ค.
์ฌ๊ธฐ์, ์ ํ layer๋ฅผ ์ ์ฉํด์ ์ด๋ค W์์ ๊ณฑ์ ํตํด ์ต์ข ์ ์ผ๋ก Z ๋ฒกํฐ๋ฅผ ์ป๊ฒ๋๋ค.
Multi head Attention์์์ ๊ณ์ฐ๋์ ์์๋ณด์.
Self-Attention์ RNN ๋ณด๋ค ํจ์ฌ ๋ง์ ์ฐ์ฐ๋๊ณผ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฐ์ํ๋ค.
d๋ ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ผ์ ์กฐ์ ํ ์ ์๋๋ฐ ๋นํด n์ ์ฃผ์ด์ง ๋ฐ์ดํฐ์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋ ๋ถ๋ถ์ด๋ผ์ ๋ฐ์ดํฐ๊ฐ ํฌ๋ฉด ํด์๋ก ๋ง์ ์ฐ์ฐ๋์ ํ์๋ก ํ๋ค.
Self-Attention์ ๋ณ๋ ฌ์ ์ผ๋ก ์ด๋ฅผ ์ฒ๋ฆฌํ๋ฉด ํ๋ฒ์ ์ฒ๋ฆฌํ ์ ์์ง๋ง, RNN์ ์ด์ step์ด ๋๋์ผ ๋ค์ step์ ์งํํ ์ ์์ผ๋ฏ๋ก ๋ณ๋ ฌํํ ์ ์๋ค. ๊ทธ๋์ RNN์ Forward & Backward Propagation์ sequence์ ๊ธธ์ด๋งํผ ์๊ฐ์ด ์์๋๋ค.
์ค์ ๋ก ์ ๋ ฅ์ ํ๋ฒ์ ์ฃผ์ด์ง๋ฏ๋ก ํ๊บผ๋ฒ์ ์ฒ๋ฆฌ๋๋ ๋ฏ์ด ๋ณด์ด์ง๋ง ์์ ๊ฐ์ ์ด์ ๋๋ฌธ์ ์ ๋ ๋ณ๋ ฌํ๊ฐ ์ด๋ฃจ์ด์ง ์ ์๋ค.
์ ๋ฆฌํ๋ฉด, RNN์ ์ฐ์ฐ๋์ด ์์ง๋ง ์๋๋ ๋๋ฆฌ๊ณ , Self-Attention์ ์ฐ์ฐ๋์ด ํฐ๋์ ์๋๋ ๋น ๋ฅด๋ค.
Long Term Dependency์ ๊ด๋ จ์ด ์๋ ๋ถ๋ถ์ด๋ค.
RNN์์๋ ๋ง์ง๋ง step์์ ์ฒซ๋ฒ์งธ ๋จ์ด์ ์ ๋ณด๋ฅผ ์ป๊ธฐ์ํด n๊ฐ์ ๋ ์ด์ด๋ฅผ ์ง๋์์ผ ํ์ง๋ง, T.F ์์๋ time step ๊ณผ ๊ด๋ จ์์ด attention์ ์ด์ฉํด ์ง์ ์ ์ผ๋ก ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.
์๋์์ ๋ถํฐ ์ธ ๊ฐ๋๋ก ๋๋์ด์ง๋๋ฐ ๋ชจ๋ K, Q, V ๋ฅผ ์๋ฏธํ๋ค. ์ด๋ค์ ๊ฐ๋ณ์ ์ธ head attention์์ ๊ฐ๊ฐ์ Wk, Wq, Wv๋ฅผ ์ป๊ฒ๋๋ฉฐ ์ด๋ฅผ ๋ชจ๋ concatํด์ output์ ๋ฐํํ๋ค.
์ฌ๊ธฐ์ ์ฒ์๋ณด๋ ๋ถ๋ถ์ด ์๋ค. ๋ฐ๋ก Add & Norm
Residual ์ฐ์ฐ์ธ Add๊ฐ ์ํ๋๊ณ Layer Normalization์ด ์ํ๋๋ค.
์ดํ, Feed Forward๋ฅผ ํต๊ณผํ๊ณ ๋ ์ํ์ด ๋๋ค.
๊น์ ๋ ์ด์ด์์ Gradient Vanishing ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ํ์ต์ ์์ ํํ์ฌ ๋ ๋์ ์ฑ๋ฅ์ ๋ด๊ฒํ๋ ๊ธฐ์ ์ด๋ค.
๋ง์ฝ "I study math" ๋ผ๋ ๋ฌธ์ฅ์์ "I" ์ ํด๋นํ๋ ์๋ฒ ๋ฉ ๋ฒกํฐ๊ฐ [1, -4] ์ด๊ณ head attention์ ํต๊ณผํ ์ธ์ฝ๋ฉ ๋ฒกํฐ๊ฐ [2, 3] ์ด๋ผ๊ณ ํ์. ์ด ๋ add๋ฅผ ์ ์ฉํ๋ฉด ๋ ๋ฒกํฐ๋ฅผ ๋ํด์ [3, -1] ์ ์ป๊ฒ๋๊ณ ์ด๋ฅผ "I"์ ์ต์ข ์ธ์ฝ๋ฉ ๋ฒกํฐ๋ก ๊ฒฐ์ ํ๋ค.
๋ช ๊ฐ์ง Normalization์ด ์กด์ฌํ๋๋ฐ ์ด์ค์์ Batch Norm๊ณผ Layer Norm ์์๋ณด์.
๊ฐ ๋ฐฐ์น์ ๊ฐ์ ํ๊ท ๊ณผ ํ์คํธ์ฐจ๋ฅผ ๊ตฌํ๊ณ ์ด๋ฅผ ์ด์ฉํด ๊ฐ ๋ฐฐ์น๋ฅผ ํ๊ท ์ด 0์ด๊ณ ํ์คํธ์ฐจ๊ฐ 1์ธ ์ ๊ท๋ถํฌ๋ฅผ ๋ฐ๋ฅด๋๋ก ์ ๊ทํํด์ค๋ค.
์ดํ Affine Transformation์ ์ ์ฉํด์ ์ํ๋ ํ๊ท ๊ณผ ๋ถ์ฐ์ผ๋ก ๋ง์ถฐ์ค๋ค.
Batch Norm. ์ ํ batch์ ๋ํด์(=๊ฐ๋ก๋ก) ์ ๊ทํํ๋ค๋ฉด Layer Norm.์ ํ Feature์ ๋ํด์(=์ธ๋ก๋ก) ์ ๊ทํํ๋ค.
๋ง์ฝ์ ์ฐ๋ฆฌ๊ฐ ์ง๊ธ๊น์ง ๋ณธ ๋ชจ๋ธ์์ "I love you" ์ "love I you"๋ฅผ ์ ๋ ฅํ์ ๋์ ๊ฒฐ๊ณผ๋ ํญ์ ๋๊ฐ์ ๊ฒ์ด๋ค. ์๋ํ๋ฉด Transformer๋ time step์ ๊ณ ๋ คํ์ง ์๊ณ ์ ๋ ฅ์ ๋ํด ํ๋ฒ์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์์๋ฅผ ๊ณ ๋ คํ์ง ์๊ณ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ด๋ค.
์์๋ฅผ ๊ณ ๋ คํด์ฃผ๋ ๋ฐฉ๋ฒ์ด ํ์ํ๋ค. ๋ค์๊ณผ ๊ฐ์ ์๋ฅผ ๋ค์ด๋ณด์.
"I Study math" ์์ "I"์ ์ธ์ฝ๋ฉ ๋ฒกํฐ๊ฐ [3, -2, 4] ๋ผ๊ณ ํ์. ๊ทธ๋ฌ๋ฉด I๋ ์ฒซ๋ฒ์งธ ์์์ ๋์์ผ๋ฏ๋ก ๋ฒกํฐ์ ์ฒซ๋ฒ์งธ ๊ฐ์ ์์ 1000์ ๋ํด์ [1003, -2, 4] ๋ก ๋ง๋ค์ด์ฃผ๋ ๋ฐฉ๋ฒ์ด Positional Encoding์ ์์ด๋์ด์ด๋ค.
์์์ ๋ฐ๋ผ ๋ฒกํฐ๊ฐ ๋ค๋ฅธ ๊ฐ์ ๊ฐ์ง๊ฒ ๋๋ค.
์ฌ๊ธฐ์๋ ๊ฐ๋จํ๊ฒ 1000์ ๋ํด์คฌ์ง๋ง ์ค์ ๋ก๋ ๊ฐ๋จํ๊ฒ ์ด๋ฃจ์ด์ง๋ ๋ถ๋ถ์ ์๋๋ค.
์์น์ ๋ฐ๋ผ ๊ตฌ๋ณํ ์ ์๋ ๋ฒกํฐ๋ฅผ sin๊ณผ cosํจ์๋ก ์ด๋ฃจ์ด์ง ์ฃผ๊ธฐํจ์๋ฅผ ์ฌ์ฉํด์ ๊ฒฐ์ ํ๋ค.
dimension ๊ฐ์๋งํผ ์๋ก ๋ค๋ฅธ ๊ทธ๋ํ๊ฐ ์กด์ฌํ๋ฉฐ ๊ฐ sequence์ ์ธ๋ฑ์ค๋ฅผ x๊ฐ์ด๋ผ๊ณ ํ ์ ์๋ค.
์ ๊ทธ๋ํ์์๋ ๊ฐ๋ก์ถ์ ์๋ฒ ๋ฉ ์ฐจ์, ์ธ๋ก์ถ์ ์ธ๋ฑ์ค(=์์น)์ด๋ค. ๊ทธ๋์ ํด๋น ์ธ๋ฑ์ค์ ํด๋นํ๋ ์๋ฒ ๋ฉ ์ฐจ์๋งํผ์ ๋ฒกํฐ๋ฅผ positional encoding ๋ฒกํฐ๋ก ์ฌ์ฉํด์ ๊ธฐ์กด ๋ฒกํฐ์ ๋ํด์ฃผ๊ฒ ๋๋ค.
์ฐ๋ฆฌ๋ loss๊ฐ ๊ฐ์ฅ ์์ ์ง์ ์ ๋ชฉํ๋ก ํ์ต์ ํ ๊ฒ์ด๊ณ ์ด ๋์ ํ๋ผ๋ฏธํฐ๋ค์ ์์๋ก ์ด๊ธฐํํ๊ฒ ๋๋๋ฐ ์๋ฌด๋๋ Goal๊ณผ๋ ๋๋ถ๋ถ ๋ฉ๋ฆฌ ์กด์ฌํ ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค. ๋ํ, ์ด ๋๋ Loss ํจ์ ํน์ฑ์ ๋ฉ๋ฆฌ์์ ์๋ก Gradient๊ฐ ๋งค์ฐ ํด ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
"gradient ๋งค์ฐ ํผ" ์ด๋ผ๊ณ ์์ฑ๋ ๊ฒ์
๊ทธ๋์, ์ด๋ฐ์ ๋๋ฌด ํฐ gradient๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ฌด ํฐ ๋ณดํญ์ผ๋ก ๊ฑท์ง ์๊ฒ ์กฐ์ ํ๊ธฐ์ํด ์์ ํ์ต๋ฅ ์์ ์์ํด์ ํ์ต๋ฅ ์ ํค์๋๊ฐ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชฉํ์ง์ ์ ๊ฐ๊น์์ง ๋ ํ์ต๋ฅ ์ด ๋๋ฌด์ปค์ ์๋ ดํ์ง ๋ชปํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์๋๋ก ํ๊ธฐ ์ํด ๋ค์ ํ์ต๋ฅ ์ ๊ฐ์์ํค๋ ๋ฐฉํฅ์ผ๋ก ํ์ต์ ํ๊ฒ ๋๋ค.
๊ทธ๋ํ์ ๋ฒ์ฃผ์์ ์ ์ซ์๋ batch size ๋ท ์ซ์๋ epoch ์๋ฅผ ์๋ฏธํ๋ค.
batch size๊ฐ ์์์๋ก ํ์ต๋ฅ ์ ์์น ๊ณก์ ์ ๊ธฐ์ธ๊ธฐ๋ฅผ ํฌ๊ฒ ๊ฐ์ง๋ฉฐ, epoch์๊ฐ ์ ์์๋ก ์ต๊ณ ์ ์ด ๋ฎ์์ง๊ณ ๋๋ฌ์๋๋ ์ค๋๊ฑธ๋ฆฌ๊ฒ๋๋ค.
Attention ๋ฒกํฐ๋ฅผ ๋ถ์ํด ์๊ฐํํด๋ณด์.
์ฃผ์ด์ง ๋ฌธ์ฅ์์ making ์ด๋ผ๋ ๋จ์ด๋, ์๊ธฐ ์์ ๋ ์ฐธ์กฐ ํ์ง๋ง more์ difficult๋ผ๋ ๋จ์ด๋ฅผ ๊ฐ์ฅ ๋ง์ด ์ฐธ์กฐํ๋ ๊ฒ์ผ๋ก ์ ์ ์๋ค. ๋์ฑ ์ด๋ ต๊ฒ ๋ง๋ค์๋ค๋ผ๋ ๋ชฉ์ ๋ณด์ด์ ๋จ์ด๋ค์ ์ฐธ์กฐํ๋ค. ๋, 2009์ since๋ผ๋ ์๊ธฐ์ ์ธ ์๋ฏธ์ ๋จ์ด๋ ์กฐ๊ธ ์ฐธ์กฐํ๋ค.
๋ค๋ฅธ ๋จ์ด๋ฅผ ๋ณด์.
its๋ ์ด๋ค ๋จ์ด๋ฅผ ๊ฐ๋ฆฌํค๋ ์ง์ ๋ํด ์ ์ ์๊ณ , ์ด๋ฌํ its์ ๋ํด application์ด๋ผ๋ ๋จ์ด๊ฐ ์ด๋์ ๋ ๊ด๋ จ์ด ๋์ด์์์ ์ ์ ์๋ค.
์ธ์ฝ๋์์ "I", "go", "home" ์ ํ์ต์์ผฐ๋ค๋ฉด ๋์ฝ๋์์๋ "<sos>", "๋๋", "์ง์" ๋ฅผ ์ ๋ ฅํด์ค๋ค. ๊ทธ๋ฌ๋ฉด Positional Encoding์ ๊ฑฐ์น ํ Multi-Head Attention์ ๊ฑฐ์น๋ค. ์ด ๊ณผ์ ์ seq2seq์์ decoder์ hidden state๋ฅผ ๋ฝ๋ ๊ณผ์ ์ด๋ค.
๋์ฝ๋์์ output์ ๋์ฝ๋ฉ ํ ๋ ์ ๋ณด์ ์ ๊ทผ ๋ฒ์์ ์ ํ์ ๋๋ ๋ฐฉ๋ฒ์ด๋ค.
์์ธก์ ํ ๋์๋ ๋ค์๊ณผ ๊ฐ์ด ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค.
"๋๋"์ ์์ธก : "<SOS>" ๋ง์ ๊ฐ์ง๊ณ ํด์ผํจ
"์ง์"๋ฅผ ์์ธก : "<SOS>"์ "๋๋"๋ง์ ๊ฐ์ง๊ณ ํด์ผํจ
...
์ํํธ ๋งฅ์ค๋ฅผ ๊ฑฐ์น๋ฉด ๊ฐ ๋จ์ด์ ๋ํ ํ๋ฅ ์ ๊ฐ์ง๊ฒ ๋๋๋ฐ ์ด ๊ฐ์ ๋ชจ๋ 0์ผ๋ก ๋ง๋ค์ด์ค์ผ ํ๋ค.
softmax ๊ฐ์ด 0์ด ๋๊ฒ ํ๊ธฐ ์ํด์ ๊ฐ ๊ฐ์ -inf๋ฅผ ๊ณฑํด์ฃผ๊ฒ๋๋ค.
์ดํ, ์ ๊ทํ๋ฅผ ํตํด row์ ์ดํฉ์ด 1์ด ๋๋๋ก ํ๋ค.