
๐ Attention is all you need (2017, ๊ตฌ๊ธ)
๐ RNN ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ Attention๋ง์ผ๋ก ๊ตฌํํ ๋ชจ๋ธ
๐ ๊ธฐ์กด์ seq2seq ๋ชจ๋ธ์์ ์ธ์ฝ๋๋ ์
๋ ฅ ์ํ์ค๋ฅผ ํ๋์ ๋ฒกํฐ ํํ์ผ๋ก ์์ถํ๋๋ฐ ์ด ๊ณผ์ ์ ์ ์
๋ ฅ ์ํ์ค์ ์ ๋ณด๊ฐ ์ผ๋ถ ์์ค๋๋ค๋ ๋จ์ ์ด ์์. ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ์ดํ
์
๋ง์ผ๋ก ์ธ์ฝ ๊ฑฐ์ ๋์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋ ๋ชจ๋ธ์ ์ ์
๐ multi-head self-attention๋ฅผ ์ด์ฉํ ๋ณ๋ ฌ์ฒ๋ฆฌ๊ฐ ํน์ง
โช encoder์ decoder

โช encoding์ ์ฌ๋ฌ ๊ฐ์ encoder๋ฅผ ์์ ์ฌ๋ ค ๋ง๋ ๊ฒ, ๋
ผ๋ฌธ์์๋ 6๊ฐ ์์์ฌ๋ฆผ, decoding์ encoding๊ณผ ๋์ผํ ๊ฐ์๋งํผ์ decoder๋ฅผ ์์ ๊ฒ
โช encoder ๊ตฌ์กฐ: encoder๋ค์ ๋ชจ๋ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ ๋์ผํ weight์ ๊ณต์ ํ์ง ์๋๋ค.
2๊ฐ์ sub-layer๋ฅผ ๊ฐ์ง(self-attention layer, feed forword neural network layer)

โช decoder ๊ตฌ์กฐ: 3๊ฐ์ sub-layers๋ฅผ ๊ฐ์ง(self-attention layer, encoder-decoder-attention layer, feed forward layer)

๐ ํธ๋์คํฌ๋จธ๋ ๋จ์ด ์
๋ ฅ์ ์์ฐจ์ ์ผ๋ก ๋ฐ์ง ์๊ธฐ ๋๋ฌธ์ ๋จ์ด์ ์์น ์ ๋ณด๋ฅผ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์๋ ค์ค ํ์๊ฐ ์์
๐ positional encoding(ํฌ์ง์
๋ ์ธ์ฝ๋ฉ): ๋จ์ด์ ์๋ฒ ๋ฉ ๋ฒกํฐ์ ์์น ์ ๋ณด๋ค์ ๋ํ์ฌ ๋ชจ๋ธ์ ์
๋ ฅ์ผ๋ก ์ฌ์ฉํ์ฌ ๋จ์ด์ ์์น ์ ๋ณด๋ฅผ ์ ๋ฌ, ๊ฐ์ ๋จ์ด๋ผ๋ ํฌ์ง์
๋ ์ธ์ฝ๋ฉ ๊ฐ์ด ๋ฌ๋ผ์ง๊ณ ์๋ฒ ๋ฉ ๋ฒกํฐ ๊ฐ์ด ๋ฌ๋ผ์ง ๋ฐ๋ผ์ ์์ ์ ๋ณด๊ฐ ๋ฐ์๋จ

๐ positional encoding ๊ฐ ๊ตฌํ๊ธฐ


