데이터 증강은 머신러닝(ML) 에서 학습 데이터 세트의 크기와 다양성을 인위적으로 확장하는 데 사용되는 중요한 기술입니다. 이는 기존 데이터 포인트의 수정된 버전을 만들거나 이를 기반으로 새로운 합성 예제를 생성함으로써 달성됩니다. 주요 목표는 특히 크고 다양한 데이터 세트를 확보하는 데 많은 비용과 시간이 소요될 수 있는 컴퓨터 비전(CV) 과 같은 분야에서 ML 모델의 성능, 일반화 기능 및 견고성을 개선하는 것입니다. 다음과 같은 모델을 훈련하여 Ultralytics YOLO 와 같은 모델을 증강 데이터에 학습시킴으로써 개발자는 실제 시나리오에서 발생하는 다양한 변수를 처리하는 방법을 학습하여 보이지 않는 데이터에 대한 정확도를 높일 수 있습니다.
데이터 증강의 작동 방식
데이터 증강의 핵심 아이디어는 원본 데이터 샘플에 다양한 변환을 적용하여 새롭고 그럴듯한 훈련 예제를 생성하는 것입니다. 이러한 변환은 추론 중에 모델이 직면할 수 있는 변형을 이상적으로 반영해야 합니다. 컴퓨터 비전의 주요 초점인 이미지 데이터의 경우, 일반적인 증강 기법에는 다음이 포함됩니다:
- 기하학적 변형: 회전, 크기 조정(확대 또는 축소), 이동(이동), 전단, 뒤집기(수평 또는 수직) 등 이미지의 공간 속성을 변경합니다.
- 색 공간 변환: 밝기, 대비, 채도, 색조 조정을 포함한 색상 특성을 수정합니다. 이를 통해 모델이 조명 조건과 카메라 변화에 덜 민감해집니다.
- 노이즈 추가: 센서 노이즈 또는 불완전한 이미지 품질을 시뮬레이션하기 위해 가우시안 노이즈와 같은 무작위 노이즈를 도입합니다.
- 무작위 지우기/컷아웃: 이미지의 무작위 직사각형 영역을 마스킹하여 모델이 오브젝트의 다른 부분에 초점을 맞추고 오클루전에 대한 견고성을 향상시킵니다.
- 이미지 혼합: 여러 이미지 또는 이미지의 일부를 결합합니다. Mixup(두 이미지와 레이블 사이의 보간) 및 CutMix(한 이미지의 패치를 다른 이미지에 붙여넣기)와 같은 기술을 사용하면 모델이 덜 깨끗한 예제에서 학습하게 됩니다.
이력서에서 많이 사용되는 증강 기술은 다른 분야에도 적용됩니다. 예를 들어 자연어 처리(NLP)에서는 동의어 대체, 역번역(텍스트를 다른 언어로 번역했다가 다시 번역하는 것), 단어의 임의 삽입/삭제 등의 방법으로 텍스트 데이터를 보강할 수 있습니다.
중요성 및 이점
데이터 증강은 여러 가지 이유로 ML 워크플로우의 기본적인 부분입니다:
- 향상된 모델 일반화: 모델을 더 다양한 예제에 노출시킴으로써 특정 훈련 사례를 암기하는 대신 기본 패턴을 학습할 수 있도록 지원하여 새로운 데이터에 대한 성능을 향상시킵니다.
- 과적합 감소: 과적합은 모델이 학습 데이터에서는 잘 작동하지만 보이지 않는 데이터에서는 제대로 작동하지 않을 때 발생합니다. 증강은 정규화 기법으로 작동하여 모델이 제한된 원본 데이터 세트에 과적합하는 것을 더 어렵게 만듭니다.
- 견고성 향상: 증강 데이터로 학습된 모델은 일반적으로 조명, 시점, 스케일 또는 부분 오클루전 변화와 같은 입력의 변화에 더 탄력적으로 대응할 수 있습니다.
- 데이터 수집 필요성 감소: 개발자는 더 적은 초기 데이터 세트로 더 나은 결과를 얻을 수 있으므로 데이터 수집 및 라벨링과 관련된 시간과 리소스를 절약할 수 있습니다. 더 많은 모델 훈련 팁은 문서에서 확인하세요.
기술 및 도구
데이터 증강을 구현하는 것은 다양한 라이브러리와 프레임워크를 통해 용이하게 이루어집니다. 컴퓨터 비전 작업의 경우 다음과 같은 도구가 널리 사용됩니다:
Ultralytics 모델은 훈련 중에 몇 가지 효과적인 증강 기법을 내장하고 있습니다. 사용자는 데이터 세트를 관리하고 Ultralytics HUB와 같은 플랫폼을 통해 이러한 기능을 활용할 수 있습니다.
실제 애플리케이션
데이터 증강은 다양한 AI 영역에 널리 적용되고 있습니다:
- 의료 분야의 AI: 스캔에서 종양을 탐지하는 것과 같은 의료 영상 분석에서는 개인정보 보호 문제와 특정 조건의 희귀성으로 인해 데이터 세트가 제한되는 경우가 많습니다. 회전, 스케일링, 밝기 조정과 같은 증강 기술은 다양한 학습 예제를 생성하여 영상 장비나 환자의 위치가 달라져도 모델이 이상 징후를 안정적으로 감지할 수 있도록 도와줍니다. 이를 통해 의료 영상 분석 시스템의 진단 정확도가 향상됩니다.
- 차량용 AI: 자율주행차를 위한 강력한 물체 감지 시스템을 개발하려면 다양한 주행 시나리오를 아우르는 훈련 데이터가 필요합니다. 증강은 다양한 기상 조건(예: 합성 비 또는 안개 추가), 조명 변화(낮, 밤, 새벽/저녁), 장애물(예: 부분적으로 숨겨진 보행자 또는 차량)을 시뮬레이션하여 예측할 수 없는 실제 환경에서 인식 시스템의 안정성을 높입니다.
- 농업 분야의 AI: 작물 질병 감지나 과일 수 세기와 같은 작업에서 증강은 날씨나 시간대, 다양한 성장 단계, 드론이나 지상 로봇의 카메라 각도에 따른 조명 변화를 시뮬레이션하여 보다 강력한 정밀 농업 솔루션을 제공합니다.
- 제조 분야의 AI: 품질 관리에서 증강은 제품 방향, 조명 및 사소한 결함의 변화를 생성하여 생산 라인에서 보다 안정적인 이상 징후 감지를 위한 모델을 학습시킬 수 있습니다.
데이터 증강과 합성 데이터 비교
데이터 증강과 합성 데이터 생성은 모두 학습 데이터 세트를 향상시키는 것을 목표로 하지만 근본적으로 다른 점이 있습니다:
- 데이터 증강: 변환을 통해 기존의 실제 데이터를 수정합니다. 관찰된 데이터 포인트 주변의 분산은 증가하지만 일반적으로 원본 데이터에 나타나지 않는 완전히 새로운 시나리오를 도입하지는 않습니다.
- 합성 데이터: 시뮬레이션, 컴퓨터 그래픽 또는 생성적 적대 신경망(GAN) 또는 확산 모델과 같은 생성 모델을 사용하여 완전히 새로운 인공 데이터를 처음부터 생성하는 것을 포함합니다. 합성 데이터는 현실 세계에서 포착하기 어렵거나 드문 시나리오를 표현할 수 있으며, 증강으로 해결할 수 없는 공백을 메울 수 있습니다.
실제로 데이터 증강은 충실도가 높은 합성 데이터를 생성하는 것보다 구현하기 쉽고 계산 비용도 저렴한 경우가 많습니다. 두 기술 모두 가치가 있으며, 때로는 두 기술을 함께 사용하여 까다로운 AI 애플리케이션을 위한 매우 다양하고 강력한 학습 데이터 세트를 만들기도 합니다.