배치 정규화 (Batch Normalization)

컴퓨터과학·AI
한 줄 정의: 학습 중 미니배치 단위로 각 층에 들어오는 값의 평균과 분산을 일정하게 맞춰주어(평균 0, 분산 1), 신경망 학습을 더 안정적이고 빠르게 만드는 기법입니다.

쉽게 풀면

여러 층으로 이루어진 공장 조립 라인을 생각해봅시다. 앞 공정에서 부품 크기가 자꾸 들쭉날쭉하게 나오면, 뒤 공정 담당자는 그때그때 기준을 다시 맞추느라 작업이 느려지고 불안정해집니다. 신경망도 비슷한 문제를 겪는데, 앞쪽 층의 가중치가 학습 도중 계속 바뀌면서 뒤쪽 층으로 들어가는 값의 분포도 계속 흔들립니다(이를 "내부 공변량 변화"라고 부르기도 합니다). 배치 정규화는 각 층에 들어가는 값을 매 미니배치마다 평균 0, 분산 1로 맞춰준 다음, 학습 가능한 스케일과 이동값을 다시 곱하고 더해 조정합니다. 그 결과 각 층이 항상 비슷한 범위의 입력을 받게 되어 학습이 더 빠르고 안정적으로 진행되며, 더 큰 학습률을 써도 잘 견딥니다.

왜 중요한가

딥러닝 논문에서 새로운 모델 구조를 제안할 때는 거의 항상 "이 구조가 잘 학습되는가"라는 질문이 따라붙는데, 배치 정규화는 이 질문에 대한 가장 널리 쓰이는 답 중 하나입니다. 층을 아주 깊게 쌓을수록 학습이 불안정해지거나 느려지는 문제가 커지는데, 배치 정규화를 넣으면 더 깊은 네트워크를 더 큰 학습률로 비교적 안정적으로 학습시킬 수 있어 이미지 인식, 음성 처리 등 다양한 분야의 모델 설계에서 기본 구성 요소처럼 다뤄집니다. 또한 학습 안정화 기법 자체가 하나의 연구 주제여서, 배치 정규화의 한계(작은 배치 크기, 순차 데이터 처리 등)를 보완하려는 후속 정규화 기법 연구들도 이 개념을 기준점으로 삼아 비교됩니다.

논문에서는 이렇게 쓰입니다

"각 합성곱 층 뒤에 배치 정규화(batch normalization)를 적용하여 학습 속도를 높이고 초기화에 대한 민감도를 낮췄다."

이 문장은 "층마다 입력값의 분포를 일정하게 맞춰주는 장치를 추가해서, 초기 가중치 설정이 조금 잘못되어도 학습이 잘 진행되고 더 빠르게 수렴하도록 했다"는 뜻입니다.

"완전연결 층과 활성화 함수 사이에 배치 정규화를 삽입함으로써 더 높은 학습률에서도 발산 없이 안정적으로 수렴함을 확인했다."

학습률을 크게 잡으면 학습이 튀거나 발산하기 쉬운데, 배치 정규화를 넣으면 각 층에 들어오는 값의 범위가 일정하게 유지되어 공격적인 학습률에서도 학습이 잘 굴러갔다는 의미입니다.

"베이스라인 모델에서 배치 정규화 층을 제거하는 절제 실험(ablation study)을 수행한 결과, 수렴 속도가 느려지고 최종 성능도 소폭 하락했다."

배치 정규화가 실제로 성능에 기여하는지 확인하기 위해 일부러 빼고 다시 학습시켜 비교했더니, 배치 정규화가 있을 때보다 학습이 더디고 결과도 나빠졌다는, 즉 배치 정규화의 효과를 검증하는 실험 결과를 설명하는 문장입니다.

조금 더 깊게 보면

배치 정규화는 학습(train)과 추론(inference) 단계에서 동작 방식이 다릅니다. 학습 중에는 매 미니배치의 평균과 분산을 그때그때 계산해 사용하지만, 실제 서비스에서 하나씩 입력을 처리하는 추론 단계에서는 배치 통계를 낼 수 없으므로 학습 과정에서 이동평균(moving average) 방식으로 누적해 둔 평균·분산을 대신 사용합니다. 또한 배치 정규화 뒤에 곱해지는 스케일(γ)과 더해지는 이동값(β)은 학습 가능한 파라미터로, 정규화로 인해 표현력이 지나치게 제한되지 않도록 원래 분포에 가까운 형태로 되돌릴 여지를 남겨둡니다. 배치 크기에 의존한다는 한계 때문에 층 정규화(layer normalization), 인스턴스 정규화(instance normalization), 그룹 정규화(group normalization) 등 배치 단위가 아닌 다른 축으로 정규화하는 변형 기법들이 후속 연구로 제안되었으며, 논문을 읽을 때 이런 변형들과의 비교 실험이 함께 등장하는 경우가 많습니다.

주의할 점

배치 정규화는 가중치 크기에 벌점을 매기는 정규화와 이름이 비슷해 혼동되기 쉽지만 전혀 다른 개념입니다. 정규화(regularization)는 손실함수에 벌점 항을 더해 과적합을 줄이는 기법이고, 배치 정규화(batch normalization)는 층 사이를 흐르는 값의 통계량(평균·분산)을 조정해 학습을 안정시키는 기법입니다. 또한 배치 크기가 매우 작으면 평균·분산 추정이 불안정해져 오히려 성능이 떨어질 수 있다는 점도 유의해야 합니다.

관련 용어