โช ํฌ์ง์
๋ ์ธ์ฝ๋ฉ์ ์ฌ์ธ ํจ์์ ์ฝ์ฌ์ธ ํจ์๋ฅผ ์ด์ฉํด ๊ตฌํจ.
โช pos:์
๋ ฅ ๋ฌธ์ฅ์์์ ์๋ฒ ๋ฉ ๋ฒกํฐ์ ์์น
โช i:์๋ฒ ๋ฉ ๋ฒกํฐ ๋ด์ ์ฐจ์์ ์ธ๋ฑ์ค, ์ธ๋ฑ์ค๊ฐ ์ง์์ธ ๊ฒฝ์ฐ๋ ์ฌ์ธ ํจ์ ๊ฐ์ ์ฌ์ฉํ๊ณ , ํ์์ธ ๊ฒฝ์ฐ๋ ์ฝ์ฌ์ธ ํจ์ ๊ฐ์ ์ฌ์ฉ
โช d_model:ํธ๋์คํฌ๋จธ์ ๋ชจ๋ ์ธต์ ์ถ๋ ฅ ์ฐจ์์ ์๋ฏธํ๋ ํ์ดํผํ๋ผ๋ฏธํฐ, ๋
ผ๋ฌธ์์๋ 512 ๊ฐ์ ์ฌ์ฉ


๐ encoder self-attention:์ธ์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋ฉฐ ์
๋ ฅ์ผ๋ก ๋ค์ด๊ฐ ๋ฌธ์ฅ ๋ด ๋จ์ด๋ค์ด ์๋ก ์ ์ฌ๋๋ฅผ ๊ตฌํ๋ค.
๐ decoder self-attention:๋์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋ฉฐ ๋จ์ด๋ฅผ 1๊ฐ์ฉ ์์ฑํ๋ ๋์ฝ๋๋ ์ด๋ฏธ ์์ฑ๋ ์ ๋จ์ด๋ค๊ณผ์ ์ ์ฌ๋๋ฅผ ๊ตฌํ๋ค.
๐ encoder-decoder attention:๋์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋ฉฐ, ๋์ฝ๋๊ฐ ์ ์์ธกํ๊ธฐ ์ํด์ ์ธ์ฝ๋์ ์
๋ ฅ๋ ๋จ์ด๋ค๊ณผ ์ ์ฌ๋๋ฅผ ๊ตฌํ๋ค.
๐ ์ดํ
์
์ ์ํ ์ธ ๊ฐ์ง ์
๋ ฅ ์์:์ฟผ๋ฆฌ(Query), ํค(Key), ๊ฐ(Value)

๐"๊ทธ ๋๋ฌผ์ ๊ธธ์ ๊ฑด๋์ง ์์๋ค ์๋ํ๋ฉด ๊ทธ๊ฒ์ ๋๋ฌด ํผ๊ณคํ๊ธฐ ๋๋ฌธ์ด๋ค"
์ด ๋ฌธ์ฅ์์ ๊ทธ๊ฒ์ ๊ธธ์ ๋งํ๋ ๊ฑธ๊น ์๋๋ฉด ๋๋ฌผ์ ๋งํ๋ ๊ฑธ๊น? ์ฌ๋์๊ฒ๋ ๊ฐ๋จํ ์ง๋ฌธ์ด์ง๋ง ์ ๊ฒฝ๋ง ๋ชจ๋ธ์๊ฒ๋ ๊ทธ๋ ์ง ์๋ค. ๊ทธ๊ฒ์ด ๋๋ฌผ ๋๋ ๊ธธ์ ํด๋นํ๋์ง๋ ์ ์ฌ๋์ ์ํ ํ๋ฅ ๊ฐ์ผ๋ก ์ ์ ์๋ค. ์ ์ฌ๋๋ฅผ ๊ตฌํ๋ ์์ ๋ค์๊ณผ ๊ฐ๋ค.

๐Q:์ฟผ๋ฆฌ(Query), K:ํค(Key), V:๊ฐ(Value), X:์
๋ ฅ๋ฒกํฐ ์ํ์ค
โช์
ํ์ดํ
์
์ ์ฟผ๋ฆฌ, ํค, ๋ฐธ๋ฅ 3๊ฐ ์์ ์ฌ์ด์ ๋ฌธ๋งฅ์ ๊ด๊ณ์ฑ์ ์ถ์ถํ๋ ๊ณผ์
โช์ฟผ๋ฆฌ, ํค, ๋ฐธ๋ฅ๋ฅผ ๊ตฌํ๋ ์์ ๋ค์๊ณผ ๊ฐ๋ค.

