딥러닝 모델을 훈련할 때 특성 정규화는 모델 성능, 수렴 속도 및 훈련 안정성을 개선하는 데 중요한 역할을 합니다. 특성(feature) 정규화는 다음과 같은 이유로 필수적입니다.
1. 수렴 속도 가속화
- 신경망은 일반적으로 SGD(확률적 경사 하강법), Adam 등과 같은 경사 기반 최적화 기법을 사용하여 훈련됩니다. 만일, 입력 특성들이 서로 다른 범위를 가질 경우 (예: 하나는 0에서 1 사이, 다른 하나는 0에서 1000 사이), 손실 함수는 왜곡되거나 불안정해집니다. 이로 인해 기울기가 진동하거나 훈련이 불안정해질 수 있습니다. 이런 이유로 특성을 정규화하면 모델이 비슷한 크기의 데이터를 처리하게 되어 손실 함수가 더 매끄럽게 되며, 훈련 속도가 빨라집니다.
2. 수치적 안정성 향상
- 딥러닝 모델은 활성화 함수나 가중치 값이 너무 커지거나 작아지면 기울기 폭주 (exploding gradients) 또는 기울기 소실 (vanishing gradients) 문제를 겪을 수 있습니다. 정규화 (특히 배치 정규화와 같은 내부 정규화 기법)는 각 층에서 안정적인 분포를 유지하도록 도와줍니다. 이는 특히 깊은 네트워크나 순환 신경망에서 오버플로우나 언더플로우를 방지하는 데 중요합니다.
3. 더 나은 일반화
- 특성들이 서로 다른 범위를 가질 경우, 모델은 값이 큰 특성에 더 많은 가중치를 두는 경향이 있습니다. 정규화를 통해 모든 특성이 동일한 비율로 학습에 기여하게 되며, 이로 인해 균형 잡힌 가중치가 형성되고, 모델은 보지 못한 데이터에 대해 더 잘 일반화됩니다.
4. 가중치 초기화에 대한 민감도 감소
- 특성들의 범위가 크게 다를 경우, 모델의 성능은 초기 가중치 값에 매우 민감해질 수 있습니다.
- 정규화된 특성을 사용하면 Xavier, He와 같은 표준 초기화 기법을 사용할 수 있어 여러 번의 훈련에서 안정성을 높일 수 있습니다.
일반적인 정규화 기법
1. 배치 정규화 (Batch Normalization, BN)
배치 정규화는 각 특성 채널에 대해 배치 차원에서 입력을 정규화하여 각 특성의 분포를 안정화시킵니다.
적용 가능한 형태:
입력이 3D 특성 텐서일 경우: (B, C, L)
- B: 배치 크기
- C: 채널 수
- L: 시퀀스 길이 / 공간 크기 (1D 예시)
공식:
2. 층 정규화 (Layer Normalization, LN)
층 정규화는 배치 차원이 아닌 각 샘플의 특성들을 정규화합니다.
적용 가능한 형태:
입력: (B, C, L)
각 샘플에 대해 (C, L) 차원에서 정규화
공식:
각 샘플 채널 i에 대해:
3. L1 정규화 (Manhattan Norm)
입력을 L1 놈(절댓값 합)으로 정규화합니다. 주로 희소 모델(sparse model)이나 주의 분포(attention distribution)에서 사용됩니다.
정규화 공식:
$x_{\text{norm}} = \frac{x}{\|x\|_1} = \frac{x}{\sum |x_i|}$
4. L2 정규화 (Euclidean Norm)
입력 벡터를 유클리드 L2 놈으로 정규화합니다.
정규화 공식:
$x_{\text{norm}} = \frac{x}{\|x\|_2} = \frac{x}{\sqrt{\sum x_i^2}}$
용도:
- Face recognition, text embedding similarity.
5. 정규화 기법 비교표
방법 | 정규화 축 | 훈련의존성 | 장점 | 단점 |
배치 정규화 | 배치 및 공간 (각 채널) | 배치 필요 | 훈련 가속화, 공변량 이동 감소 | 작은 배치에서 성능 저하, 훈련 모드에 의존 |
층 정규화 | 특성 (각 샘플) | 배치 불필요 | NLP/RNN에 안정적, 트랜스포머에 적합 | 약간 느림, CNN에 덜 효과적 |
L1 정규화 | 벡터별 | 배치 불필요 | 희소성 친화적, 간단하고 해석 가능 | 모든 작업에 적합하지 않음, 딥러닝에서 안정성 문제 |
L2 정규화 | 벡터별 | 배치 불필요 | 유사도 기반 작업에 유용, 크기 정보 유지 | 학습 불가능, 훈련 속도 향상에 도움이 안 될 수 있음 |
'AI' 카테고리의 다른 글
정보 이론과 정보 병목 완벽 가이드 (0) | 2025.04.21 |
---|---|
딥러닝 활성화 함수 (Activation Functions) 완벽 가이드 (0) | 2025.04.21 |
CNN에서 Convolution(합성곱) 연산자 역할과 동작 원리 정리 (0) | 2025.04.21 |
기울기 소실 (Vanishing Gradient) 문제 (0) | 2025.04.20 |
딥러닝 모델 학습 시 Overfitting 대 Underfitting (0) | 2025.04.20 |