Recent Posts
Recent Comments
Archives
반응형
250x250
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Today
Yesterday

Total
04-29 05:43
관리 메뉴

Hey Tech

[Deep Learning] Batch Normalization(배치 정규화) 개념 및 장점 본문

AI & 빅데이터/머신러닝·딥러닝

[Deep Learning] Batch Normalization(배치 정규화) 개념 및 장점

Tony Park 2022. 7. 22. 09:37
728x90
반응형

📌 들어가며

본 포스팅에서는 딥러닝 Generalization 기법 중 하나인 배치 정규화(Batch Normalization)에 대해 알아봅니다. 먼저, 데이터 정규화의 필요성에 대해 알아보고, Batch Normalization의 등장 배경인Internal Covariate Shift 현상에 대해 소개합니다. 이후 Batch Normalization의 개념과 특징에 대해 알아보겠습니다.

📚 목차

1.  데이터 정규화
    1.1.  개념
    1.2.  필요성
2.  Internal Covariate Shift 현상
    2.1.  개념
    2.2.  문제점
3.  Batch Normalization
    3.1.  개념
    3.2.  장점
    3.3. 단계별 Batch Normalization

1.  데이터 정규화

1.1.  개념

데이터 정규화(Normalization)는 모델 학습 이전에 여러 Feature 데이터 값의 범위를 조정하는 과정을 말하며, Feature Scaling 또는 Data Scaling이라고 부릅니다. 데이터 정규화는 왜 필요할까요? 이어지는 섹션에서 자세히 알아봅니다.

1.2.  필요성

데이터 값의 범위 차이가 클 경우, 아래의 그림 1 좌측처럼 비효율적인 최적화 과정을 거치게 됩니다. 데이터 간 편차가 큰 Feature 위주로 학습이 진행되기 때문에 \(x\)축 방향 위주로 파라미터가 갱신되며 최적화가 진행됩니다. 반면, 상대적으로 편차가 적은 \(y\)축 방향의 Feature의 영향력은 상대적으로 무시되는 현상이 발생합니다.

그림 1. 정규화 필요성(그림 출처: https://www.jeremyjordan.me/batch-normalization/)

데이터를 정규화하게 되면 위의 문제점을 해결할 수 있습니다. 즉, 그림 1 우측처럼, 데이터 범위의 차이가 작아지기 때문에, 모델 학습 시 모든 Feature마다 파라미터가 유사한 중요도를 갖고 개선되기 때문에 최적화 과정이 개선되는 효과가 있습니다.

2.  Internal Covariate Shift 현상

모델 학습 전에 입력 Feature 간 데이터 범위를 조정할 수 있지만, 모델 학습 과정에서 Layer를 통과할 때마다 출력값의 데이터 분포는 Layer마다 다르게 나타나는 현상이 있습니다. 이러한 현상을 Internal Covariate Shift(ICS)라고 부릅니다. 이에 대해 자세히 알아봅니다.

2.1.  개념

Internal Covariate Shift(ICS)는 모델이 학습 과정에서 Layer마다 입력 데이터의 분포가 변하는 현상입니다. 예를 들어, 아래의 그림 2처럼, 첫 번째 Layer를 통과한 후 출력이자 2번째 Layer의 입력 데이터의 분포는 Gausian 분포를 따르지만, 2번째 Layer의 출력과 3번째 Layer의 출력 데이터의 분포는 한쪽으로 치우치게 나타나는 경우입니다.

그림 2. Internal Covariate Shift 현상 예시

2.2.  문제점

Layer마다 동일한 학습률(Learning Rate)로 학습할 때, Internal Covariate Shift 현상으로 데이터 분포가 Layer마다 다를 경우 학습 성능이 떨어지는 문제가 발생합니다. 특히, Mini Batch 학습법 사용 시 Batch마다 출력 데이터의 분포가 다르게 나타나고, 이는 전혀 예측 불가한 Gradient를 학습하게 되어 학습의 질이 떨어지는 문제가 발생합니다.

반응형

3.  Batch Normalization

3.1.  개념

배치 정규화(Batch Normalization)는 학습 과정에서 Batch마다 평균과 분산을 활용하여 데이터의 분포를 정규화하는 과정을 말합니다(그림 3). 데이터 종류에 따라 값의 범위는 천차만별이기 때문에, Batch마다 입력값의 범위를 스케일링하는 과정이 바로 Batch Normalization입니다.

그림 2. Batch Normalization 예시

3.2. 장점

Batch Normalization의 장점은 크게 2가지입니다.

1) 데이터 Scale 통일