โช์ด ๋ ์
๋ ฅ๋ฒกํฐ ์ํ์ค๋ฅผ ๋ค์๊ณผ ๊ฐ๋ค๊ณ ๊ฐ์ ํ์.

โช์ฟผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํ๋ค. ์ข๋ณ์ด ์
๋ ฅ๋ฒกํฐ ์ํ์ค์ด๊ณ ์ฐ๋ณ์ด W_Q์ ๋์ํ๋ค.

โชํค๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํ๋ค. ์ข๋ณ์ด ์
๋ ฅ๋ฒกํฐ ์ํ์ค์ด๊ณ ์ฐ๋ณ์ด W_K์ ๋์ํ๋ค.

โช๋ฐธ๋ฅ๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํ๋ค. ์ข๋ณ์ด ์
๋ ฅ๋ฒกํฐ ์ํ์ค์ด๊ณ ์ฐ๋ณ์ด W_V์ ๋์ํ๋ค.

โชW_Q, W_K, W_V๋ ํ์ต ๊ณผ์ ์์ ์
๋ฐ์ดํธ๋๋ค.



โชd_k ๊ฐ์ d_model/num_heads๋ผ๋ ์์ ๋ฐ๋ผ ๊ตฌํ๋ฉฐ ์ฌ๊ธฐ์ ๋ฃจํธ๋ฅผ ์์ด ๊ฐ์ผ๋ก ๊ณ์ฐํ๋ค.
โชd_model/num_heads ๊ฐ์ Q, K, V ๋ฒกํฐ์ ์ฐจ์๊ณผ ๋์ผํ๋ค.
โช์ถ๊ฐ๋ก ์ฟผ๋ฆฌ๋ ํ๊น ์ธ์ด ๋ฌธ์ฅ์ ๋จ์ด ๋ฒกํฐ ์ํ์ค, ํค๋ ์์ค ์ธ์ด์ ๋ฌธ์ฅ์ ๋จ์ด ๋ฒกํฐ ์ํ์ค์ ํด๋นํ๋ค.
โช์ฟผ๋ฆฌ์ ํค๋ฅผ ํ๋ ฌ๊ณฑ(dot product)ํ ๋ค ํด๋น ํ๋ ฌ์ ๋ชจ๋ ์์๊ฐ์ ํค ์ฐจ์์์ ์ ๊ณฑ๊ทผ ๊ฐ์ผ๋ก ๋๋ ์ฃผ๊ณ , ์ด ํ๋ ฌ์ ํ(row) ๋จ์๋ก ์ํํธ๋งฅ์ค(softmax)๋ฅผ ์ทจํด ์ค์ฝ์ด ํ๋ ฌ์ ๋ง๋ค์ด์ค๋ค. ์ด ์ค์ฝ์ด ํ๋ ฌ์ ๋ฐธ๋ฅ๋ฅผ ํ๋ ฌ๊ณฑํด ์ค์ ์ดํ
์
๊ฐ(Attention Value)์ ๊ตฌํ๋ค. softmax ํจ์๋ฅผ ์ฌ์ฉํ ์ด์ ๋ ์ ์ฌ๋๋ฅผ 0๊ณผ 1์ฌ์ด์ ๊ฐ์ผ๋ก Normalize ํ๊ธฐ ์ํจ์ด๋ค.
๐ ์์ ๊ฐ์ด ๋ด์ (dot product)์ ํตํด ๋จ์ด ๋ฒกํฐ ๊ฐ ์ ์ฌ๋๋ฅผ ๊ตฌํ ํ ํน์ ๊ฐ์ ๋ถ๋ชจ๋ก ๋๋ ์ฃผ๋ ๋ฐฉ์์ผ๋ก Q์ K์ ์ ์ฌ๋๋ฅผ ๊ตฌํ๋คํ์ฌ ์ค์ผ์ผ๋ ๋ท ํ๋ก๋ํ ์ดํ ์ (Scaled Dot Product Attention)์ด๋ผ๊ณ ํ๋ค. ํน์ ๊ฐ์ ๋ถ๋ชจ๋ก ๋๋์ง ์์ ์ดํ ์ ์ ๋ท ํ๋ก๋ํธ ์ดํ ์ (dot product attention)์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๐ self-attention layer์๋ค "multi-headed" attention ๋ฉ์ปค๋์ฆ์ ๋ํด attention layer์ ์ฑ๋ฅ์ ํฅ์์ํด
๐ ๊ทธ๋ฆฌ์ค๋ก๋ง์ ํ์ ๋ฑ์ฅํ๋ ๊ดด๋ฌผ ํ๋๋ผ๋ ์ผ๋ก๋ฒ ๋ก์ค๋ ๋จธ๋ฆฌ๊ฐ ์ฌ๋ฌ๊ฐ๋ผ ์๋๋ฐฉ์ ์ฌ๋ฌ ์์ ์์ ๋ณผ ์ ์๋ค. ๋ฉํฐ ํค๋ ์ดํ ์ ๋ ์ดํ ์ ์ ๋ณ๋ ฌ๋ก ์ํํด ๋ค๋ฅธ ์๊ฐ์ผ๋ก ์ ๋ณด๋ค์ ์์งํ๊ฒ ๋ค๋ ๊ฒ์ด๋ค. ์์ ์ธ๊ธํ '๊ทธ ๋๋ฌผ์ ๊ธธ์ ๊ฑด๋์ง ์์๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ์ ๋๋ฌด ํผ๊ณคํ์๊ธฐ ๋๋ฌธ์ด๋ค.'๋ฅผ ์๊ธฐํด ๋ณด๋ฉด ๊ฐ๊ฐ์ ์ดํ ์ ํค๋๋ '๊ทธ๊ฒ(it)'๊ณผ '๋๋ฌผ(animal)'๊ณผ์ ์ฐ๊ด๋๋ฅผ ๋๊ฒ ๋ณด๊ธฐ๋ ํ๊ณ '๊ทธ๊ฒ'๊ณผ 'ํผ๊ณคํ๊ธฐ ๋๋ฌธ์ด๋ค(tired)'์ ์ฐ๊ด๋๋ฅผ ๋๊ฒ ๋ณด๊ธฐ๋ ํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์๊ฐ์ ์ ๋ณด๋ฅผ ๋ชจ์ '๊ทธ๊ฒ'์ด ๋ฌด์์ ๋ปํ๋์ง ๋ ์ ํํ๊ฒ ์ฐพ์๋ธ๋ค.
๐ ํ๋ฒ์ d_model ์ฐจ์์ ์ดํ
์
์ ์ํํ์ง ์๊ณ d_model์ num_heads๋ก ๋๋ ์ฐจ์ ์ถ์์ํจ ๋ฒกํฐ๋ก ์ฌ๋ฌ๋ฒ ์ดํ
์
์ ์ํ. ์ฆ, ์ดํ
์
์ num_heads ๋งํผ ๋ณ๋ ฌ๋ก ์ํ.(num_heads๋ hyperparameter) ์ด ๋ ๊ฐ๊ฐ์ ์ดํ
์
๊ฐ ํ๋ ฌ์ ์ดํ
์
ํค๋๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ค์น ํ๋ ฌ W_Q, W_K, W_V์ ๊ฐ์ ์ดํ
์
ํค๋ ๋ง๋ค ๋ชจ๋ ๋ค๋ฅด๋ค.

