Batch Normalization이 적용될 경우 학습속도가 개선이 되는 이유

머신러닝과 딥러닝 · 2019. 12. 19. 21:21

학습속도 개선 이유

 

batch normalization의 적용 이유는 학습 속도 가속화이다.

 

학습속도 가속화라는 것은 각 iteration, epoch 진행속도가 향상된다는 뜻이 아니라,

정해진 loss만큼 줄어들기 위해 필요한 epoch이나 iteration 횟수가 줄어든다는 걸 의미함.

 

batch normalization이 적용되지 않으면 각 layer로 들어가는 batch input들의 범위가 제각각이라

layer parameter들이 수렴하는데 오랜 시간이 걸리게 된다.

 

이때 각 layer로 batch input이 들어가기전에 각 input들을 먼저 가로챈 다음 batch의 평균 및 분산으로 정규화를 적용하게 되면 각 input들의 value들이 좁은 범위에서 움직이기 때문에 각 layer의 parameter들이 들쑥날쑥 하지 않게 된다.

 

Normalization (정규화)

 

$ \mu_{\beta} \leftarrow \frac {1}{m} \sum_{i=1}^{m} x_{i}  \,\,\,\,$  mean

 

$ \sigma_{\beta}^{2} \leftarrow \frac {1}{m} \sum_{i=1}^{m}(x_{i}-\mu_{\beta})^2 \,\,\,\,$  variance

 

$ \hat {x_{i}}  \leftarrow \frac { x_{i}-\mu_{\beta} } { \sqrt { \sigma_{\beta}^{2} + \epsilon} }  \,\,\,\, $  normalize

 

mini-batch에 해당하는 데이터 $ data = \{ x_{1}, x_{2}, x_{3}, ... , x_{m} \} $에 대해

평균  $\mu_{\beta}$, 분산 $\sigma_{\beta}^{2}$을 구하고, 평균이 0, 분산이 1이 되도록 normalize한다.

'머신러닝과 딥러닝' 카테고리의 다른 글

Doc2Vec 공간의 이해  (0) 2019.12.29
행렬식의 의미  (0) 2019.12.23
고유벡터와 고유값  (0) 2019.12.23
주성분 분석(PCA)  (0) 2019.12.16
선형회귀 (linear Regression) 이해하기  (0) 2019.12.11