이번 포스팅에서는 합성 데이터가 필요한 이유에 대해서 알아보겠습니다. 머신러닝 모델을 훈련하려면 데이터가 필요합니다.
데이터 과학 작업은 일반적으로 미리 라벨이 붙은 잘 정제된 데이터 세트가 있는 Kaggle 대회가 아닙니다.
때로는 자신의 데이터를 수집하고 정리해야 할 때도 있습니다. 데이터를 수집하고 라벨을 지정하는 이러한 프로세스는 시간이 많이 걸리고, 번거롭고, 비용이 많이 들고, 부정확하며 때로는 위험할 수 있습니다.
게다가 이 과정이 끝나면 질, 다양성(클래스 불균형 등), 양 측면에서 꼭 원하는 데이터가 아닌 데이터가 나올 수도 있습니다. 다음은 실제 데이터로 작업할 때 발생할 수 있는 일반적인 문제입니다.
- 실제 데이터 수집 및 라벨링은 확장 가능하지 않습니다.
- 실제 데이터에 수작업으로 레이블을 지정하는 것이 때로는 불가능할 수 있습니다.
- 실제 데이터에는 개인 정보 보호 및 안전 문제가 있습니다.
- 실제 데이터는 프로그래밍할 수 없습니다.
- 실제 데이터로만 훈련된 모델은 성능이 충분하지 않습니다(예: 느린 개발 속도).
다행히도 이와 같은 문제는 합성 데이터를 통해 해결할 수 있습니다. 합성 데이터는 실제 데이터를 기반으로 생성된 인공 데이터로, AI 및 머신러닝 알고리즘을 훈련시키는 데 사용됩니다.
이러한 합성 데이터는 다양한 상황에서 유용하게 사용될 수 있습니다. 실제 데이터의 한계를 살펴보고 합성 데이터가 이러한 문제를 극복하고 모델 성능을 향상시키는 데 어떻게 도움이 되는지 설명합니다.
확장 가능하지 않은 실제 데이터 수집 및 Label 지정
소규모 데이터 세트의 경우에는 수작업으로 레이블을 지정할 수 있지만, 많은 복잡한 머신 러닝 작업에는 학습을 위해 방대한 데이터 세트가 필요합니다.
예를 들어, 자율 주행차 애플리케이션을 위해 학습된 모델은 자동차나 드론에 부착된 센서에서 수집한 방대한 양의 데이터가 필요합니다. 이 데이터 수집 프로세스는 느리며 몇 달 또는 몇 년이 걸릴 수 있습니다.
Raw Data가 수집되면 사람이 수동으로 주석을 지정해야 하며, 이 역시 비용이 많이 들고 시간이 많이 걸립니다. 게다가 라벨이 지정된 데이터가 모델의 현재 지식 격차를 알려주는 예가 포함되지 않을 수 있으므로 학습 데이터로 유용할 것이라는 보장도 없습니다.
실제 데이터에 수동으로 라벨을 지정하는 것은 때때로 불가능할 수 있습니다.
인간이 완전히 해석하고 라벨을 지정할 수 없는 데이터가 있습니다. 합성 데이터가 유일한 옵션인 몇 가지 사용 사례는 다음과 같습니다.
- 단일 이미지에서 깊이와 광학 흐름의 정확한 추정
- 인간의 눈에 보이지 않는 레이더 데이터를 활용하는 자율주행 애플리케이션
- 얼굴 인식 시스템 테스트에 사용할 수 있는 딥페이크 생성
실제 데이터에는 개인정보 보호 및 보안 문제가 있습니다.
합성 데이터는 실제 데이터를 쉽게 얻을 수 없는 도메인의 애플리케이션에 매우 유용합니다.
여기에는 일부 유형의 자동차 사고 데이터와 개인 정보 제한이 있는 대부분의 유형의 건강 데이터(예: 전자 건강 기록)가 포함됩니다.
최근 몇 년 동안 의료 연구자들은 ECG 및 PPG 신호를 사용하여 심방 세동(불규칙한 심장 리듬)을 예측하는 데 관심을 가졌습니다.
부정맥 감지기를 개발하는 것은 이러한 신호에 대한 주석이 지루하고 비용이 많이 들기 때문에 어려울 뿐만 아니라 개인 정보 제한으로 인해 어렵습니다.
이것이 이러한 신호를 시뮬레이션하는 연구가 있는 한 가지 이유입니다.
실제 데이터를 수집하는 데 시간과 에너지가 많이 들 뿐만 아니라 실제로 위험할 수 있다는 점을 강조하는 것이 중요합니다.
자율 주행 자동차와 같은 로봇 응용 프로그램의 핵심 문제 중 하나는 기계 학습의 물리적 응용 프로그램이라는 것입니다.
실제 세계에 안전하지 않은 모델을 배포하고 관련 데이터가 부족하여 충돌이 발생할 수는 없습니다.
합성 데이터로 데이터 세트를 증강하면 모델이 이러한 문제를 피하는 데 도움이 될 수 있습니다.
실제 데이터는 프로그래밍할 수 없습니다.
자율 주행차 애플리케이션은 종종 야간 보행자나 도로 중앙을 달리는 자전거 타는 사람과 같이 비교적 “흔하지 않은”(일반적인 주행 조건에 비해) 사건을 처리합니다.
모델은 종종 시나리오를 학습하기 위해 수십만 개 또는 수백만 개의 예가 필요합니다.
한 가지 주요 문제는 수집된 실제 데이터가 품질, 다양성(예: 계층 불균형, 기상 조건, 위치) 및 양 측면에서 원하는 데이터가 아닐 수 있다는 것입니다.
또 다른 문제는 자율 주행 자동차와 로봇의 경우 고정된 데이터 세트와 고정된 벤치마크를 사용하는 기존 머신 러닝 작업과 달리 필요한 데이터를 항상 알 수 없다는 것입니다.
이미지를 체계적으로 또는 무작위로 변경하는 일부 데이터 증강 기술이 도움이 되지만 이러한 기술은 고유한 문제를 일으킬 수 있습니다.
여기서 합성 데이터가 등장합니다. 합성 데이터 생성 API를 사용하면 데이터 세트를 엔지니어링할 수 있습니다.
이러한 API는 로봇을 만들고 현실 세계에서 데이터를 수집하는 데 매우 비용이 많이 들기 때문에 많은 비용을 절약할 수 있습니다.
합성 데이터 세트 생성을 사용하여 데이터를 생성하고 엔지니어링 원리를 파악하는 것이 훨씬 더 좋고 빠릅니다.
실제 데이터로만 학습된 모델은 성능이 충분하지 않습니다(예: 개발 속도가 느림).
산업계에서는 개발과 프로덕션 모두에서 머신 러닝 프로젝트의 실행 가능성 및 성과에 영향을 미치는 요소가 많습니다(예: 데이터 수집, 주석, 모델 학습, 확장, 배포, 모니터링, 모델 재학습 및 개발 속도).
최근 18명의 머신 러닝 엔지니어가 조직과 애플리케이션(예: 자율 주행차, 컴퓨터 하드웨어, 소매, 광고, 추천 시스템 등)에서 일반적인 MLOps 관행과 과제를 이해하는 것을 목표로 하는 인터뷰 연구에 참여했습니다.
연구의 결론 중 하나는 개발 속도의 중요성이었는데, 이는 대략 아이디어를 빠르게 프로토타입화하고 반복하는 능력으로 정의할 수 있습니다.
개발 속도에 영향을 미치는 한 가지 요인은 초기 모델 학습 및 평가를 위한 데이터가 필요하고, 데이터 드리프트, 개념 드리프트 또는 심지어 학습-제공 불균형으로 인해 시간이 지남에 따라 모델 성능이 저하되기 때문에 모델을 자주 재학습해야 한다는 것입니다.
이 연구는 또한 이러한 필요성으로 인해 일부 조직이 라이브 데이터에 자주 라벨을 지정하는 팀을 구성하게 되었다고 보고했습니다. 이는 비용이 많이 들고 시간이 많이 걸리며 조직이 모델을 자주 재교육하는 능력을 제한합니다.
합성 데이터는 기계 학습 수명 주기(위 그림)에서 실제 데이터와 함께 사용되어 조직이 모델의 성능을 더 오래 유지하는 데 도움이 될 수 있는 잠재력을 가지고 있습니다.
결론
합성 데이터 생성은 머신 러닝 워크플로에서 점점 더 일반화되고 있습니다.
사실, Gartner는 2030년까지 합성 데이터가 머신 러닝 모델을 훈련하는 데 실제 데이터보다 훨씬 더 많이 사용될 것이라고 예측합니다.
이에 대한 자세한 내용은 해당 링크를 참고하시기 바랍니다.
감사합니다.