๐ ๋ณ๋ ฌ ์ดํ
์
์ ๋ชจ๋ ์ํํ์๋ค๋ฉด ๋ชจ๋ ์ดํ
์
ํค๋๋ฅผ ์ฐ๊ฒฐ(concatenate)ํ๋ค. ๋ชจ๋ ์ฐ๊ฒฐ๋ ์ดํ
์
ํค๋ ํ๋ ฌ์ ํฌ๊ธฐ๋ (seq_len, d_model)์ด๋ค.

๐ ๋ง์คํน(Masking):ํน์ ๊ฐ๋ค์ ๊ฐ๋ ค์ ์ค์ ์ฐ์ฐ์ ๋ฐฉํด๊ฐ ๋์ง ์๋๋ก ํ๋ ๊ธฐ๋ฒ, ํธ๋์คํฌ๋จธ์์ ํจ๋ฉ ๋ง์คํน(Padding Masking)๊ณผ ๋ฃฉ ์ดํค๋ ๋ง์คํน(Look-ahead masking, ๋ค์ ๋จ์ด ๊ฐ๋ฆฌ๊ธฐ) ์ฌ์ฉ
๐ 1.ํจ๋ฉ ๋ง์คํน(Padding Masking)
โ์ ๋ ฅ ๋ฌธ์ฅ์ ๊ฐ ์์ ๊ฒฝ์ฐ ์ดํ ์ ์์ ์ ์ธํ๊ธฐ ์ํ ์ฐ์ฐ, ๋ ์ค์ง์ ์ธ ์๋ฏธ๋ฅผ ๊ฐ์ง ๋จ์ด๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ํ ํฐ์ด ์กด์ฌํ๋ค๋ฉด ์ด์ ๋ํด์๋ ์ ์ฌ๋๋ฅผ ๊ตฌํ์ง ์๋๋ก ๋ง์คํน(Masking) ํด์ค
โ ํจ๋ฉ ๋ง์คํน ๊ตฌํ ํจ์
> def create_padding_mask(x):
mask = tf.cast(tf.math.equal(x, 0), tf.float32)
# (batch_size, 1, 1, sequence length)
return mask[:, tf.newaxis, tf.newaxis, :]
print(create_padding_mask(tf.constant([[1, 21, 777, 0, 0]]))) #์์์ ์ ์ ์ํ์ค ์ธ์๋ก ๋๊ฒจ์ค
tf.Tensor([[[[0. 0. 0. 1. 1.]]]], shape=(1, 1, 1, 5), dtype=float32) #๊ฒฐ๊ณผ
โtf.math.equal(x, y) => x, y์ ์์๋ฅผ ๋น๊ตํด์ ๋์ผํ๋ฉด truth, ๋ค๋ฅด๋ฉด false ๋ฐํ
โtf.cast(x, dtype) => ์ง์ ํ ๋ฐ์ดํฐํ์ผ๋ก true๋ 1.์ false๋ 0.์ ๋ฐํ
๐ 2.๋ฃฉ ์ดํค๋ ๋ง์คํน(Look-ahead masking, ๋ค์ ๋จ์ด ๊ฐ๋ฆฌ๊ธฐ)
โ RNN์ ๊ฐ step๋ง๋ค ๋จ์ด๊ฐ ์์๋๋ก ์ ๋ ฅ์ผ๋ก ๋ค์ด๊ฐ๋ ๊ตฌ์กฐ ๋ฐ๋ฉด์ ํธ๋์คํฌ๋จธ๋ ๋ฌธ์ฅ ํ๋ ฌ์ ๋ง๋ค์ด ํ ๋ฒ์ ํ๋ ฌ ํํ๋ก ์ ๋ ฅ์ผ๋ก ๋ค์ด๊ฐ ์ด๋ฐ ํน์ง ๋๋ฌธ์ ๋ง์คํน(Masking)์ ํ์๋กํ๋ค.
โ RNN ์
๋ ฅ ๊ตฌ์กฐ
์ฒซ ๋ฒ์งธ step
ํ์ฌ๊น์ง์ ์
๋ ฅ : what โ ์ถ๋ ฅ : is
๋ ๋ฒ์งธ step
ํ์ฌ๊น์ง์ ์
๋ ฅ : what is โ ์ถ๋ ฅ : the
์ธ ๋ฒ์งธ step
ํ์ฌ๊น์ง์ ์
๋ ฅ : what is the โ ์ถ๋ ฅ problem

