Batch Normalization
https://arxiv.org/pdf/1502.03167
Background
batch normalizaion ์ 2015๋ ์ ์ ์๋ ICS(Internal Covariate Shift) ๋ฌธ์ ๋ฅผ ์ค์ผ ์ ์๋ ์์ด๋์ด์ ๋๋ค. covariate shift ๋ ํ์ต ๋ ํ์ฉํ ๋ฐ์ดํฐ๊ฐ ์ค์ ์ถ๋ก ์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๊ฐ์ ๋ถํฌ๊ฐ ๋ค๋ฅด๋ฉด ์ถ๋ก ์ฑ๋ฅ์ ์ ์ํฅ์ ๋ฏธ์น ์ ์๋ค๋ผ๋ ์ฃผ์ฅ์ธ๋ฐ ์ด๊ฒ ์ ๊ฒฝ๋ง ๋ด๋ถ์์๋ ๋ฐ์ํ ๊ฒ์ด๋ค ๋ผ๋ ์ฃผ์ฅ์ ํ๋ฉฐ ์๊ธด์ฉ์ด๊ฐ Internal Covariate Shift ๋ผ๊ณ ํฉ๋๋ค. ์๋ ์ฌ์ง์ ๋ณด๋ฉด ์ง๊ด์ ์ผ๋ก ์ดํด๊ฐ ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ ๊ฒฝ๋ง์ ํต๊ณผํ๋ฉด์ ๋ฐ์ดํฐ์ ๋ถํฌ๊ฐ ๋ฌ๋ผ์ง๋ ํ์์ด ๋ฐ์ํ๋๋ฐ


ํต๊ณผํ๋ ๋ ์ด์ด ์๊ฐ ๋ง์์ง์๋ก ๊ทธ ์ ๋๊ฐ ์ฌํด์ง๊ธฐ ๋๋ฌธ์ ๋น์ฐํ ์ถ๋ก ์ด๋ ํ์ต ์ฑ๋ฅ์ ๋ฌธ์ ๊ฐ ์๊ธธ ํ๋ฅ ์ด ํฝ๋๋ค. Batch Normalizaion ์ ๊ธฐ์กด์ ์ ๊ทํ ๊ณผ์ ์์ ํ์ต๋ฐ์ดํฐ๋ง๋ค ๋ถํฌ๊ฐ ๋ค๋ฅธ๊ฒ์ ๋ฐฐ์น๋ณ๋ก ํ๊ท ๊ณผ ๋ถ์ฐ์ ํ์ฉํด ์ ๊ทํํ๋ ๊ฒ ์ ๋๋ค.
๋๋๋น๋์ ์์์ ์ฐธ๊ณ ํ์ฌ ์๊ฒ ๋ batch normalizaion๊ฐ ํ์ค์์๋ ํ์ดํผํ๋ผ๋ฏธํฐ ์์กด๋๋ฅผ ์ค์์ผ๋ฉฐ, ํ์ต์๋๋ฅผ ํฅ์์ํค๊ณ , ๋ชจ๋ธ์ด ์ผ๋ฐ์ ์ผ๋ก ์ฆ, ํ์ต๋ฐ์ดํฐ์๋ง ํ์คํฌ๋ฅผ ์ ์ฒ๋ฆฌํ๋๋ก ํ๋๊ฒ์ด ์๋ ์ค์ ํ์์ ์ ๋ฐ์์ํค๊ฒ ๋ ํจ๊ณผ๊ฐ ์์๋ค๊ณ ํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ๋ ผ๋ฌธ์์๋ ics ๋ฅผ ๊ฐ์์ํจ๋ค๊ณ ์ฃผ์ฅํ์์ผ๋ ์ค์ ๋ก ์ฆ๋ช ํ์ง๋ ๋ชปํ๋ค๊ณ ํฉ๋๋ค. ๊ทธ๋์ ๊ทธ๊ฒ์ ์ฆ๋ช ํ๊ธฐ ์ํ How Does Batch Normalization Help Optimization? ๋ผ๋ ๋ ผ๋ฌธ์ด ๋์์ต๋๋ค.
https://arxiv.org/pdf/1805.11604

์ฐ์ ์ผ๋ฐ์ ์ผ๋ก Batch Norm ์ ์ ์ฉ์ํจ ๋คํธ์ํฌ๊ฐ Accuracy ๊ฐ ๊ฐํ๋ฅธ ํญ์ผ๋ก ์ฌ๋ผ๊ฐ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค.

