이번 글에서는 딥러닝에서 많이 활용되는 대표적인 성능 개선 기법인
배치 정규화와 레이어 정규화에 대해서 정의와 장단점을 비교해보도록 하겠습니다.
먼저, batch size = 3인 빨강, 파랑, 초록 데이터가 아래와 같이
A, B, C, D라는 4개의 feature의 값들로 구성되어 있는 상황을 가정해보도록 하겠습니다.
Batch Normalization
정의
배치 정규화는 각 feature에 대하여 mini-batch 내의 평균, 분산을 구해서
정규화를 진행해주는 방법입니다. 위 그림의 데이터에 적용한 예시는 다음과 같습니다.
각 feature에 대한 평균과 분산 값들을 이용하여 기존 값 x를 새로운 값 y로 정규화를 해줍니다.
(각 layer를 통과한 값마다 적용이 가능합니다.)
(ε은 분산이 0이라서 분모가 0인 경우를 방지하기 위해서 매우 작은 값을 더해주는 상수이며,
β와 γ는 각 feature에 대하여 다른 매핑을 적용하기 위해서 선택적으로 사용하는
learnable parameter들입니다.)
장단점
배치 정규화는 각 layer를 통과한 값들의 스케일을 맞추어주어
Vanishing Gradient 문제를 어느 정도 해결해줄 수 있으며,
큰 learning rate를 적용할 수 있게 하여 학습 속도 개선 등의 효과가 있습니다.
반면, batch size에 의존적인 면이 크며(batch size = 1인 경우는 분산이 항상 0이라
사실상 적용이 불가능합니다.),
RNN 등 Recurrent 기반 모델에서는 사용이 어렵습니다.
(각 step마다 batch 내에서 정규화가 이루어지면서 recurrent part의 통계치가 계속 바뀌는데,
input은 원래의 통계치를 따르던 값이 들어오기 때문입니다.)
또한, test 단계에서 inference 시에는 train 과정에서의 평균 / 분산을 저장하여
이 값을 대신해서 사용해주어야 한다는 특징도 있습니다.
Layer Normalization
정의
반면에 레이어 정규화는 미니 배치의 각 데이터 내에서 feature 값들의 평균 / 분산을
구하여 이를 기준으로 정규화하는 방법입니다.
단, 평균, 분산을 구한 뒤에 정규화를 진행하는 수식은 배치 정규화와 거의 비슷합니다.
장단점
우선, 배치 정규화와 달리 batch size에 대한 영향을 거의 받지 않는 것이 큰 장점입니다.
또한, RNN 등 Recurrent 기반 모델에도 적용이 수월해집니다.
(recurrent part를 고려한 정규화가 진행되기에 input과 통계치를 제대로 반영할 수 있습니다.)
다만, CNN 등 모델 구조에서는 배치 정규화에 비하여 성능이 다소 떨어질 수 있는 등의
결과가 있다는 것이 단점입니다.
'컴퓨터공학 > Machine Learning' 카테고리의 다른 글
머신러닝 분류 알고리즘 종류별 장단점 정리 (0) | 2022.11.04 |
---|---|
파이썬 EM 알고리즘 구현 예제(Gaussian Mixture Model) (0) | 2022.06.09 |
Teacher Forcing이란? / Exposure Bias란? (0) | 2022.06.01 |