โ ํธ๋์คํฌ๋จธ ์
๋ ฅ ๊ตฌ์กฐ
ํธ๋์คํฌ๋จธ๋ ์ ์ฒด ๋ฌธ์ฅ ํ๋ ฌ์ ์
๋ ฅ ๋ฐ์ผ๋ฏ๋ก ํ์ฌ ์์ ๋ณด๋ค ๋ฏธ๋์ ์๋ ๋จ์ด๋ค์ ์ฐธ๊ณ ํ์ง ๋ชปํ๋๋ก ๋ฃฉ ์ดํค๋ ๋ง์คํน ๋์
, ๋์ฝ๋์ ์ฒซ๋ฒ์งธ ์๋ธ์ธต์์ ์ด๋ฃจ์ด์ง, self-attention์ ํตํด ์ป๋ attention score matrix์์ Q ๋ค์ K ๋จ์ด๋ค์ ๋ํด ๋ง์คํนํจ

๐ self-attention layer, feed forward neural network layer
๐ The Residuals
encoder ๋ด์ sub-layer๋ residual connection์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๊ณ ๊ทธ ์ดํ layer normalization ๊ณผ์ ์ ๊ฑฐ์นจ

๐ layer normalization
input์ ํ๊ท ๊ณผ ๋ถ์ฐ์ ๊ตฌํด์ batch์ ์๋ ๊ฐ input์ ์ ๊ทํ


