배치 정규화
- 딥 뉴럴 네트워크(Deep Neural Networks)에서 사용되는 중요한 정규화 기술 중 하나로, 네트워크의 학습을 안정화하고 속도를 향상시키는 데 도움을 줌
- 주로 컨볼루션 신경망(CNN) 및 완전 연결 신경망(Fully Connected Neural Networks)에서 사용
- 합성곱 레이어 또는 완전 연결 레이어 뒤에 적용되며, 네트워크의 성능과 안정성을 향상시키는 데 도움
- 뉴럴 네트워크의 학습과 일반화 능력이 향상되며, 많은 신경망 아키텍처에서 중요한 구성 요소로 사용
개념
- 배치 정규화는 네트워크의 각 레이어에서 입력 데이터의 분포를 조절하는 방법입니다.
- 각 미니배치(batch)의 입력 데이터에 대해 평균과 분산을 계산하고, 이를 사용하여 입력 데이터를 정규화합니다.
- 정규화된 데이터는 스케일(scale)과 시프트(shift) 연산을 통해 원하는 분포로 조정됩니다.
작동방식
- 각 미니배치에서 입력 데이터의 평균과 분산을 계산합니다.
- 평균과 분산을 사용하여 입력 데이터를 정규화합니다. 이때, 정규화된 데이터는 다음과 같이 계산됩니다.
- 정규화된 데이터 = (입력 데이터 - 평균) / sqrt(분산 + ε)
여기서 ε는 분모가 0이 되는 것을 방지하기 위한 작은 상수입니다.
- 정규화된 데이터 = (입력 데이터 - 평균) / sqrt(분산 + ε)
- 정규화된 데이터에 스케일(scale)과 시프트(shift) 연산을 수행합니다. 스케일과 시프트는 학습 가능한 파라미터로, 네트워크가 데이터의 특성에 맞게 조절할 수 있도록 합니다.
- 최종 출력값은 스케일과 시프트 연산을 통해 얻어집니다.
장점
- 학습 안정화: Batch Normalization은 그래디언트 소실 및 폭주 문제를 완화하고, 학습 속도를 높이며 안정화시킵니다.
- 빠른 학습: 더 큰 학습률을 사용할 수 있어 수렴 속도를 향상시킵니다.
- 초기화에 덜 민감: 초기 가중치 초기화에 덜 민감하므로 하이퍼파라미터 조정이 간소화됩니다.
- 정규화 효과: 네트워크 내부의 레이어 간의 입력 데이터 분포를 정규화하므로 일종의 정규화 효과를 얻을 수 있습니다.