์ด ํฌ์คํธ๋ Attention Mechanism๋ฟ๋ง ์๋๋ผ ๊ทธ ์ ์ ๊ธฐ๋ณธ์ ์ธ ์์์ ๋ํด์๋ ํท๊ฐ๋ฆฌ๋ ๋ถ๋ค์ ์ํด ์์ฑ๋์์ต๋๋ค.
"Attention is All You Need"๋ Transformer ์ํคํ ์ฒ๋ฅผ ์ฒ์ ์ ์ํ ๋ ผ๋ฌธ์ธ๋ฐ์. ๋ณธ ์ํคํ ์ฒ ๋ด์ ๊ธฐ๋ณธ์ ์ธ ์์๋ถํฐ ๋ค์ ๊ณผํ๊ฒ ์ ๋ฆฌํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ต 3๊ฐ์ ํฌ์คํ ์ฐ์ฌ๋ฅผ ํตํด ์ด๋ฅผ ์ค๋ช ํ๊ณ ์ ํฉ๋๋ค.
Attention Is All You Need
The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new
arxiv.org
๋ณธ ํฌ์คํ ์ ํตํด
1. self-attention machanism
2. feed-forward neural network (FFNN)
์ ๋ช ํํ๊ฒ ์ดํดํ๊ณ , ๋๋ถ์ด ์ด๋ฅผ ์ดํดํ๋ ๊ณผ์ ์์ ๋ฑ์ฅํ๋ ์ฌ๋ฌ ์ฉ์ด์ ๋ํด ์ ๋ฆฌํ ๊ฒ์ ๋๋ค.
1-1. Transformer Architecture ์ดํด๋ณด๊ธฐ
transformer์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ์ ๋๋ค.
์ฌ๊ธฐ์ Positional Encoding, Feed Forward, Add & Norm, Linear, Softmax๋ ๋์ฒด๋ก ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ธ๊ณต์ง๋ฅ ๋ชจ๋ธ์ ๊ตฌ์ฑ ์์์ ๋๋ค. transformer ์ํคํ ์ฒ์์ ํต์ฌ์ด ๋๋ ๋ถ๋ถ์ Multi-Head Attention์ ๋๋ค. ๊ธฐ์กด ์์ฐ์ด ์ฒ๋ฆฌ์์ RNN์ด๋ CNN์ ์ฌ์ฉํ์ฌ ๊ฐ๋ณ ๋จ์ด๋ค์ธ, output token์ ๋ค์์ ์์ธกํ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ Attention์ ์ ์ฉํ ๊ฒ์ ๋๋ค.
1. Positional Encoding
PE๋ ์ธ์ฝ๋๊ฐ Input์ ๋ฒกํฐ๋ก ๋ณํํ ๊ฒ์ ์ํ์ค๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
์์ ์์ด ๊ฐ ๋ฒกํฐ ํ ํฐ์ ์ ๋ ฅ์ผ๋กํ๋ PE ์์ธ๋ฐ, pos๋ ํ ํฐ์ ์์น, i๋ ์๋ฒ ๋ฉ ์ฐจ์์ ์ธ๋ฑ์ค, d_model์ ์๋ฒ ๋ฉ ์ฐจ์์ ํฌ๊ธฐ๋ฅผ ์๋ฏธํฉ๋๋ค.
์์๋ฅผ ํตํด ์ค๋ช ํด๋ณด์๋ฉด,
์๋ฒ ๋ฉ ๋ฒกํฐ์ ์ฐจ์ ํฌ๊ธฐ d_model์ 4๋ก ๊ฐ์ ํ๊ณ , "Hello World"๋ผ๋ ๋ฌธ์ฅ์์ "Hello"๋ผ๋ ๋จ์ด์ ์์น pos๋ฅผ 0์ผ๋ก ๊ฐ์ ํฉ๋๋ค. (์ฒซ ๋ฒ์งธ ๋จ์ด์ด๋ฏ๋ก)
1. pos = 0
2. d_model = 4
์ด์ ๊ฐ ์ฐจ์ i์ ๋ํ Encoding ๊ฐ์ ๊ณ์ฐํฉ๋๋ค. (len(pos)=2 ์ด๊ณ , d_model=4์ด๋ฏ๋ก, len(i)=2์ ๋๋ค.)๋ฐ๋ผ์, "Hello"๋ผ๋ ๋จ์ด์ Positional Encoding ๊ฐ์ [0, 1, 0, 1]์ด ๋ฉ๋๋ค.
์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๋ชจ๋ pos์ ๋ํด PE๋ฅผ ๊ณ์ฐํ์ฌ ์ํ์ค ์ ๋ณด๋ฅผ ์ ์กํฉ๋๋ค.
๊ธฐ์กด์ text๋ฅผ ๋ค๋ฃจ๋ ์ธ๊ณต์ง๋ฅ ๋ชจ๋ธ์ ์์น ์ ๋ณด๋ฅผ ์๋ฒ ๋ฉ ๊ณผ์ ์ ๋ช ์์ ์ผ๋ก ํฌํจํ์ง ์๊ณ , ๋์ RNN์ ์ฌ์ฉํ์ฌ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ์ํ์ค๋ฅผ ๋จ์๋ก ์ฒ๋ฆฌํฉ๋๋ค.
2. Linear
Linear๋, ์ ํ ๋ณํ(linear transformation)์ ํฌํจํ Fully Connected Layer ์ธต์ ๊ฐ๋ฆฌํต๋๋ค.
์์ ์ฐ๊ฒฐ ๊ณ์ธต์, ๋ชจ๋ ์ ๋ ฅ ๋ ธ๋์ ์ถ๋ ฅ ๋ ธ๋์ ๋ํด ์ ํ ๋ณํ ์์ ์ฐพ์๋ด๋ ์ญํ ์ ์ํํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก, y=Wx+b๋ก ํํ๋์ด ์ต์ข ์ ์ผ๋ก ๋ถ๋ฅํด์ผ ํ๋ ํด๋์ค๋, ์ถ๋ ฅ ๋ฒกํฐ๋ฅผ ์ ํ๊ธฐ ์ํ ๊ธฐ์ค ์ ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
(x์ y๋ ์ ๋ ฅ ๋ฐ ์ถ๋ ฅ ๋ฒกํฐ, W๋ ๊ฐ์ค์น ํ๋ ฌ, b๋ ํธํฅ ๋ฒกํฐ๋ฅผ ์๋ฏธํฉ๋๋ค.)
3. Softmax
Softmax๋ ๋ค์ค ํด๋์ค ๋ถ๋ฅ ๋ฌธ์ ์์ ๊ฐ ํด๋์ค๋ณ ํ๋ฅ ์ ๋ํ๋ด๊ธฐ ์ํด ์ฌ์ฉํ๋ ํ๋ฅ ๋ชจ๋ธ์ ๋๋ค.
์ด ๋ชจ๋ธ์ ์๋จ์ FCN์ ์ ํ ์ถ๋ ฅ์ [0, 1]๋ก ์์ถํ๊ณ ์ด ๊ฐ๋ค์ ํฉ์ 1๋ก ๋ง๋ญ๋๋ค.
4. Add & Norm
์ด ๋๊ฐ์ง ๋ถ๋ถ์ ์์ ์ค๋ช ํ ๋ถ๋ถ๋ณด๋ค ์กฐ๊ธ ๋ ๋ณต์กํ์ง๋ง, ๊ทธ๋งํผ ๋ ์ค์ํ ๋ถ๋ถ์ ๋๋ค.
Add๋ Residual Connection, ๋๋ Skip Connection์ ์๋ฏธํฉ๋๋ค. Residual Connection๊ณผ Skip Connection์ ์ผ๋ฐ์ ์ผ๋ก๋ ํผ์ฉ๋์ด ์ฌ์ฉ๋ ๋งํผ ๊ฑฐ์ ๊ฐ์ ์๋ฏธ๋ก ์ฌ์ฉ๋์ง๋ง, ๊ฐ ๋จ์ด์ ์ ๋์ ์ ์ฉ ๋ฒ์์ ์์ด ์ฐจ์ด๋ฅผ ๋ณด์ ๋๋ค.
์ด๋ค์ ๊ธฐ๋ณธ ์์ด๋์ด๋, ์ ๊ฒฝ๋ง์ด ๊น์ด์ง์๋ก ํ์ต์ด ์ด๋ ค์ ๋๋ฐ ์ด ์์ธ์ผ๋ก ๊ทธ๋๋์ธํธ ์์ค(vanishing gradient)๊ณผ ๊ทธ๋๋์ธํธ ํญ๋ฐ(exploding gradient)์ด ์ง์ ๋์์ต๋๋ค. ์ฌ๊ธฐ์ ๊ทธ๋๋์ธํธ ์์ค์ด๋ ์ญ์ ํ ๊ณผ์ ์์ ๊ทธ๋๋์ธํธ ๊ฐ์ด ์ ์ ์์์ฌ, ์ด๊ธฐ ๊ณ์ธต๋ค์ ๊ฐ์ค์น๊ฐ ๊ฑฐ์ ์ ๋ฐ์ดํธ๋์ง ์๋ ํ์์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋๋์ธํธ ํญ๋ฐ์ ๋ฐ๋๋ก ๊ทธ๋๋์ธํธ ๊ฐ์ด ์ ์ ์ปค์ง๋ ๋ฐฉํฅ์ผ๋ก ์ฆ๊ฐํ ๊ฒฝ์ฐ, ๊ฐ์ค์น ์ ๋ฐ์ดํธ๊ฐ ๋๋ฌด ํฌ๊ฒ ๋ฐ์ํ์ฌ ๋ชจ๋ธ ํ์ต์ด ๋ถ์์ ํด์ง๋ ํ์์ ๋งํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, ๋ชจ๋ธ์ ๊ฐ ์ฌ์ดํด์์ ์ ๋ ฅ์ ์์ฐจ๋ฅผ ๋ํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ฒ์ด Add ๊ณผ์ ์ ๋๋ค.
์ฌ์ดํด์ ์ต์ข ์ถ๋ ฅ์ x+F(x), F(x)=y-x๋ก ํ์ฌ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ ๊ฒฝ์ฐ์๋ง F(x)๊ฐ ์ ์๋ฏธํ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ฉฐ, ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฑฐ์ 0์ ์๋ ดํ๋ฉฐ F(x)๋ ๋นํ์ฑํ๋ฉ๋๋ค.
๋ค์์ผ๋ก Norm ๋จ๊ณ์ธ๋ฐ, ์ด ๋ถ๋ถ์ ๊ฐ ์ฐจ์ output์ ํ๊ท ๊ณผ ํ์ค ๋ณ์ฐจ๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ทํํฉ๋๋ค.
์์์ ์ดํด๋ณด๋ฉด, ๊ฐ ๋ฐ์ดํฐ์ ํ๊ท ์ ๋นผ๊ณ , ์ด๋ฅผ ํ์ค ํธ์ฐจ์ ์ ๊ณฑ๊ณผ ์ก์ค๋ก (๋ถ๋ชจ๊ฐ 0์ด ๋์ง ์๊ธฐ ์ํด ์ถ๊ฐ) ํฉ์ ๋ฃจํธ๋ก ๋๋๋๋ฐ, ์ด๋ฅผ ํตํด output์ ์ถ๋ ฅ ๋ถํฌ๋ฅผ ์ผ์ ํ ๋ฒ์ ๋ด์์ ์ ์งํฉ๋๋ซ.
๋ฐ์ดํฐ์ ๋ถํฌ ์์์ด ์ผ์ ํ๊ฒ ์ ์ง๋๋ฉด, ์์ ์ ์ผ๋ก ๋ ๋น ๋ฅด๊ฒ ํ์ต์ ํ ์ ์์ต๋๋ค.
๋ค์ ํฌ์คํ ์ ๋๋น๋๋์ ์์์ ์ ๋ฆฌํ๊ณ ๋ฆฌ๋ทฐํ๋ ํ์์ผ๋ก ์ด์ด์ Transformer์ ๋ํด ์ ๋ฆฌํ๊ฒ ์ต๋๋ค.
์ฐธ๊ณ ์๋ฃ
https://codingsmu.tistory.com/84#%EB%AA%A-%EC%B-%A-
https://www.youtube.com/watch?v=AA621UofTUA&ab_channel=%EB%8F%99%EB%B9%88%EB%82%98
'๐ค ์ธ๊ณต์ง๋ฅ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kaggle] Intro to Machine Learning ์๊ฐ ํ๊ธฐ + ๋ด์ฉ ์์ฝ (0) | 2023.10.26 |
---|---|
[์ฐ๊ตฌ์ผ์ง] ๊ธฐ์กด Topic Modeling์ ํ๊ณ (2) | 2023.10.10 |
[์ฐ๊ตฌ์ผ์ง] K-means VS HDBSCAN (0) | 2023.10.09 |
[CVPR 22'] Dressing in the Wild by Watching Dance Video - 2 (0) | 2023.08.08 |
[CVPR 22'] Dressing in the Wild by Watching Dance Video - 1 (0) | 2023.08.04 |