๐ ๋์ฝ๋์ ์
๋ ฅ์ โ ์ธ์ฝ๋ ๋ง์ง๋ง ๋ธ๋ก์์ ๋์จ ๋จ์ด ๋ฒกํฐ ์ํ์ค, โก์ด์ ๋์ฝ๋ ๋ธ๋ก์ ์ํ ๊ฒฐ๊ณผ๋ก ๋์ถ๋ ํ๊น ๋จ์ด ๋ฒกํฐ ์ํ์ค
๐ decoder self-attention
๋ฒ์ญํ๋ ค๋ ์ธ์ด(ํ๊ตญ->์์ด ๋ฒ์ญ์ด๋ฉด ์์ด์ ํด๋น)์ ๋จ์ด ๋ฒกํฐ ์ํ์ค๋ฅผ ๋์ฝ๋ ์
ํ ์ดํ
์
์ผ๋ก ๊ณ์ฐ, 'cafe' ๋ค์์ผ๋ก ์ฌ ๋จ์ด๊ฐ there์์ ๋ง์ถ๋ ๊ณผ์ ex)I went to the cafe there. => I(0.01) went(0.01) to(0.02) ... (๊ดํธ์์ ๊ฐ์ ์ดํ
์
๊ฐ)
๐ masked multi-head attention
์์ค ์ธ์ด ๋ฌธ์ฅ(์ด์ ์นดํ ๊ฐ์์ด ๊ฑฐ๊ธฐ ์ฌ๋ ๋ง๋๋ผ) ๋จ์ด ๋ฒกํฐ ์ํ์ค๋ฅผ ํค๋ก ์ผ๊ณ ํ๊น ์ธ์ด ๋ฌธ์ฅ(I went to the cafe yesterday There...)์ ๋จ์ด ๋ฒกํฐ ์ํ์ค๋ฅผ ์ฟผ๋ฆฌ๋ก ์ผ์ ์
ํ ์ดํ
์
๊ณ์ฐ์ ์ํ.(์์ง๋ง์ ์ฟผ๋ฆฌ๊ฐ ์ง๋ฌธ์ด๊ณ ๋ต์ ์ฐพ๊ธฐ ์ํด ์ฐธ์กฐํ๋ ๊ฒ์ด ํค๋ผ๋ ๊ฒ์...) ์๋ฅผ ๋ค์ด ์ฟผ๋ฆฌ ์์ 'cafe'์ ๋์ํ์ฌ key ์์๋ค์ ์
ํ ์ดํ
์
์ ํตํ์ฌ ํ๋ฅ ๊ฐ์ ๊ฐ๊ณ ๊ทธ ์ค ๊ฐ์ฅ ๋์ ํ๋ฅ ์ ๊ฐ๋ '์นดํ'๋ฅผ ๋ง์ถ๋ ๊ฒ์ด๋ค.

