정규화
L1, L2, 드롭아웃, 조기 종료와 같은 정규화 기술을 사용하여 과적합을 방지하고 모델 일반화 성능을 향상시키세요. 자세히 알아보기!
정규화(Regularization)는 머신러닝(ML)에서 과적합이라는 일반적인 문제를 방지하기 위해 사용되는 기술 집합입니다. 모델이 과적합되면 노이즈 및 임의 변동을 포함하여 훈련 데이터를 지나치게 학습하여 일반화하고 새로운 미지의 데이터에 대해 정확한 예측을 수행하는 능력이 저하됩니다. 정규화는 모델 복잡성에 대한 페널티를 손실 함수에 추가하여 모델이 지나치게 복잡한 패턴을 학습하지 못하도록 합니다. 이는 훈련 및 검증 데이터 모두에서 더 나은 성능을 보이는 더 간단하고 일반화 가능한 모델을 만드는 데 도움이 됩니다.
일반적인 정규화 기법
모델 성능과 견고성을 향상시키는 데 도움이 되는 몇 가지 널리 사용되는 정규화 기술이 있습니다.
- L1 and L2 Regularization: 이것들은 가장 일반적인 형태의 정규화입니다. 모델 가중치의 크기에 따라 손실 함수에 페널티를 추가합니다. L1 정규화(Lasso)는 덜 중요한 특징 가중치를 정확히 0으로 줄이는 경향이 있어 효과적으로 특징 선택을 수행합니다. L2 정규화(Ridge 또는 Weight Decay)는 가중치를 작게 만들지만 0이 되는 경우는 거의 없습니다. 수학적 차이에 대한 자세한 내용은 Stanford CS229 강의 노트와 같은 리소스에서 확인할 수 있습니다.
- 드롭아웃 레이어(Dropout Layer): 이 기술은 신경망에 특화되어 있습니다. 학습 중에 각 업데이트 단계에서 뉴런 활성화의 일부를 임의로 0으로 설정합니다. 이는 뉴런이 너무 많이 공동 적응하는 것을 방지하고 네트워크가 더 강력한 특징을 학습하도록 강제합니다. 이 개념은 매우 영향력 있는 연구 논문에서 소개되었습니다.
- 데이터 증강: 학습 데이터의 크기와 다양성을 인위적으로 확장함으로써 데이터 증강은 모델이 사소한 변화에 더 불변하도록 돕습니다. 일반적인 기술에는 이미지에서 색상을 회전, 자르기, 크기 조정 및 이동하는 것이 포함됩니다. Ultralytics는 모델 견고성을 개선하기 위해 내장된 YOLO 데이터 증강 방법를 제공합니다.
- 조기 중단: 이는 훈련 중에 검증 세트에 대한 모델의 성능을 모니터링하는 실용적인 방법입니다. 검증 성능이 향상되지 않으면 훈련 프로세스가 중단되어 모델이 나중 에포크에서 과적합되기 시작하는 것을 방지합니다. 조기 중단 구현에 대한 실용적인 가이드는 PyTorch 문서에서 확인할 수 있습니다.
실제 애플리케이션
정규화는 다양한 분야에서 효과적인 딥러닝(DL) 모델을 개발하는 데 기본적입니다.
- 컴퓨터 비전: Ultralytics YOLO와 같은 객체 탐지 모델에서 정규화는 COCO와 같은 데이터 세트에서 실제 애플리케이션으로 일반화하는 데 중요합니다. 예를 들어, 자동차 솔루션용 AI에서 L2 정규화 및 드롭아웃은 교통 표지판 감지기가 다양한 조명 및 날씨 조건에서 안정적으로 작동하도록 돕고 학습 중에 본 특정 예제를 암기하지 않도록 합니다.
- 자연어 처리(NLP): 대규모 언어 모델(LLM)은 매개변수의 수가 많기 때문에 과적합되기 쉽습니다. 기계 번역과 같은 애플리케이션에서 드롭아웃은 Transformer 아키텍처 내에서 사용되어 모델이 훈련 데이터에서 특정 문장 쌍을 암기하는 대신 문법 규칙과 의미 관계를 학습하도록 합니다.
정규화 vs. 기타 개념
정규화를 ML의 다른 관련 개념과 구별하는 것이 중요합니다.
- 정규화 vs. 정규화: 정규화는 입력 특징을 표준 범위(예: 0~1)로 조정하는 데이터 전처리 기술입니다. 이를 통해 단일 특징이 스케일로 인해 학습 프로세스를 지배하지 않도록 합니다. 대조적으로 정규화는 과적합을 방지하기 위해 훈련 중에 모델의 복잡성을 제한하는 기술입니다. 둘 다 모델 성능을 향상시키지만 정규화는 데이터에 중점을 두고 정규화는 모델 자체에 중점을 둡니다. Batch Normalization은 레이어별 정규화 기술이며 약간의 정규화 효과도 제공합니다.
- 정규화 vs. 하이퍼파라미터 튜닝: 정규화 기술에는 L1/L2의 정규화 강도(람다) 또는 드롭아웃 비율과 같은 자체 하이퍼파라미터가 있습니다. 하이퍼파라미터 튜닝은 이러한 설정에 대한 최적의 값을 찾는 프로세스이며, 종종 Ultralytics Tuner 클래스와 같은 도구로 자동화됩니다. 즉, 하이퍼파라미터 튜닝을 사용하여 정규화를 적용하는 가장 좋은 방법을 찾습니다. Ultralytics HUB와 같은 플랫폼은 이 프로세스에 필요한 실험을 관리하는 데 도움이 될 수 있습니다.