์ฐ์ธก์ ํ์คํ ๊ทธ๋จ์ ๋ณด๋ฉด ๊ฐ ๋ ์ด์ด์ ๋ถํฌ๋ฅผ ๋ํ๋ด๊ณ ์๋๋ฐ์ ๊ฐ์ฅ์ฐ์ธก์ Standard + Noisy BatchNorm ์์ Layer3 ๋ถํฐ ๋ถํฌ๊ฐ ๊ฐ์์ค๋ฝ๊ฒ ๋ณํ์ฌ ICS๊ฐ ๋ฐ์ํ๊ณ ์์์ ๋ณผ ์ ์์ต๋๋ค. ICS๊ฐ ๋ฐ์ํ๊ณ ์์์๋ ๋ถ๊ตฌํ๊ณ ์ผ์ชฝ ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด ํ์ต์ฑ๋ฅ์ด ์ฐ์ํจ์ ๋ณผ ์ ์์ต๋๋ค.
์ฆ ์์๋ก Batch Norm Layer ์ดํ ๋ฐ๋ก Noise ๋ฅผ ๋ฃ์ด covariate shift ๋ฅผ ๋ฐ์์์ผฐ์ ๋์๋ BatchNorm ์ด ํฌํจ๋ ๋คํธ์ํฌ๋ ์ผ๋ฐ์ ์ธ ๋คํธ์ํฌ๋ณด๋ค ์ฑ๋ฅ์ด ์ฐ์ํจ์ ๋ณด์์ต๋๋ค. ๊ทธ๋์ ์คํ์ ์ผ๋ก Batch Norm ์ด ICS ๋ฌธ์ ๋ฅผ ํด์ํ ์ ์๋ค๋ ์ด์ ๋ ผ๋ฌธ์ ๋ฐ๋ฐ์ ํ์๊ณ , ์ฌ์ง์ด ICS๊ฐ ํฌ๊ฒ ๋ฐ์ํจ์๋ ๋ถ๊ตฌํ๊ณ Batch Norm ์ด ์์ผ๋ฉด ์ฑ๋ฅ์ด ์ข์์ง๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค ์ฌ๋ก๊ฐ ๋์์ต๋๋ค.
ํด๋น๋ ผ๋ฌธ์์ ICS๋ฅผ ํ๋ผ๋ฏธํฐ์ ๊ธฐ์ธ๊ธฐ ๊ณ์ฐํ์ฌ ICS๋ฅผ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์ ์ ์ํ๋๋ฐ, ํฌ์คํ ์ ๋ชฉ์ ๋ณด๋ค ๋๋ฌด ๋ฒ์ด๋๋๊ฒ ๊ฐ์ ๋ค๋ฃจ์ง ์๊ฒ ์ต๋๋ค. ๊ถ๊ธํ์ ๋ถ๊ป์๋ ๋ ผ๋ฌธ์ ์ฐธ๊ณ ํ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ICS ๋ฅผ ํด์ํ์ง ๋ชปํ์์๋ ๋ถ๊ตฌํ๊ณ ์ฑ๋ฅ์ด ์ข์ ์ด์ ๋ ๋ญ๊น์? ๋ ผ๋ฌธ์์๋ Batch Norm ์ Smoothing ํจ๊ณผ ๋๋ฌธ์ด๋ผ๊ณ ์ค๋ช ํฉ๋๋ค.

Loss Landscape ๊ฐ ํจ์ฌ ๋ ์์ ๊ฐ๋ฅํ ๋ฒ์๋ก ํ์ฑ๋๋ฉด์ ํ์ตํจ๊ณผ๊ฐ ์ฆ๋๋๋ค๊ณ ๋งํ๊ณ ์์ต๋๋ค.
Batch Normalization Layer