๐ ํ์ต์ ๋์ฝ๋์์ ์ํ๋๋ ์
ํ ์ดํ
์
์๋ ๋จ์ด ๋ฒกํฐ ์ํ์ค์ ๋ง์คํน์ด ์ ์ฉ๋๋ค. ์ด๋ ์ ๋ต์ ํฌํจํ ๋ฏธ๋ ์ ๋ณด๋ฅผ ์
ํ ์ดํ
์
๊ณ์ฐ์์ ์ ์ธํ๋๋ก ํธ๋ฆญ์ ์ฐ๋ ์
์ด๋ค. ๋ง์คํน์ด ์ ์ฉ๋ ๋จ์ด์ ๋ณด๋ ํ๋ฅ ๊ฐ์ด 0์ด ๋๊ฒ ํ์ฌ ํด๋น ๋จ์ด ์ ๋ณด๊ฐ ๋ฌด์๋๊ฒ๋ ํ๋ ๋ฐฉ์์ผ๋ก ์ํ๋๋ค.


๐ decoder์ self-attention, encoder-decoder attention ๋ชจ๋ ์ค์ผ์ผ๋ ๋ท ํ๋ก๋ํ ์ดํ
์
์ ๋ฉํฐ ํค๋ ์ดํ
์
์ผ๋ก ๋ณ๋ ฌ์ ์ํ
๐ decoding์ ๊ฐ ์คํ
๋ง๋ค ์ถ๋ ฅ๋ ๋จ์ด๊ฐ ๋ค์ ์คํ
์ decoder์ ๋ค์ด๊ฐ๊ณ ์ฌ๋ฌ decoder layer๋ฅผ ํต๊ณผํ๋ฉฐ ์ฌ๋ผ๊ฐ. ๋ฅผ ์ถ๋ ฅํ ๋๊น์ง ๋ฐ๋ณต๋๋ค.
๐ ๋์ฝ๋์ ์ต์ข
๊ฒฐ๊ณผ๋ฌผ์ธ ๋ฒกํฐ๋ฅผ Linear Layer์ Softmax Layer๋ฅผ ํตํด ์์ธก ๋จ์ด๋ก ๋ฐ๊ฟ์ค๋ค.
๐ Linear Layer: fully-connected ์ ๊ฒฝ๋ง์ผ๋ก ๋์ฝ๋์ ์ถ๋ ฅ ๋ฒกํฐ๋ฅผ ํจ์ฌ ๋ ํฐ ์ฌ์ด์ฆ์ธ logits ๋ฒกํฐ๋ก ํฌ์์ํด. ์๋ฅผ ๋ค์ด 10,000๊ฐ์ ์์ด ๋จ์ด๋ฅผ ํ์ตํ์๋ค๊ณ ๊ฐ์ ํ๋ฉด logits vector์ ํฌ๊ธฐ๋ 10,000์ด ๋จ. ๋ฒกํฐ์ ๊ฐ ์์๋ ๊ฐ ๋จ์ด์ ๋ํ ์ ์
๐ softmax layer: logits vector์ ๊ฐ ์
๋ค์ ์ ์๋ฅผ ํ๋ฅ ๋ก ๋ณํํด์ฃผ๋ ์ญํ . ๊ฐ ์
๊ฐ๋ค์ ๋ชจ๋ ๋ํ๋ฉด 1์ด ๋๊ณ ๊ฐ์ฅ ๋์ ํ๋ฅ ๊ฐ์ ๊ฐ์ง๋ ์
์ ๋จ์ด๊ฐ ์ต์ข
์ถ๋ ฅ๋จ.

Reference
1.ํจ๋ฉ๋ง์คํฌ
2.๋์ฝ๋ ์ดํดํ๊ธฐ
3.ํธ๋์คํฌ๋จธ ๋
ผ๋ฌธ ํ๊ตญ์ด ๋ฒ์
4.๋๋๋น๋ ํธ๋์คํฌ๋จธ ์ค๋ช
์๋ฃ
5.์ํค๋
์ค ํธ๋์คํฌ๋จธ