학습속도 개선 이유
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 |