배치 정규화 (Batch Normalization)

컴퓨터과학·AI
한 줄 정의: 학습 중 미니배치 단위로 각 층에 들어오는 값의 평균과 분산을 일정하게 맞춰주어(평균 0, 분산 1), 신경망 학습을 더 안정적이고 빠르게 만드는 기법입니다.
배치 정규화배치 정규화 단계 순서: 미니배치 입력 → 평균·분산 계산, 평균·분산 계산 → 정규화, 정규화 → 스케일·이동, 스케일·이동 → 다음 층 입력.미니배치 입력층에 들어오는 값평균·분산 계산미니배치 단위정규화평균 0·분산 1스케일·이동학습 가능한 γ·β다음 층 입력분포가 일정12345추론 때는 배치 통계 대신 학습 중 이동평균으로 누적한 평균·분산을 쓴다한계배치 크기가 매우 작으면 평균·분산 추정이 불안정해진다배치 정규화배치 정규화 단계 순서: 미니배치 입력 → 평균·분산 계산, 평균·분산 계산 → 정규화, 정규화 → 스케일·이동, 스케일·이동 → 다음 층 입력.미니배치 입력층에 들어오는 값평균·분산 계산미니배치 단위정규화평균 0·분산 1스케일·이동학습 가능한 γ·β다음 층 입력분포가 일정12345추론 때는 배치 통계 대신 학습 중 이동평균으로 누적한평균·분산을 쓴다한계배치 크기가 매우 작으면 평균·분산 추정이불안정해진다

쉽게 풀면

여러 층으로 이루어진 공장 조립 라인을 생각해봅시다. 앞 공정에서 부품 크기가 자꾸 들쭉날쭉하게 나오면, 뒤 공정 담당자는 그때그때 기준을 다시 맞추느라 작업이 느려지고 불안정해집니다.

신경망도 비슷한 문제를 겪는데, 앞쪽 층의 가중치가 학습 도중 계속 바뀌면서 뒤쪽 층으로 들어가는 값의 분포도 계속 흔들립니다(이를 "내부 공변량 변화"라고 부르기도 합니다).

배치 정규화는 각 층에 들어가는 값을 매 미니배치마다 평균 0, 분산 1로 맞춰준 다음, 학습 가능한 스케일과 이동값을 다시 곱하고 더해 조정합니다. 그 결과 각 층이 항상 비슷한 범위의 입력을 받게 되어 학습이 더 빠르고 안정적으로 진행되며, 더 큰 학습률을 써도 잘 견딥니다.

왜 중요한가

딥러닝 논문에서 새로운 모델 구조를 제안할 때는 거의 항상 "이 구조가 잘 학습되는가"라는 질문이 따라붙는데, 배치 정규화는 이 질문에 대한 가장 널리 쓰이는 답 중 하나입니다.

층을 아주 깊게 쌓을수록 학습이 불안정해지거나 느려지는 문제가 커지는데, 배치 정규화를 넣으면 더 깊은 네트워크를 더 큰 학습률로 비교적 안정적으로 학습시킬 수 있어 이미지 인식, 음성 처리 등 다양한 분야의 모델 설계에서 기본 구성 요소처럼 다뤄집니다.

또한 학습 안정화 기법 자체가 하나의 연구 주제여서, 배치 정규화의 한계(작은 배치 크기, 순차 데이터 처리 등)를 보완하려는 후속 정규화 기법 연구들도 이 개념을 기준점으로 삼아 비교됩니다.

어떤 절차인가

Ioffe와 Szegedy(2015)가 제안한 방식은 미니배치(크기 m)의 각 특징마다 다음을 합니다.

  1. 평균과 분산 계산: μ = (1/m)Σxi, σ² = (1/m)Σ(xi − μ)²
  2. 정규화: x̂i = (xi − μ)/√(σ² + ε) (ε은 0으로 나누는 것을 막는 작은 수)
  3. 스케일과 이동: yi = γ·x̂i + β (γ, β는 학습되는 파라미터)

합성곱 층에서는 채널마다 배치와 공간 위치 전체에 걸쳐 평균과 분산을 구합니다. 원 논문은 활성화 함수 앞에 넣었습니다. 추론할 때는 배치 통계를 낼 수 없으므로 학습 중 이동평균으로 모아 둔 평균과 분산을 대신 씁니다. 이 때문에 학습 모드와 평가 모드를 구분해 두지 않으면 결과가 달라집니다.

