티스토리 뷰

728x90

 

배치 정규화는 왜 효과가 있는 것일까?

 

입력값 $x_1, x_2, x_3$을 받아 레이어를 통과 시켜 추정치 $\hat y$을 얻습니다. 여기서 큰 데이터일 경우, 배치 사이즈를 정해 mini-batch만큼 학습을 시키게 되는데, 이렇게 들어오는 입력값에 따라 데이터의 분포가 바뀔 가능성이 있습니다. 이를 covariate shift라 합니다.

 

따라서 미니 배치 사이즈 단위로 정규화를 해주면, 입력값이 바뀌어서 발생하는 문제를 안정화 시키고, 분포가 바뀌더라도 평균과 분산이 0과 1로 맞춰지니 조금씩 바뀌게 됩니다.

 

즉, 앞쪽 레이어에서 계속 학습하며 값이 바뀌더라도 뒤쪽 레이어에서 겪는 부담이 줄어듭니다.

 

중요한 것은 결국 좋은 추정치를 얻기 위한 매개변수를 학습하여 얻는 것인데, 앞과 뒤에서 발생하는 매개변수 간의 관계를 약화 시킵니다. 다음 층에서 학습하게 될 값의 분포를 제한해서, 일정한 분포를 갖고 각 층이 스스로 학습하게 된다고 합니다.

 

 

미니 배치마다 평균과 분산을 계산하기 때문에 여기서 평균과 표준편차의 추정치에도 잡음이 발생합니다.

 

드롭아웃의 경우도 비슷한데, 각 히든 레이어의 활성화에 노이즈가 추가 됩니다. 은닉층에 잡음을 추가하는 것은 이후의 은닉층이 하나의 은닉층에 너무 의존하지 않도록 합니다.  따라서 드롭아웃처럼 은닉층에 잡음을 추가해서 아주 약간의 일반화 효과를 보여줍니다.

 

잡음이 아주 작다보니 일반화 효과가 그리 크지는 않습니다. 그래서 배치 정규화와 드롭아웃을 함께 사용할 수 있습니다.

 

미니 배치 사이즈가 더 클수록 잡음이 줄어들고, 일반화 효과도 줄어듭니다. 이는 드롭아웃의 이상한 특징이기도 합니다.

 

배치 정규화를 일반화 목적으로 만들어진 것이 아니라서 해당 목적으로 사용하지는 않습니다. 하지만 의도하지 않거나 의도한 것보다 더 큰 효과를 학습 알고리즘에 가져올 수 있습니다. 배치 정규화는 은닉층의 활성 함수를 정규화해서 학습 속도를 올리는 용도로 사용됩니다.

 

배치정규화는 훈련 과정에서 한 번에 미니배치 하나의 데이터를 다뤘고, 미니배치의 평균과 분산을 계산했습니다. 

 

테스트 과정에서는 예측을 해서 신경망을 평가합니다. 예시의 미니 배치가 없기 때문에 한 번에 예시 하나씩 처리하게 됩니다.

 

또한, 이론적으로는 훈련 세트를 이용해 최종적으로 학습한 신경망의 평균과 표준편차를 얻을 수 있지만, 실제로는 지수가중평균을 사용합니다. 평균과 표준편차가 학습하면서 가진 값을 추적하게 됩니다.

728x90
댓글