첫째, 어떠한 데이터 분포가 입력으로 들어와도 모두 정규화하기 때문에 모든 Layer의 Feature가 동일한 Scale이 되도록 만드는 점입니다. 즉, 앞서 살펴본 Batch마다 데이터 분포가 달라지는 Internal Covariate Shift 현상을 방지할 수 있고 학습률 결정 시 효과적입니다. 모델 학습 과정에는 손실함수(Loss Function)와 가까운 Layer일수록 학습이 잘 되고, 멀리 있는 Layer일수록 학습이 잘 안 되는 특징이 있습니다. 즉, 손실함수에 멀리 있는 Layer일수록 학습률을 높게 설정하는 것처럼, 일반적으로 학습 성능을 올리기 위해서는 Layer마다 학습률을 다르게 설정할 필요가 있었습니다. 하지만, Batch Normalization을 사용할 경우 모든 Layer의 Feature마다 동일한 scale이 되기 때문에 학습률을 결정하는 데 도움이 됩니다.

2) 활성화 함수 맞춤형 분포 변화

둘째, Batch Normalization 시 추가적인 스케일링과 편향(bias)을 학습함으로써 활성화 함수(Activation Function) 종류에 맞게 적합한 분포로 변환이 가능하다는 점입니다. 이는 이어지는 "학습 단계 시 Batch Normalization" 섹션에서 더욱 자세히 다루겠습니다.

 

728x90

3.3. 단계별 Batch Normalization

Fully Connected Layer 활용 시 학습 및 추론 단계에서의 Batch Normalization의 특징에 대해 각각 알아봅니다.

1) 학습 단계 시 Batch Normalization

먼저, 학습 단계에서의 Batch Normalization 수식을 살펴보겠습니다.

 

$$ BN(X) = \gamma(\frac{X-\mu_{batch}}{\sigma_{batch}}) + \beta $$

 

  • \(X\): 입력 데이터
  • \(\gamma\): 추가 스케일링
  • \(\beta\): 편향
  • \(\mu_{batch}\): 배치별 평균값(\(\frac{1}{B} \sum_{i} x_{i}\))
  • \(\sigma_{batch}\): 배치별 표준편차(\(\frac{1}{B} \sum_{i} (x_{i} - \mu_{batch})^2 \))

\(\gamma\)와 \(\beta\)는 선형적으로 출력 값을 변화시키는 변수이기 때문에 역전파 알고리즘으로 학습이 가능합니다. 따라서 활성화 함수의 종류에 맞게 데이터 분포를 변화시킬 수 있다는 장점이 있습니다.

2) 추론 단계 시 Batch Normalization

추론 단계에서의 Batch Normalization 수식은 아래와 같습니다.

 

$$ BN(X) = \gamma(\frac{X-\mu_{BN}}{\sigma_{BN}}) + \beta $$

 

여기서 \(\mu_{BN}\)와 \(\sigma_{BN}\)는 학습 과정에서 이동 평균 또는 지수 평균을 통해 계산된 상수입니다. 예를 들어, 이동 평균을 사용하여 최근 \(N\)개의 데이터를 기반으로 \(\mu_{BN}\)와 \(\sigma_{BN}\)는 각각 아래와 같이 계산됩니다.

 

$$ \mu_{BN} = \frac{1}{N}\sum_{i}\mu_{batch}^{i} $$

 

$$ \sigma_{BN} = \frac{1}{N}\sum_{i}\sigma_{batch}^{i} $$

 

이동 평균은 최근 \(N\)개의 데이터에 성능이 좌지우지되는 경향이 있기 때문에, 일반적으로 지수 평균을 많이 사용하여 계산합니다.

 

추론 단계에서 \(\gamma\)와 \(\beta\)는 모두 역전파로 학습된 상수이므로, Batch Normalization은 단일 곱과 덧셈 연산으로 줄일 수 있기 때문에 연산이 간단하다는 특징이 있습니다.


포스팅 내용에 오류가 있거나 보완할 점이 있다면 댓글 남겨주세요.

그럼 오늘도 건강하고 즐거운 하루 보내시길 바랍니다 :)

고맙습니다😊

728x90
반응형
Comments