Regularization 이란?
기계 학습과 딥러닝에서 Regularization은 모델이 overfitting(과적합)되지 않도록 도와주는 기법을 의미함.
- Overfitting(과적합)은 모델이 훈련 데이터에 너무 잘 맞아 새로운 데이터에 대해 일반화(generalization)가 잘되지 않는 상황을 의미함.
- Regularization을 통해 모델의 Degree of Freedom(자유도), 즉 모델이 표현할 수 있는 복잡성을 제어해 일반화 성능을 높일 수 있음.
주요 Regularization 기법들
1. L1 및 L2 Regularization
- L1 Regularization: 가중치 값의 절댓값 합을 손실 함수에 추가하는 방식임.
- 모델의 일부 가중치가 0이 되게 만들어 희소성(sparsity)을 증가시키는 효과가 있음.
- 이는 Linear Regression에서는 흔히 Lasso Regression으로도 알려져 있음
- L2 Regularization: 가중치 값의 제곱합을 손실 함수에 추가하는 방식임.
- 손실 함수에 패널티 항을 추가해 모델이 점진적으로 가중치 크기를 줄여가며 과도한 가중치 값이 발생하는 것을 억제함.
- 이는 Linear Regression에서는 흔히 Ridge Regression으로도 알려져 있음.
- Elastic Net: L1과 L2 Regularization을 결합한 방법임.
- 데이터의 특성이 상관관계가 있을 때 특히 유용하며, 희소성과 일반화 능력을 동시에 강화할 수 있음.
2. Early Stopping
- Early Stopping은 모델이 검증 데이터에 대한 성능이 더 이상 향상되지 않을 때 학습을 조기에 중단하는 방법임.
- 이는 Over-fitting 을 방지하는 효과가 있으며, 모델이 훈련 데이터에 너무 맞춰지지 않게 함.
3. Dropout
- 이 기법은 훈련 중에 일부 뉴런을 무작위로 비활성화하는 방식으로 작동하며, 이를 통해 네트워크가 특정 뉴런에 과도하게 의존하지 않도록 훈련시킴.
- Dropout을 적용하면 매 훈련 단계마다 원래 네트워크의 일부만 사용되는데, 이를 '서브 네트워크'라고 함.
- Dropout은 여러 서브 네트워크를 학습하면서 모델이 더 다양한 패턴을 배우도록 하고, 특정 서브 네트워크에 대한 의존성을 낮춤.
- 이는 결과적으로 새로운 데이터에 대해서도 잘 작동하는 모델을 만드는 데 도움을 줌.
4. Data Augmentation
- 데이터가 부족한 경우 Data Augmentation을 사용해 훈련 데이터를 인위적으로 늘려 모델이 더 다양한 패턴을 학습할 수 있도록 하는 방법임.
- 예를 들어 이미지 데이터에서 회전, 크기 조절, 색상 변경 등을 통해 데이터를 증강할 수 있음.
5. Batch Normalization
- Batch Normalization은 각 미니 배치마다 입력을 정규화(normalize)해 학습이 안정되고 빠르게 진행될 수 있도록 하는 방법임.
- 이는 간접적으로 정규화 효과를 제공해 과적합을 줄이는 데 도움을 줄 수 있음.
6. Weight Constraint
- Weight Constraint는 가중치의 크기를 특정 범위로 직접 제한하는 방식임.
- 학습 중 가중치가 미리 정해진 값(예: 1)을 넘지 않도록 강제로 제한해 네트워크가 안정적으로 학습될 수 있도록 도움을 줌.
- L2 Regularization과 달리, 손실 함수에 패널티 항을 추가하는 대신 가중치의 크기 자체를 제한하여 보다 직접적으로 제어함.
7. Noise Injection
- Noise Injection은 학습 중 네트워크의 입력 데이터 나 Weightings (가중치) 에 임의의 노이즈를 추가하는 방법임.
- 이를 통해 모델이 노이즈에 강인한 특성을 학습하고, 과적합을 방지함.
- Gaussian noise 등을 주로 사용함.
8. Label Smoothing
- Label Smoothing은 훈련 데이터의 라벨을 조금 부드럽게 만들어 확신을 덜 가지게 하는 방법임.
- 예를 들어, One-Hot Vector 에서 완전히 0과 1로 설정하는 대신, 약간의 값을 추가해 0.9와 0.1 같은 형태로 라벨을 조정함.
- 이를 통해 Over-fitting(과적합)을 방지하고, 모델이 너무 확신을 가지지 않도록 만듦.
9. Soft Labeling
- Soft Labeling은 라벨 값을 완전히 0과 1로 설정하는 대신, 연속적인 값으로 조정해 모델이 조금 더 부드러운 예측을 하도록 하는 방법임.
- Label Smoothing과 유사하게 Soft Labeling은 라벨 간의 애매한 경계를 반영하여 모델이 불확실성을 학습하도록 도움을 줌.
- 예를 들어, 분류 문제에서 서로 유사한 두 클래스의 라벨을 0.9와 0.1의 비율로 주어, 모델이 더 일반화된 판단을 내리게 함.
- 특히 불균형 데이터나 애매한 클래스 경계를 가진 문제에서 유용하게 사용됨.
'Programming > ML' 카테고리의 다른 글
[ML] Linear Classification Model: Hyperplane and Decision Boundary (0) | 2024.10.27 |
---|---|
[ML] Diabetes Dataset (0) | 2024.10.05 |
[ML] Yeast Dataset (0) | 2024.10.05 |
[ML] kNN Classifier (k-Nearest Neighbors Classifier) (0) | 2024.10.05 |
[ML] Imputation (0) | 2024.10.05 |