๋ฏธ๋๋ฐฐ์น์ ํ๊ท ๊ฐ๊ณผ ๋ถ์ฐ์ ๊ตฌํด์ normalizaion ์ ์ํํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ง์ ๋ฒ ํ๋ฅผ ํ์ฉํด ์ค์ output ์ ๋ด๋๋ฐ์, ์ฌ๊ธฐ์ ๊ฐ๋ง์ ๋ฒ ํ๊ฐ ์ค์ ํ์ต์ ํ์ฉ๋๋ ํ๋ผ๋ฏธํฐ์ ๋๋ค. ํ์ต์ค์๋ loss ๋ฅผ ์ต์ํ ํ๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ง์ ๋ฒ ํ๋ฅผ ์ฐพ์๊ฐ ๊ฒ ์ ๋๋ค.
์ ๊ทํ์์ ํ์ต ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ํ์ฑํ ํจ์์ ํน์ง์ ์์ต๋๋ค. sigmoid๋ฅผ ์์๋ก ๋ค๋ฉด ์ด๋ค ๊ตฌ๊ฐ์์๋ ๋งค์ฐ ์ ํ์ ์ผ๋ก ์๋ํ๊ธฐ ๋๋ฌธ์ ํ์ค์ ๊ท๋ถํฌ๋ก ์ ๊ทํํ 0๊ณผ 1์ฌ์ด์ ๊ฐ์์ ์ ํ์ ์ผ๋ก ์๋ํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋์ ๊ฐ๋ง์ ๋ฒ ํ๋ฅผ ํ์ฉํด non-linearity ๋ฅผ ์ง์ผ์ฃผ๊ณ , ํด๋น ์ ๊ทํ ๋ ์ด์ด์ output ๋ ์ ์ ํ๊ฒ ๋ด๋ณด๋ผ ์ ์๊ฒ๋ฉ๋๋ค. ๊ฒฐ๋ก ์ ๋ ์ด์ด์ ์ ๋ ฅ์ ์ ๊ทํํ ๋๋ linearity ๋ฅผ ์ฃผ์ํด์ ์ ๊ทํ ํด์ผํ๋ค๋ ์ ์ ๋๋ค.
Batch Normalization Layer ์ฐ์ฐ๊ตฌ๋ถ
batch normalization Layer ๋ ํ์ตํ ๋์ ์ถ๋ก ํ ๋ ๋คํธ์ํฌ์์์ ์ญํ ์ด ๋ฌ๋ผ์ง๋๋ค. ํ์ตํ ๋ ๊ฐ๋ง์ ๋ฒ ํ ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ต์์ผ์ผ ํ์ง๋ง ์ถ๋ก ๋์๋ ํ์์์ต๋๋ค. ๋ฐ๋ผ ํด๋น ํ๋ผ๋ฏธํฐ๋ค์ ๊ณ ์ ํ์ฌ ํ์ต๋ ํ๋ผ๋ฏธํฐ์ ์ํ ๊ฐ์ด ๋์์ผํฉ๋๋ค.

