Introduction
- Deep learning์์๋ ๊ฐ ๋ ์ด์ด์ input์ ๋ถํฌ๊ฐ ๊ณ์ํด์ ๋ณํํฉ๋๋ค.
- ์ด๋ ๋คํธ์ํฌ์ ํ์ต์ ์ด๋ ค์์ ๊ฐ์ ธ์ต๋๋ค.
- ๋
ผ๋ฌธ์์๋ Batch๋จ์์ input์
normalization
,shifting
,scailing
,ํ์ฌ ๋ถํฌ๋ฅผ ์ด๋์ ๋ ์ผ์ ํ๊ฒ ์ ์ง์ํฌ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค.
- ์ด๋ฅผ ๋น์์ sota๋ชจ๋ธ์ ์ ์ฉํ๋๋ ๋์ผํ ์ ํ๋๋ฅผ 14๋ฐฐ ์ ์ training step์ผ๋ก๋ถํฐ ์ป์ ์ ์์์ผ๋ฉฐ ์๋นํ ๊ฒฉ์น๋ฅผ ๋๊ณ ์๋๋ชจ๋ธ์ ๋ฅ๊ฐํ์ต๋๋ค.
- ๋ํ ๋์ผํ ๋ฐฉ๋ฒ์ ์ ์ฉํ ์์๋ธ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ImageNet classification์์ ๊ฐ์ฅ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ผ ์ ์์์ต๋๋ค.(4.9% top5 validation error,4.8% test error)
Problem setting
- Deep Neural Network๋ ํ์ตํ๋ ๋์ค์ ํ๋ผ๋ฏธํฐ๊ฐ ๊ณ์ํด์ ๋ณํํฉ๋๋ค.
- ๋ํ ์ฌ๋ฌ๊ฐ์ minibatch๊ฐ input์ด ๋๋๋ฐ ๊ฐ๊ฐ์ minibatch๊ฐ ์ด๋ฃจ๋ ๋ฐ์ดํฐ์ ๋ถํฌ๋ ๋ค๋ฆ
๋๋ค..
internal covariate shift - ์ถ์ฒ : ๋๋น๋
- ์ด๋ก์ธํด์ ๊ฐ๊ฐ์ hidden layer์ ์
๋ ฅ๋๋ input data์ ๋ถํฌ๊ฐ ํ์ต๋จ๊ณ์์ ์คํ
๋ง๋ค ๋ณํํ๋
internal covariate shift
๊ฐ ๋ํ๋ฉ๋๋ค.(์ค์ ๋ก ํ๋ ๋ ์ด์ด์ output์ ๋ค์ฐจ์์ด์ง๋ง ๋น์ ์ ์ผ๋ก 1์ฐจ์์ผ๋ก ํํํ ๊ทธ๋ฆผ์.)
- ํนํ ์ด ํ์์ Deep nueral network์ ํน์ฑ์ ๊น์ด ์์นํ hidden layer์ผ์๋ก ์ฌํ๊ฒ ๋ํ๋ฉ๋๋ค.
- ์ด๋ ๊น์ด ์์นํ hidden layer์ผ์๋ก ํ๋ผ๋ฏธํฐ ์ฐ์ฐ์ด ์ฌ๋ฌ๋ฒ ๋ฐ๋ณต๋์ด ๋ ์ฌํ ๋ณํ๋ฅผ ๋ง๋ค๊ธฐ ๋๋ฌธ์
๋๋ค.
- ์ด๋ ๋ค์๊ณผ ๊ฐ์ ๋ ๊ฐ์ง์ ๋ฌธ์ ์ ์ ์ผ์ผํต๋๋ค.
ํ์ตparameter
์ converge
๊ฐ ์ด๋ ต์ต๋๋ค.
- input์ ๋ถํฌ๊ฐ ์ ๋นํ ๊ณ ์ ๋๋ค๋ฉด ๊ทธ์ ๋ง๋ ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ตํ์ฌ ์ ๋นํ ๊ฐ์ผ๋ก ์๋ ดํ ๊ฒ์
๋๋ค.
- ๊ทธ๋ฌ๋ internal covariance shift๊ฐ ์ผ์ด๋๋ค๋ฉด ๊ณ์ํด์ ์๋ก์ด ๋ถํฌ์ ๋ํด ๋ค์ ํ์ตํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์๋ ด์ด ์ด๋ ต์ต๋๋ค.
- ๋น์ ํ์๋ฉด,๋ง์น training set๊ณผ test set์ ๋ถํฌ๊ฐ ๊ฐ์ผ๋ฉด ํ์ต์ด ์๋๊ณ ์๋๋ฉด ํ์ต์ด ์๋๋ ๊ฒ๊ณผ ์ ์ฌํฉ๋๋ค.(์ ๋ ์ ์๋ฟ์ง๋ ์์ต๋๋ค.)
Gradient exploding
๋๋ Gradient vanishing
์ด ๋ฐ์ํ ์ ์์ต๋๋ค..
- ๋ถํฌ์ ๋ณํ๋ก ์ธํด ์ด๋ค hidden layer์์ ์๊ทธ๋ชจ์ด๋์ input์ด ๋๋ฌด ํฌ๋ค๋ฉด ๊ธฐ์ธ๊ธฐ๊ฐ ๊ฑฐ์ ์์ผ๋ฉฐ ๋ฏธ๋ถ๊ณ์๊ฐ 0์ ๊ฐ๊น๊ธฐ์ ํ๋ผ๋ฏธํฐ์ ์
๋ฐ์ดํธ๊ฐ ์ผ์ด๋์ง ์์ต๋๋ค.
Code
import matplotlib.pyplot as plt
import torch
plt.figure(figsize=(10,5))
sig = torch.nn.Sigmoid()
x = torch.linspace(-20,20,50)
z = sig(x)
point_x = torch.tensor(10)
point_z = sig(point_x)
plt.plot(x,z)
plt.scatter(point_x,point_z,s=80,color = "red")
plt.axvline(point_x,color="black",linestyle="--")
<matplotlib.lines.Line2D at 0x1f70973fac0>
- ์์ ๊ฐ์ ๋ฌธ์ ์ ์ฆ,
internal covariance shift
๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํฌ๊ฒ ๋ค์๊ณผ ๊ฐ์ ํฌ๊ฒ 2๊ฐ์ง์ ๋ฐฉ๋ฒ์ด ์๋๋์ด์์ต๋๋ค.
- lower learning rate๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์ฐ๊ตฌ๋์ด ์์ต๋๋ค.
- careful parameter initialization.(HE,Xavior)
- ๊ทธ๋ฌ๋ ๊ฐ๊ฐ์ ๋ฐฉ๋ฒ๋ค์ ๋จ์ ์ด ์์ต๋๋ค.(ํ์ต์๊ฐ์ ์์น,์ด๊ธฐํ์ ์ด๋ ค์)
- ํด๋น ๋
ผ๋ฌธ์์๋ internal covariate shift๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฐ๊ฐ์ ๋ ์ด์ด์์ Batch๋จ์๋ก Normalization์ ์ํํฉ๋๋ค.
Method
Intuition
BatchNormalization - ์ถ์ฒ : JINSOL KIM
- ์ง๊ด์ ์ผ๋ก
internal covariate shift
๋ฅผ ๋ง๊ธฐ ์ํด ๋ถํฌ๊ฐ ๊ณ ์ ๋๊ฒ ํ๋ ค๋ฉด ์์ ๊ฐ์ด ๊ฐ ํ๋ ๋ ์ด์ด์ output์ normalization์ ์ทจํ ์ ์์ต๋๋ค. ์ด๋ ๋
ผ๋ฌธ์ ์๊ณ ๋ฆฌ์ฆ์์ ์ค๋ช
ํ๋ ๋ฐฉ๋ฒ์
๋๋ค.
- ๊ทธ๋ฌ๋ ์ฐพ์๋ณธ ํํ Fully connected-layer์ activation function์ฌ์ด์ batchnormalization layer๋ฅผ ๋์ต๋๋ค. ์ด๋ ๋
ผ๋ฌธ์ ์คํ์์ ์ฌ์ฉํ ๋ฐฉ๋ฒ์
๋๋ค.
- ์ ๋ฆฌํ์๋ฉด normalization์ ์ ์ฉํ๋ ์์น๋ ๋ฌธ์ ๋ง๋ค ๋ค๋ฅด์ง๋ง ํํ๋ค ์์ ๊ฐ์ด Fully connected layer์ activation function์ฌ์ด์ ๋๋๊ฒ ์ผ๋ฐ์ ์ด๋ฉฐ ์ด๋ ๋น๊ต์ ์์ ๋ก์ด ํธ์ด๋ผ ํ ์ ์์ต๋๋ค.
- ์์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก normalization๋ง ์ทจํ๊ฒ ๋๋ค๋ฉด ๋คํธ์ํฌ์ ํํ๋ ฅ์ ๊ฐ์์ํฌ ์ ์์ต๋๋ค. ์๊ทธ๋ชจ์ด๋์ linear regime์ ๊ฐ๋ค์ด ๋๋ค์ ์์นํ๊ธฐ ๋๋ฌธ์
๋๋ค.(๋ด๋ด๋ท์ ์ ํ+๋น์ ํ ๋ณํ์ ํตํด์ ๋์ ํํ๋ ฅ์ ์ง๋๋๋ค.๋จ์ํ normalization๋ง ์ทจํ๋ฉด ๋น์ ํํจ์์ ์ญํ ์ด ๊ฐ์ํ๊ฒ ๋ฉ๋๋ค.)
- ๋ฐ๋ผ์ normalization๋ ๊ฐ์ ์ ์ ํ๊ฒ
shifting
,scailing
ํ๋๋ก ๊ฐ ๋ด๋ฐ์ ๋ถ๋ learnable parameter
\(\gamma,\beta\)๋ฅผ ์ถ๊ฐํฉ๋๋ค.
์ ๋ฆฌํ์๋ฉด BatchNormalization์ Batch๋จ์๋ก normalization
์ ํตํด internal covariate shift
๋ฅผ ๋ง๊ณ ๋์์ learnable parameter
๋ก shifting
,scailing
ํจ์ผ๋ก์ nonlinearity๋ฅผ ์ ์งํ์ฌ gradient vanishing(exploding),ํ์ต์ ์ด๋ ค์,ํํ๋ ฅ์ ๊ฐ์์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค๊ณ ํ ์ ์์ต๋๋ค.
Implementation
Training
notation
- ๋
ผ๋ฌธ์ ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ถ์์๋ Batchnormalization์ activation function๋ฐ๋ก ๋ค์์ ์์นํ๋ ๊ฒ์ ๊ธฐ์ค์ผ๋ก ์ค๋ช
ํฉ๋๋ค.
- \(\mathcal{B} = \{x_{1...m}\}\)๋ ํฌ๊ธฐ๊ฐ m์ธ batch๋ฅผ ์
๋ ฅํ์๋ ์์์ ๋
ธ๋์์ ์ถ๋ ฅ๋ m๊ฐ์ scalar๊ฐ์ด๋ค.(activation function์ ํต๊ณผํ ํ์ด๋ค.)m๊ฐ์ output์
๋๋ค.
- \(\mu_{\mathcal{B}}\),\(\sigma^2_{\mathcal{B}}\)๋ ๊ฐ๊ฐ \(\mathcal{B}\)์ ํ๊ท ,๋ถ์ฐ์ ์๋ฏธํฉ๋๋ค.
- \(\hat{x_i}\)๋ \(\mathcal{B}\)์ ์ํ๋ ์์์ ์์ \(x_i\)์
normalization
ํ ๊ฐ์
๋๋ค.
- ์ฌ๊ธฐ์ \(\epsilon\)์ ๋งค์ฐ์์ ๊ฐ์ ์๋ฏธํ๋ฉฐ ๋ถ์ฐ์ด 0์ผ๋์ ์ฐ์ฐ์ด ๋ถ์์ ํด์ง๋ ๊ฒ์ ๋ง์ต๋๋ค.
- \(y_i\)๋
learnable parameter
์ธ \(\gamma,\beta\)์ ๋ํ ๊ฐ์ด๋ฉฐ \(\text{BN}_{\gamma,\beta}(x_i)\)๋ฅผ ๊ณ์ฐํ ๊ฒฐ๊ณผ์
๋๋ค.
explanation - ๋จผ์ ํฌํค๊ฐm์ธ batch์ ๋ํด์ ์ด๋ค ๋
ธ๋์์ m๊ฐ์ ์ค์นผ๋ผ๊ฐ์ธ \(\mathcal{B}\)๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค. - \(\mathcal{B}\)์ ํ๊ท ,๋ถ์ฐ์ ๊ณ์ฐํฉ๋๋ค. - \(\forall x_i \in \mathcal{B}\)์ ๋ํ์ฌ normalization์ ์ทจํ๊ณ learnable parameter์ธ \(\gamma,\beta\)๋ฅผ ๊ณฑํฉ๋๋ค.
ํ์ต๋ \(\gamma\),\(\beta\)์ ์์
Normalization์ฐ์ฐ์ด ํ์์๋ค๊ณ ํ์ตํ ๊ฒฝ์ฐ,nonlinearity๋ฅผ ์ ์งํ๋ ๊ฒ์ด ์ข์ ๊ฒฝ์ฐ,identity๋ฅผ ์ ์งํ๋๊ฒ ์ข์ ๊ฒฝ์ฐ
\[\gamma \approx \sqrt{var[x]},\beta \approx \mathbb{E}[x] \rightarrow \hat{x_i}\approx x_i \] Normalization์ฐ์ฐ์ด ํ์ํ๋ค๊ณ ํ์ตํ ๊ฒฝ์ฐ,linearity๋ฅผ ๊ฐ์ง๋ ๊ฒ์ด ๊ฒฝ์ฐ,identity๋ฅผ ๋ฒ๋ฆฌ๋๊ฒ ์ข์ ๊ฒฝ์ฐ
\[\gamma \approx 1,\beta \approx 0 \rightarrow \hat{x_i} \approx \frac{x_i-\mu_\mathcal{B}}{\sqrt{\sigma_\mathcal{B}^2-\epsilon}}\]
Test or Inference
- training์์๋ minibatch๋จ์๋ก ํ๊ท ,๋ถ์ฐ์ ๊ตฌํ์ฌ normalizationํ ์ ์์ง๋ง test์์๋ ์ด์๋ ๋ค๋ฅด๊ฒ minibatch๋จ์๋ก data๊ฐ ์
๋ ฅ๋์ง ์์๋ฟ๋๋ฌ ๋ํ ์
๋ ฅ๋๋ ๋ฐ์ดํฐ๊ฐ ํ๊ฐ์ฌ๋ ์ฌ๋ฐ๋ฅด๊ฒ ์์ธกํด์ผ ์ํฉ๋๋ค.
- ๋ฐ๋ผ์ ์ด๋์๋ training์์ ๊ฐ๊ฐ์ ๋ฐฐ์น๋ค๋ก๋ถํฐ ์ป์ ํ๊ท ๋ค๊ณผ ๋ถ์ฐ๋ค์ ์ ์ฅํด๋๊ณ test์์๋ ์ด ๊ฐ๋ค๋ก ๋ค์ ํ๊ท ์ ์ทจํ์ฌ(ํ๊ท ๋ค์ ํ๊ท ) normalization์ ์ทจํฉ๋๋ค.
- ์ด๋ ๋จ์ํ ํ๊ท ์ ์ทจํ๋ ๊ฒ์ด ์๋๋ผ ์ด๋์ ๋ ํ์ต๋ ๋คํธ์ํฌ์์ ์ป์ด์ง minibatch๋ค์ ๋ฐ์ดํฐ๋ฅผ ๋ ๋ง์ด ๊ณ ๋ คํ๊ธฐ ์ํด์
movingaverage
๋ exponentialaverage
๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- movingaverage๋ ํ์ต๋จ๊ณ์์ ์ป์ด์ง ๊ฐ(ํ๊ท ,๋ถ์ฐ)์ ์ผ๋ถ๋ฅผ ์ง์ ์ง์ ํ์ฌ ํ๊ท ์ ๊ตฌํ๊ณ exponentialaverage๋ ์ด๋์ ๋ ์์ ๋ ์ํ์ ๊ฐ(๋์ค๊ฐ)๋ค์ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํ์ฌ ํ๊ท ,๋ถ์ฐ์ ๊ตฌํ๋ ๋ฐฉ๋ฒ์
๋๋ค.
\[\begin{aligned}
&\hat{x} = \frac{x - \mathbb{E}[x]}{\text{Var}[x] + \epsilon}\\
&y = \frac{\gamma}{\sqrt{\text{var}[x] + \epsilon}}\cdot x + (\beta - \frac{\gamma\mathbb{E}[x]}{\sqrt{\text{Var}[x] + \epsilon}})\\
&\text{where }E[x] = E_\mathcal{B}[\mu_\mathcal{B}],\text{Var}[x] = \frac{m}{m-1}E_\mathcal{B}[\sigma_\mathcal{B}^2]
\end{aligned}\]
- \(\frac{m}{m-1}\)์ unbiased estimate๋ฅผ ์ํ์ฌ ๊ณฑํด์ง ๊ฐ์ด๋ฉฐ \(E_{\mathcal{B}}\)๋ moving average ๋๋ exponential average๋ฅผ ์๋ฏธํฉ๋๋ค.
- test์์์ normalization์ ๋จ์ํ linear transform์ผ๋ก ์ทจ๊ธํ ์ ์๋๋ฐ ์ด๋ training์ด ๋๋ ํ ์ฌ์ ์ ์ด ๊ฐ์ ๊ณ์ฐํ์ฌ ๋จ์ํ ๊ณฑํ๊ณ ๋ํ๋ ๊ฒ์ผ๋ก ๊ณ์ฐํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
Experiments
Figure5 - Mnist experiment
- (a)๋ BN์ ์ฌ์ฉํ ๋คํธ์ํฌ์ ์ฌ์ฉํ์ง ์์ ๋คํธ์ํฌ๋ฅผ ๋น๊ต, (b,c)๋ ๊ฐ ๋คํธ์ํฌ์ hiddenlayer์ sigmoid์ input 3๊ฐ๋ฅผ ๋น๊ตํ ๊ฒ
- ๋คํธ์ํฌ๋ ๊ฐ๊ฐ 100๊ฐ์ activation์ ๊ฐ์ง๋ฉฐ 3๊ฐ์ hiddenlayer๊ฐ ์กด์ฌ
- (a)๋ฅผ ๋ณด๋ฉดBN์ ์ฌ์ฉํ ๋คํธ์ํฌ๊ฐ ํจ์ฌ ๋น ๋ฅธ์๋๋ก ์๋ ดํ๊ณ ์์์ ์ ์ ์์
- (b,c)๋ฅผ ๋ณด๋ฉด BN์ ์ฌ์ฉํ ๋คํธ์ํฌ์์ ๊ฐ์ด ํจ์ฌ ์์ ์ ์์ ์ ์ ์์(
internal covariate shift
๊ฐ ์ ์)
- BN์ฌ์ฉํ ๋ชจ๋ธ์ด ์ข์๋ค~