언제 쓰고 무엇을 얻나

논문에는 이렇게 적는다

구현 보고에 적어야 할 항목과, 작은 예입니다.

항목적는 내용
위치합성곱·선형 층과 활성화 사이인지 등
설정배치 크기, ε, 이동평균 모멘텀, γ·β 초기값
모드평가 시 이동평균 통계를 사용했는지
비교제거 실험(ablation) 또는 다른 정규화와의 비교

한 특징의 미니배치 값이 (2, 4, 6, 8)이면 평균 5, 분산 5(모분산)입니다. ε = 10−5일 때 정규화 값은 약 (−1.342, −0.447, 0.447, 1.342)이고, γ = 2, β = 1을 적용하면 약 (−1.683, 0.106, 1.894, 3.683)이 됩니다(계산). 이동평균을 모멘텀 0.1로 갱신하면 평균 0 → 0.5, 분산 1 → 1.4가 됩니다. 구현마다 이동평균 분산에 표본분산(m − 1로 나눔)을 쓰는 경우가 있으므로 쓴 프레임워크의 정의를 확인합니다.

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

실제 논문에서

이 용어를 직접 쓴 국내 논문 문장을 아직 수집하지 못했습니다. 수집되는 대로 출처와 함께 싣겠습니다.

예시 문장

아래는 용어의 쓰임을 보여 주려고 만든 예시로, 실제 논문에서 가져온 문장이 아닙니다.

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

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

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

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

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

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

조금 더 깊게 보면

배치 정규화는 학습(train)과 추론(inference) 단계에서 동작 방식이 다릅니다.

학습 중에는 매 미니배치의 평균과 분산을 그때그때 계산해 사용하지만, 실제 서비스에서 하나씩 입력을 처리하는 추론 단계에서는 배치 통계를 낼 수 없으므로 학습 과정에서 이동평균(moving average) 방식으로 누적해 둔 평균·분산을 대신 사용합니다.

또한 배치 정규화 뒤에 곱해지는 스케일(γ)과 더해지는 이동값(β)은 학습 가능한 파라미터로, 정규화로 인해 표현력이 지나치게 제한되지 않도록 원래 분포에 가까운 형태로 되돌릴 여지를 남겨둡니다.

배치 크기에 의존한다는 한계 때문에 층 정규화(layer normalization), 인스턴스 정규화(instance normalization), 그룹 정규화(group normalization) 등 배치 단위가 아닌 다른 축으로 정규화하는 변형 기법들이 후속 연구로 제안되었으며, 논문을 읽을 때 이런 변형들과의 비교 실험이 함께 등장하는 경우가 많습니다.

주의할 점

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

헷갈리기 쉬운 용어

“정규화”라는 한국어가 여러 영어 용어에 쓰여 혼동이 잦습니다. 통계를 어느 범위에서 구하는지로 구별합니다.

용어무엇을 하나통계를 구하는 범위
배치 정규화(batch normalization)층 입력을 평균 0·분산 1로 맞춤미니배치 전체(특징·채널별)
레이어 정규화층 입력을 평균 0·분산 1로 맞춤한 샘플 안의 특징 전체
그룹·인스턴스 정규화배치 정규화와 같은 계산한 샘플 안의 채널 묶음 또는 채널별 공간
정규화(regularization)손실에 벌점을 더해 과적합을 줄임통계가 아니라 가중치 크기 등
입력 표준화학습 데이터 전체의 평균·표준편차로 전처리전체 학습 데이터(학습되는 파라미터 없음)

참고 문헌

  1. Ioffe, S., & Szegedy, C. (2015). Batch normalization: Accelerating deep network training by reducing internal covariate shift. Proceedings of the 32nd International Conference on Machine Learning, 37, 448–456.
  2. Santurkar, S., Tsipras, D., Ilyas, A., & Madry, A. (2018). How does batch normalization help optimization? Advances in Neural Information Processing Systems, 31.
  3. Ba, J. L., Kiros, J. R., & Hinton, G. E. (2016). Layer normalization. arXiv preprint.
  4. Wu, Y., & He, K. (2018). Group normalization. Proceedings of the European Conference on Computer Vision.

표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.

관련 용어