step 7 ์์๋ถํฐ๋ BN ์ด training ๋ชจ๋๋ก ๋คํธ์ํฌ์ ์์๋ ๊ฒ์ inference ๋ชจ๋๋ก ๋ฐ๊ฟ๋๋ค. ( ํ๋ผ๋ฏธํฐ ๊ณ ์ ์ ํตํด์ )
Batch Normalization Data Flow
์ ๋ ฅ ๋ฐ์ดํฐ (X)
$$
X = \begin{bmatrix} [1,\ 2] \ [2,\ 4] \ [3,\ 6] \end{bmatrix}
$$
๋ฐฐ์น๋ก ๋ค์ด์จ ๋ฐ์ดํฐ
shape: (3, 2)
→ ์ํ 3๊ฐ, ๊ฐ ์ํ์ 2์ฐจ์ ๋ฒกํฐ
Linear Layer ํต๊ณผ
๊ฐ์ค์น์ bias๋ฅผ ์ด๋ ๊ฒ ๋๊ฒ ์ต๋:
$$ [ W = \begin{bmatrix} [1,0], \ [0,1] \end{bmatrix}, \quad b = [0,\ 0] ] $$
์ฆ, ์๋ฌด ๋ณํ ์๋ ์ ํ์ธต
$$ [ Z = XW + b = X ] $$
๊ฒฐ๊ณผ:
Z =
[
[1, 2],
[2, 4],
[3, 6]
]
shape ๊ทธ๋๋ก (3, 2)
Batch Normalization
1๏ธโฃ Batch Mean (μ)
feature๋ณ ํ๊ท :
$$ μ=[(1+2+3)/3, (2+4+6)/3]=[2, 4] $$
2๏ธโฃ Batch Variance (σ²)
$$ σ2=[((1−2)2+(2−2)2+(3−2)2)/3,((2−4)2+(4−4)2+(6−4)2)/3]=[2/3, 8/3] $$
3๏ธโฃ Normalize (xฬ)
$$ \hat{x} = \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} (ε ๋ฌด์ํ๋ค๊ณ ๊ฐ์ ) $$
์ํ๋ณ ๊ณ์ฐ
์ฒซ ๋ฒ์งธ ์ํ
$$ [1,2] → [-1/\sqrt{2/3},\ -2/\sqrt{8/3}] ≈ [-1.22,\ -1.22] $$
๋ ๋ฒ์งธ
$$ [2,4] → [0,\ 0] $$
์ธ ๋ฒ์งธ
$$ [3,6] → [1.22,\ 1.22] $$
๊ฒฐ๊ณผ:
X_hat =
[
[-1.22, -1.22],
[ 0.00, 0.00],
[ 1.22, 1.22]
]
๊ทธ๋ฆฌ๊ณ ํด๋น๊ฐ์ gamma ์ betta ์ฐ์ฐ์ ํตํด Layer ๋ฅผ ํต๊ณผ์ํต๋๋ค. ์ด์ฒ๋ผ batch norm ์ ๋ฏธ๋ ๋ฐฐ์น์ ํผ์ฒ๋ณ๋ก ํ๊ท , ๋ถ์ฐ์ ๊ตฌํด์ ์๋ณธ ๋ฐ์ดํฐ์ ๋์ ์ํค๋ ๋ฐฉ๋ฒ์ผ๋ก Normalizaion ์ ์ํํ๊ฒ ๋ฉ๋๋ค.
Layer Normalization
Layer Normalization ์ Batch Norm ์ด RNN ์ ์ ์ฉํ๊ธฐ ์ด๋ ค์ด ๋ฌธ์ ์ ์ ํด์ํ๊ธฐ ์ํด ์ ์๋ ๋ฐฉ๋ฒ์ ๋๋ค. RNN์ ์๊ฐ๋จ์๋ก ๊ณ์ฐ์ ํฉ๋๋ค. ๋ฐ๋ผ์ ๋ฏธ๋๋ฐฐ์น์ ๊ฐ ํผ์ณ๋ง๋ค ํต๊ณ๋ฅผ ์ด์ฉํด ์ ๊ทํํ๋ BN ์ ๊ฒฝ์ฐ์๋ ํด๋น ์คํธ๋ฆผ์ ๋งฅ๋ฝ์ ๋ฐ์ํ์ง ๋ชปํฉ๋๋ค.
๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ RNN ์ด๋ NLP, ํน์ ์์ฑ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ๋ ๋ฐฐ์น๋ง๋ค ๊ธธ์ด๊ฐ ๋ค๋ฆ ๋๋ค.
์ํ 1: "๋๋ ๋ฐฅ์ ๋จน์๋ค" (๊ธธ์ด 4)
์ํ 2: "์ค๋" (๊ธธ์ด 1)
์ํ 3: "์ด์ ๋น๊ฐ ์์ ์ฐ์ฐ์ ์ผ๋ค" (๊ธธ์ด 6)
์ด๊ฒ์ BN ์ ํ์ฉํ Layer output ์ ์ฌ์ฉํ๋ค๋ฉด ์ํ2 ์ 2,3 ์ํ1์ 3,4 ๊ฐ 0์ด ๋ฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ์ ์๋ฏธ๋ฅผ ์ถฉ๋ถํ ๋ฐ์ํ์ง ๋ชปํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด ๋ฌธ์ ๋ ์๊ณ์ด ๋ฐ์ดํฐ์๋ ๊ทธ๋๋ก ์ ์ฉ๋ฉ๋๋ค. ์ด๋ฏธ์ง๋ ์ฑ์ ํต๊ณ(๊ตญ์ด๋ ๊ตญ์ด๋ผ๋ฆฌ, ์ํ์ ์ํ๋ผ๋ฆฌ) ์ ๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์๋๋ผ ํผ์ณํ๋๊ฐ ๋ค๋ฅธ ํผ์ณ๋ ๋ฐ์ดํฐ์๋ ์ํฅ์ ์ฃผ๋๊ฒฝ์ฐ๋ Batch ์ฌ์ด์ฆ์ ์ํฅ์ ๋ฐ์ง ์๊ณ ๋ฐ์ดํฐ์ ์๋ฏธ๋ฅผ ์ ๋ฐ์ํ ์ ์๋ LN ์ด ์ฑ๋ฅ์ด ์ข๋ค๊ณ ์ฃผ์ฅํฉ๋๋ค.

