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