배치 정규화 (Batch Normalization)
쉽게 풀면
여러 층으로 이루어진 공장 조립 라인을 생각해봅시다. 앞 공정에서 부품 크기가 자꾸 들쭉날쭉하게 나오면, 뒤 공정 담당자는 그때그때 기준을 다시 맞추느라 작업이 느려지고 불안정해집니다.
신경망도 비슷한 문제를 겪는데, 앞쪽 층의 가중치가 학습 도중 계속 바뀌면서 뒤쪽 층으로 들어가는 값의 분포도 계속 흔들립니다(이를 "내부 공변량 변화"라고 부르기도 합니다).
배치 정규화는 각 층에 들어가는 값을 매 미니배치마다 평균 0, 분산 1로 맞춰준 다음, 학습 가능한 스케일과 이동값을 다시 곱하고 더해 조정합니다. 그 결과 각 층이 항상 비슷한 범위의 입력을 받게 되어 학습이 더 빠르고 안정적으로 진행되며, 더 큰 학습률을 써도 잘 견딥니다.
왜 중요한가
딥러닝 논문에서 새로운 모델 구조를 제안할 때는 거의 항상 "이 구조가 잘 학습되는가"라는 질문이 따라붙는데, 배치 정규화는 이 질문에 대한 가장 널리 쓰이는 답 중 하나입니다.
층을 아주 깊게 쌓을수록 학습이 불안정해지거나 느려지는 문제가 커지는데, 배치 정규화를 넣으면 더 깊은 네트워크를 더 큰 학습률로 비교적 안정적으로 학습시킬 수 있어 이미지 인식, 음성 처리 등 다양한 분야의 모델 설계에서 기본 구성 요소처럼 다뤄집니다.
또한 학습 안정화 기법 자체가 하나의 연구 주제여서, 배치 정규화의 한계(작은 배치 크기, 순차 데이터 처리 등)를 보완하려는 후속 정규화 기법 연구들도 이 개념을 기준점으로 삼아 비교됩니다.
어떤 절차인가
Ioffe와 Szegedy(2015)가 제안한 방식은 미니배치(크기 m)의 각 특징마다 다음을 합니다.
- 평균과 분산 계산:
μ = (1/m)Σxi,σ² = (1/m)Σ(xi − μ)² - 정규화:
x̂i = (xi − μ)/√(σ² + ε)(ε은 0으로 나누는 것을 막는 작은 수) - 스케일과 이동:
yi = γ·x̂i + β(γ, β는 학습되는 파라미터)
합성곱 층에서는 채널마다 배치와 공간 위치 전체에 걸쳐 평균과 분산을 구합니다. 원 논문은 활성화 함수 앞에 넣었습니다. 추론할 때는 배치 통계를 낼 수 없으므로 학습 중 이동평균으로 모아 둔 평균과 분산을 대신 씁니다. 이 때문에 학습 모드와 평가 모드를 구분해 두지 않으면 결과가 달라집니다.
언제 쓰고 무엇을 얻나
- 얻는 것: 더 큰 학습률에서도 안정적으로 학습되고, 초기화에 덜 민감하며, 배치 통계의 잡음 덕에 약한 정규화(regularization) 효과도 보고됩니다(Ioffe & Szegedy, 2015).
- 왜 효과가 있나: 원 논문은 층 입력 분포가 학습 중 계속 바뀌는 “내부 공변량 변화”를 줄이기 때문이라고 설명했지만, Santurkar 등(2018)은 그보다 손실 함수의 지형을 더 매끄럽게 하기 때문이라고 보고했습니다. 효과의 원인은 아직 논쟁 중이며 페이지의 쉬운 설명은 원 논문의 설명을 따른 것입니다.
- 한계: 배치 크기가 작으면 평균·분산 추정이 불안정하고, 순차 데이터 모형에는 쓰기 불편합니다. 이를 보완해 배치가 아닌 축으로 정규화하는 레이어 정규화(Ba et al., 2016)와 그룹 정규화(Wu & He, 2018) 등이 나왔습니다.
논문에는 이렇게 적는다
구현 보고에 적어야 할 항목과, 작은 예입니다.
| 항목 | 적는 내용 |
|---|---|
| 위치 | 합성곱·선형 층과 활성화 사이인지 등 |
| 설정 | 배치 크기, ε, 이동평균 모멘텀, γ·β 초기값 |
| 모드 | 평가 시 이동평균 통계를 사용했는지 |
| 비교 | 제거 실험(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로 나눔)을 쓰는 경우가 있으므로 쓴 프레임워크의 정의를 확인합니다.
논문에서는 이렇게 쓰입니다
실제 논문에서
이 용어를 직접 쓴 국내 논문 문장을 아직 수집하지 못했습니다. 수집되는 대로 출처와 함께 싣겠습니다.
예시 문장
아래는 용어의 쓰임을 보여 주려고 만든 예시로, 실제 논문에서 가져온 문장이 아닙니다.
이 문장은 "층마다 입력값의 분포를 일정하게 맞춰주는 장치를 추가해서, 초기 가중치 설정이 조금 잘못되어도 학습이 잘 진행되고 더 빠르게 수렴하도록 했다"는 뜻입니다.
학습률을 크게 잡으면 학습이 튀거나 발산하기 쉬운데, 배치 정규화를 넣으면 각 층에 들어오는 값의 범위가 일정하게 유지되어 공격적인 학습률에서도 학습이 잘 굴러갔다는 의미입니다.
배치 정규화가 실제로 성능에 기여하는지 확인하기 위해 일부러 빼고 다시 학습시켜 비교했더니, 배치 정규화가 있을 때보다 학습이 더디고 결과도 나빠졌다는, 즉 배치 정규화의 효과를 검증하는 실험 결과를 설명하는 문장입니다.
조금 더 깊게 보면
배치 정규화는 학습(train)과 추론(inference) 단계에서 동작 방식이 다릅니다.
학습 중에는 매 미니배치의 평균과 분산을 그때그때 계산해 사용하지만, 실제 서비스에서 하나씩 입력을 처리하는 추론 단계에서는 배치 통계를 낼 수 없으므로 학습 과정에서 이동평균(moving average) 방식으로 누적해 둔 평균·분산을 대신 사용합니다.
또한 배치 정규화 뒤에 곱해지는 스케일(γ)과 더해지는 이동값(β)은 학습 가능한 파라미터로, 정규화로 인해 표현력이 지나치게 제한되지 않도록 원래 분포에 가까운 형태로 되돌릴 여지를 남겨둡니다.
배치 크기에 의존한다는 한계 때문에 층 정규화(layer normalization), 인스턴스 정규화(instance normalization), 그룹 정규화(group normalization) 등 배치 단위가 아닌 다른 축으로 정규화하는 변형 기법들이 후속 연구로 제안되었으며, 논문을 읽을 때 이런 변형들과의 비교 실험이 함께 등장하는 경우가 많습니다.
주의할 점
배치 정규화는 가중치 크기에 벌점을 매기는 정규화와 이름이 비슷해 혼동되기 쉽지만 전혀 다른 개념입니다. 정규화(regularization)는 손실함수에 벌점 항을 더해 과적합을 줄이는 기법이고, 배치 정규화(batch normalization)는 층 사이를 흐르는 값의 통계량(평균·분산)을 조정해 학습을 안정시키는 기법입니다. 또한 배치 크기가 매우 작으면 평균·분산 추정이 불안정해져 오히려 성능이 떨어질 수 있다는 점도 유의해야 합니다.
헷갈리기 쉬운 용어
“정규화”라는 한국어가 여러 영어 용어에 쓰여 혼동이 잦습니다. 통계를 어느 범위에서 구하는지로 구별합니다.
| 용어 | 무엇을 하나 | 통계를 구하는 범위 |
|---|---|---|
| 배치 정규화(batch normalization) | 층 입력을 평균 0·분산 1로 맞춤 | 미니배치 전체(특징·채널별) |
| 레이어 정규화 | 층 입력을 평균 0·분산 1로 맞춤 | 한 샘플 안의 특징 전체 |
| 그룹·인스턴스 정규화 | 배치 정규화와 같은 계산 | 한 샘플 안의 채널 묶음 또는 채널별 공간 |
| 정규화(regularization) | 손실에 벌점을 더해 과적합을 줄임 | 통계가 아니라 가중치 크기 등 |
| 입력 표준화 | 학습 데이터 전체의 평균·표준편차로 전처리 | 전체 학습 데이터(학습되는 파라미터 없음) |
참고 문헌
- 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.
- Santurkar, S., Tsipras, D., Ilyas, A., & Madry, A. (2018). How does batch normalization help optimization? Advances in Neural Information Processing Systems, 31.
- Ba, J. L., Kiros, J. R., & Hinton, G. E. (2016). Layer normalization. arXiv preprint.
- Wu, Y., & He, K. (2018). Group normalization. Proceedings of the European Conference on Computer Vision.
표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.