BN ๊ณผ์ ์ฐจ์ด์
Batch Normalization์ ๋ฏธ๋๋ฐฐ์น ๋จ์๋ก ํ๊ท ๊ณผ ๋ถ์ฐ์ ๊ณ์ฐํ์ฌ ์ ๊ทํ๋ฅผ ์ํํฉ๋๋ค. ๋ฐ๋ฉด **Layer Normalization(LN)**์ ์ด๋ฆ ๊ทธ๋๋ก ๋ ์ด์ด ๋จ์, ์ ํํ๋ ํ๋์ ์ํ ๋ด๋ถ feature๋ค์ ๋ํด์๋ง ์ ๊ทํ๋ฅผ ์ํํฉ๋๋ค. ์ฆ, ์ ๊ทํ์ ๊ธฐ์ค์ด ์์ ํ ๋ค๋ฆ ๋๋ค.
- Batch Normalization
- ํ๊ท , ๋ถ์ฐ ๊ณ์ฐ ์ถ: batch ๋ฐฉํฅ
- ๊ฐ์ feature๋ฅผ ๊ฐ์ง ์ฌ๋ฌ ์ํ์ ํจ๊ป ์ฌ์ฉ
- Layer Normalization
- ํ๊ท , ๋ถ์ฐ ๊ณ์ฐ ์ถ: feature ๋ฐฉํฅ
- ํ๋์ ์ํ ์์์๋ง ๊ณ์ฐ
ํ๋์ ์ํ x = [xโ, xโ, ..., xโ]์ ๋ํด:
$$ \mu = \frac{1}{d} \sum_{i=1}^{d} x_i $$
$$ \sigma^2 = \frac{1}{d} \sum_{i=1}^{d} (x_i - \mu)^2 $$
$$ \hat{x}_i = \frac{x_i - \mu}{\sqrt{\sigma^2 + \epsilon}} $$
๊ทธ๋ฆฌ๊ณ Batch Normalization๊ณผ ๋์ผํ๊ฒ scale, shift ํ๋ผ๋ฏธํฐ๋ฅผ ์ ์ฉํฉ๋๋ค:
$$ y_i = \gamma_i \hat{x}_i + \beta_i $$
์ฌ๊ธฐ์ ์ค์ํ ์ ์ γ, β๋ feature ์ฐจ์์ ๋ํด์๋ง ์กด์ฌํ๋ฉฐ batch ํฌ๊ธฐ์ ๋ฌด๊ดํ๋ค๋ ๊ฒ์ ๋๋ค.
์์ ์์๋๋ก ๊ฐ์ ์ํ์ ๊ฐ์ง๊ณ ๋ ์ด์ด๋ฅผ ํต๊ณผํ๋ ์ฐ์ฐ์ ์ํํด๋ณด๊ฒ ์ต๋๋ค.
Layer Normalization Data Flow
์ ๋ ฅ ๋ฐ์ดํฐ (X)
$$ X = \begin{bmatrix} [1,\ 2] \\ [2,\ 4] \\ [3,\ 6] \end{bmatrix} $$
shape: (3, 2)
→ ์ํ 3๊ฐ, ๊ฐ ์ํ์ 2์ฐจ์ ๋ฒกํฐ
Linear Layer ํต๊ณผ
๊ฐ์ค์น์ bias๋ ์ด์ ๊ณผ ๋์ผํ๊ฒ ์ค์ ํฉ๋๋ค.
$$ Z = X $$
Layer Normalization ์ ์ฉ
Layer Normalization์ ๊ฐ ์ํ๋ง๋ค ๋ ๋ฆฝ์ ์ผ๋ก ํ๊ท ๊ณผ ๋ถ์ฐ์ ๊ณ์ฐํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ์ํ [1, 2]
$$ \mu = (1 + 2) / 2 = 1.5 $$
$$ \sigma^2 = ((1 - 1.5)^2 + (2 - 1.5)^2) / 2 = 0.25 $$
์ ๊ทํ ๊ฒฐ๊ณผ:
$$ [1, 2] \rightarrow [-1, 1] $$
๋ ๋ฒ์งธ ์ํ [2, 4]
$$ \mu = 3,\quad \sigma^2 = 1 $$
์ ๊ทํ ๊ฒฐ๊ณผ:
$$ [2, 4] \rightarrow [-1, 1] $$
์ธ ๋ฒ์งธ ์ํ [3, 6]
$$ \mu = 4.5,\quad \sigma^2 = 2.25 $$
์ ๊ทํ ๊ฒฐ๊ณผ:
$$ [3, 6] \rightarrow [-1, 1] $$
Layer Normalization ๊ฒฐ๊ณผ
X_hat =
[
[-1, 1],
[-1, 1],
[-1, 1]
]
Transformer ๊ตฌ์กฐ์์ Layer Normalization ์ด Batch Normalization ๋ณด๋ค ์ ํฉํ ์ด์
1. ์ํ์ค ๊ธธ์ด ๊ฐ๋ณ์ฑ๊ณผ Masking ๋ฌธ์
Transformer์ Self-Attention์ ๊ฐ๋ณ ๊ธธ์ด ์ํ์ค๋ฅผ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ์ ๋ ฅํํ๋ ๊ฐ ๋ฌธ์ฅ๋ง๋ค ๊ธธ์ด๊ฐ ๋ค๋ฅด๋ค๋ ์ ์ ๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์งง์ ๋ฌธ์ฅ์๋ padding์ ์ถ๊ฐํ attention mask๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
Batch Normalization์ ์ด๋ฌํ ๊ตฌ์กฐ์ ์ ์ฉํ๋ฉด ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. BN์ ๋ฐฐ์น์ ์ํ์ค ์ฐจ์ ์ ์ฒด์ ๊ฑธ์ณ ํ๊ท ๊ณผ ๋ถ์ฐ์ ๊ณ์ฐํ๋๋ฐ ์์์ ๋ดค๋ ๊ฒ ์ฒ๋ผ ์๋ฏธ ์๋ padding ํ ํฐ์ 0 ๋ฒกํฐ๊ฐ ํต๊ณ์ ํฌํจ๋ฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ฌธ์ฅ ๊ธธ์ด์ ๋ฐ๋ผ ์ ๊ทํ ํต๊ณ๊ฐ ์๊ณก๋๊ณ , ๊ฐ์ ๋ด์ฉ์ ๋ฌธ์ฅ์ด๋ผ๋ padding์ ์์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ ๊ทํ๋ ์ ์์ต๋๋ค.

