배치 정규화: 두 판 사이의 차이

IT 위키
(새 문서: 배치 정규화(영어: Batch Normalization, 줄여서 BN)는 딥 러닝에서 학습을 안정화하고 속도를 향상시키기 위해 사용되는 정규화 기법이다. 각 층의 입력을 정규화하여 내부 공변량 변화(Internal Covariate Shift)를 줄이는 것을 목적으로 한다. ==개요== *딥러닝 모델은 층이 깊어질수록 학습이 불안정해지고, 기울기 소실/폭주 문제로 인해 학습 속도가 느려진다. *배치 정규화는...)
 
편집 요약 없음
 
4번째 줄: 4번째 줄:
*배치 정규화는 미니배치 단위로 입력의 평균과 분산을 계산해 정규화한 뒤, 학습 가능한 스케일(scale)과 이동(shift) 파라미터를 적용한다.
*배치 정규화는 미니배치 단위로 입력의 평균과 분산을 계산해 정규화한 뒤, 학습 가능한 스케일(scale)과 이동(shift) 파라미터를 적용한다.
*이 과정을 통해 각 층의 입력 분포를 일정하게 유지하여 학습을 원활히 한다.
*이 과정을 통해 각 층의 입력 분포를 일정하게 유지하여 학습을 원활히 한다.
예를 들면<blockquote>Dense 출력값:  [-1.2, 0.3, 2.0, -0.8, ...]
'''↓ BN (정규화)'''
정규화 후:     [-0.9, -0.1, 0.8, -0.5, ...]  (평균 ≈ 0)
'''↓ ReLU'''
ReLU 출력:     [0, 0, 0.8, 0, ...]</blockquote>
* 이전 층의 활성화 값에 대해, 활성화 함수를 적용하기 전에 평균을 0, 분산을 1에 가깝게 만드는 예시이다.
==수식==
==수식==
[[파일:배치 정규화 전후 분포.png|섬네일|전후 분포]]
배치 정규화는 다음과 같이 정의된다.
배치 정규화는 다음과 같이 정의된다.
*정규화:
 
<blockquote>x̂ = (x - μ<sub>B</sub>) / √(σ<sub>B</sub>² + ε)</blockquote>
'''정규화:'''<blockquote>x̂ = (x - μ<sub>B</sub>) / √(σ<sub>B</sub>² + ε)</blockquote>
*선형 변환:
 
<blockquote>y = γx̂ + β</blockquote>여기서
* 풀어 쓰자면 각 입력값에 평균을 빼고, 표준 편차로 나눈다.
* 넓은 범위로 분산된 값을 더 모으는 효과가 있다.
 
선형 변환:<blockquote>y = γx̂ + β</blockquote>여기서
*μ<sub>B</sub> : 배치 평균
*μ<sub>B</sub> : 배치 평균
*σ<sub>B</sub>² : 배치 분산
*σ<sub>B</sub>² : 배치 분산

2025년 10월 25일 (토) 01:36 기준 최신판

배치 정규화(영어: Batch Normalization, 줄여서 BN)는 딥 러닝에서 학습을 안정화하고 속도를 향상시키기 위해 사용되는 정규화 기법이다. 각 층의 입력을 정규화하여 내부 공변량 변화(Internal Covariate Shift)를 줄이는 것을 목적으로 한다.

개요[편집 | 원본 편집]

  • 딥러닝 모델은 층이 깊어질수록 학습이 불안정해지고, 기울기 소실/폭주 문제로 인해 학습 속도가 느려진다.
  • 배치 정규화는 미니배치 단위로 입력의 평균과 분산을 계산해 정규화한 뒤, 학습 가능한 스케일(scale)과 이동(shift) 파라미터를 적용한다.
  • 이 과정을 통해 각 층의 입력 분포를 일정하게 유지하여 학습을 원활히 한다.

예를 들면

Dense 출력값:  [-1.2, 0.3, 2.0, -0.8, ...]

↓ BN (정규화)

정규화 후:     [-0.9, -0.1, 0.8, -0.5, ...]  (평균 ≈ 0)

↓ ReLU

ReLU 출력:     [0, 0, 0.8, 0, ...]

  • 이전 층의 활성화 값에 대해, 활성화 함수를 적용하기 전에 평균을 0, 분산을 1에 가깝게 만드는 예시이다.

수식[편집 | 원본 편집]

전후 분포

배치 정규화는 다음과 같이 정의된다.

정규화:

x̂ = (x - μB) / √(σB² + ε)

  • 풀어 쓰자면 각 입력값에 평균을 빼고, 표준 편차로 나눈다.
  • 넓은 범위로 분산된 값을 더 모으는 효과가 있다.

선형 변환:

y = γx̂ + β

여기서

  • μB : 배치 평균
  • σB² : 배치 분산
  • ε : 분모의 0 방지를 위한 작은 값
  • γ, β : 학습 가능한 스케일 및 시프트 파라미터

장점[편집 | 원본 편집]

  • 학습 속도 향상: 더 큰 학습률(learning rate) 사용 가능
  • 기울기 소실/폭주 문제 완화
  • 초기화에 대한 의존도 감소
  • 정규화 효과로 인해 과적합 방지에 도움

단점[편집 | 원본 편집]

  • 미니배치 크기에 의존적이며, 배치가 너무 작으면 통계량 추정이 불안정해진다.
  • RNN처럼 시퀀스 의존성이 큰 구조에는 적용이 까다롭다.
  • 학습과 추론 단계에서 동작 방식이 달라 관리가 필요하다(추론 시 이동 평균 사용).

변형 기법[편집 | 원본 편집]

  • Layer Normalization : 배치가 아닌 개별 샘플 단위로 정규화
  • Instance Normalization : 컴퓨터 비전에서 주로 사용, 각 샘플의 채널 단위 정규화
  • Group Normalization : 채널을 그룹 단위로 묶어 정규화

응용[편집 | 원본 편집]

  • 합성곱 신경망(CNN)에서 필수적으로 사용되는 정규화 기법
  • 자연어 처리, 음성 인식 등 다양한 딥러닝 모델에서 안정적인 학습을 위해 적용

같이 보기[편집 | 원본 편집]

참고 문헌[편집 | 원본 편집]

  • Sergey Ioffe, Christian Szegedy. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift. ICML 2015.
  • Ian Goodfellow, Yoshua Bengio, Aaron Courville. Deep Learning. MIT Press, 2016.

각주[편집 | 원본 편집]