๋ฐ๋ฉด Layer Normalization์ ๊ฐ ํ ํฐ์ feature ์ฐจ์์ ๋ํด์๋ง ์ ๊ทํ๋ฅผ ์ํํฉ๋๋ค. ์ฆ, ํ๋์ ํ ํฐ ๋ด๋ถ์์๋ง ํ๊ท ๊ณผ ๋ถ์ฐ์ ๊ณ์ฐํ๊ธฐ ๋๋ฌธ์ padding ํ ํฐ์ด๋ ์ํ์ค ๊ธธ์ด๊ฐ ์ ๊ทํ ํต๊ณ์ ์ ํ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค. ๊ฐ ํ ํฐ์ ๋ ๋ฆฝ์ ์ผ๋ก ์ ๊ทํ๋๋ฏ๋ก ๋ฐ์ดํฐ์ ์๋ฏธ๊ฐ ์ถฉ์คํ ๋ฐ์๋๊ณ ๋ฐฐ์น๋ ์ํ์ค ๊ตฌ์กฐ์ ๋ฌด๊ดํ๊ฒ ์ผ๊ด๋ ์ ๊ทํ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
2. Autoregressive Decoding๊ณผ ๋ฐฐ์น ํฌ๊ธฐ ๋ถ์ผ์น
Transformer Decoder๋ ์ถ๋ก ์ ๋ฏธ๋์ ์ ๋ณด๋ฅผ ์ฐธ์กฐํ์ง ๋ชปํ๋๋ก autoregressive ๋ฐฉ์์ผ๋ก ๋์ํฉ๋๋ค. ์ฆ, ์ด์ ์ ์์ฑํ ํ ํฐ์ ๋ฐํ์ผ๋ก ๋ค์ ํ ํฐ์ ํ๋์ฉ ์์ฐจ์ ์ผ๋ก ์์ฑํฉ๋๋ค. ์ด ๊ณผ์ ์์ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋ฐฐ์น ํฌ๊ธฐ๊ฐ 1์ด ๋ฉ๋๋ค. ์ด๋ Layer Normalization ๋ ผ๋ฌธ์์ ๋ณด์ฌ์ค๊ฒ์ฒ๋ผ Batch Normalization์ ์น๋ช ์ ์ธ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํฉ๋๋ค.
Layer Normalization์ ๋ฐฐ์น ํฌ๊ธฐ์ ๋ฌด๊ดํ๊ฒ ์์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. ๋ฐฐ์น ํฌ๊ธฐ๊ฐ 1์ด๋ 32๋ ์ ๊ทํ ๊ฒฐ๊ณผ๋ ์ผ๊ด๋๋ฉฐ, ํ์ต ์ ๊ด์ฐฐํ ์ฑ๋ฅ์ด ์ถ๋ก ์์๋ ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค. ์ด๋ Transformer Decoder์ ์์ฑ ํ์ง์ ๊ฒฐ์ ์ ์ผ๋ก ์ค์ํ ํน์ฑ์ ๋๋ค.
3. Residual Connection๊ณผ์ ๊ตฌ์กฐ์ ๋ถ์ผ์น
Transformer์ ๊ฐ ๋ธ๋ก์ residual connection์ ์ฌ์ฉํฉ๋๋ค: y = x + Sublayer(LN(x)). ์ด ๊ตฌ์กฐ๊ฐ ์ค์ํ ์ด์ ๋ gradient์ ํ๋ฆ ๋๋ฌธ์ ๋๋ค. ์ญ์ ํ ์ ∂y/∂x = 1 + ∂Sublayer/∂x ๊ฐ ๋์ด, gradient๊ฐ ํญ์ ์ง์ ํ๋ฅผ ์ ์๋ ๊ฒฝ๋ก(identity mapping)๊ฐ ๋ณด์ฅ๋ฉ๋๋ค. ์ด๋ ๊น์ ๋คํธ์ํฌ์์ gradient vanishing ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ํต์ฌ ๋ฉ์ปค๋์ฆ์ ๋๋ค.
๋ง์ฝ Batch Normalization์ residual path์ ์ฌ์ฉํ๋ฉด, BN์ ์ถ๋ ฅ์ด ๋ฐฐ์น ํต๊ณ์ ์์กดํ๊ธฐ ๋๋ฌธ์ residual path์ batch-dependent noise๊ฐ ์ฃผ์ ๋ฉ๋๋ค. ์ด๋ gradient flow๋ฅผ ๋ถ์์ ํ๊ฒ ๋ง๋ค๊ณ , ํนํ ๊น์ Transformer์์๋ gradient ํญ๋ฐ์ด๋ ์์ค์ ์ผ์ผํฌ ์ ์์ต๋๋ค. ์ค์ ๋ก Post-LN Transformer(residual ํ์ LN์ ์ ์ฉ)๋ ๋ ์ด์ด๊ฐ ๊น์ด์ง์๋ก ํ์ต์ด ๋ถ์์ ํด์ง๋ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์์ผ๋ฉฐ, Pre-LN Transformer(residual ์ ์ LN์ ์ ์ฉ)๊ฐ ๋ ์์ ์ ์ธ ํ์ต์ ๋ณด์ ๋๋ค. BN์ ์ด๋ฌํ residual connection์ ํน์ฑ๊ณผ ๊ทผ๋ณธ์ ์ผ๋ก ์ถฉ๋ํฉ๋๋ค.
Layer Normalization์ ๊ฐ ์ํ์ ๋ ๋ฆฝ์ ์ผ๋ก ์ ๊ทํํ๊ธฐ ๋๋ฌธ์ ๋ฐฐ์น์ ์์กดํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ residual path์ gradient flow๋ฅผ ๋ฐฉํดํ์ง ์์ผ๋ฉฐ, ์์ญ ๊ฐ์ ๋ ์ด์ด๋ก ์ด๋ฃจ์ด์ง ๊น์ Transformer์์๋ ์์ ์ ์ธ ํ์ต์ด ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ฌํ ๊ตฌ์กฐ์ ์กฐํ๊ฐ Transformer๊ฐ Layer Normalization์ ์ฌ์ฉํ๋ ๋ ๋ค๋ฅธ ์ค์ํ ์ด์ ์ ๋๋ค.
'Dev,AI > Machine Learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Seq2Seq (4) | 2024.01.28 |
|---|
