자동화된 Machine Learning(AutoML)이란?
적용 대상: Python SDK azure-ai-ml v2(현재)
자동화된 Machine Learning(자동화된 ML 또는 AutoML이라고도 함)은 시간 소모적이고 반복적인 기계 학습 모델 개발 작업을 자동화하는 프로세스입니다. 데이터 과학자, 분석가 및 개발자는 모델 품질을 유지하면서 확장성, 효율성 및 생산성이 높은 ML 모델을 빌드할 수 있습니다. Azure Machine Learning에서 자동화된 ML은 Microsoft Research 부문의 혁신을 기반으로 합니다.
- 코드 환경이 있는 고객의 경우 Azure Machine Learning Python SDK를 설치합니다. 자습서: AutoML 및 Python을 사용하여 개체 검색 모델(미리 보기) 학습 시작하기
AutoML의 작동 방식
Azure Machine Learning은 학습 중에 다양한 알고리즘과 매개 변수를 시도하는 많은 파이프라인을 동시에 만듭니다. 이 서비스는 기능 선택 항목과 쌍을 이루는 ML 알고리즘을 반복하며, 각 반복에서 학습 점수가 있는 모델이 생성됩니다. 최적화할 메트릭의 점수가 높을수록 모델이 데이터에 더 "적합한" 것으로 간주됩니다. 실험에 정의된 종료 조건에 도달하면 중지됩니다.
Azure Machine Learning을 사용하면 다음 단계를 사용하여 자동화된 ML 학습 실험을 설계하고 실행할 수 있습니다.
해결할 ML 문제 식별: 분류, 예측, 회귀, 컴퓨터 비전 또는 NLP
코드 우선 환경을 원하는지 코드 없는 스튜디오 웹 환경을 원하는지 선택: 코드 우선 환경을 선호하는 사용자는 Azure Machine Learning SDKv2 또는 Azure Machine Learning CLIv2를 사용할 수 있습니다. 자습서: AutoML 및 Python을 사용하여 개체 검색 모델 학습 시작하기 제한된 환경 또는 코드 없는 환경을 선호하는 사용자는 https://ml.azure.com의 Azure Machine Learning 스튜디오에서 웹 인터페이스를 사용할 수 있습니다. 자습서: Azure Machine Learning에서 자동화된 ML을 사용하여 분류 모델 만들기 시작하기
레이블이 지정된 학습 데이터의 원본 지정: 다양한 방법으로 데이터를 Azure Machine Learning으로 가져올 수 있습니다.
자동화된 Machine Learning 매개 변수 구성: 여러 모델에 대한 반복 횟수, 서로 다른 모델, 하이퍼 매개 변수 설정, 고급 전처리/기능화 및 가장 적합한 모델을 결정할 때 살펴볼 메트릭을 결정하는 매개 변수입니다.
학습 작업을 제출합니다.
결과를 검토합니다.
다음 다이어그램에서는 이 프로세스를 보여 줍니다.
작업 중에 수집된 메트릭을 포함한 기록된 작업 정보를 검사할 수도 있습니다. 학습 작업에서는 모델 및 데이터 전처리가 포함된 Python 직렬화 개체(.pkl
파일)가 생성됩니다.
모델 빌드가 자동화되는 동안 중요하거나 관련된 기능이 생성된 모델에 있는 상태를 알아볼 수도 있습니다.
AutoML을 사용하는 경우: 분류, 회귀, 예측, 컴퓨터 비전 및 NLP
Azure Machine Learning에서 지정한 대상 메트릭을 사용하여 모델을 학습시키고 튜닝하도록 하려면 자동화된 ML을 적용합니다. 자동화된 ML은 기계 학습 모델 개발 프로세스를 보편화하고, 데이터 과학 전문 지식과 관계없이 사용자의 역량을 강화하여 모든 문제에 대해 엔드투엔드 기계 학습 파이프라인을 식별합니다.
업계 전반의 ML 전문가 및 개발자는 자동화된 ML을 사용하여 다음을 수행할 수 있습니다.
- 광범위한 프로그래밍 지식 없이 ML 솔루션 구현
- 시간 및 리소스 절약
- 데이터 과학 모범 사례 적용
- 신속한 문제 해결 제공
분류
분류는 모델에서 학습 데이터를 사용하여 학습하고, 이러한 학습을 새로운 데이터에 적용하는 감독 학습의 한 유형입니다. Azure Machine Learning은 특히 이러한 작업에 적합한 기능화를 제공합니다(예: 분류를 위한 심층 신경망 텍스트 피처라이저(featurizer)). 기능화 옵션에 대한 자세한 내용은 데이터 기능화를 참조하세요. 지원되는 알고리즘에서 AutoML이 지원하는 알고리즘 목록을 찾을 수도 있습니다.
분류 모델의 주요 목표는 학습 데이터로부터의 학습을 기반으로 하여 새 데이터가 분류될 범주를 예측하는 것입니다. 일반적인 분류 예로 사기 탐지, 필기 인식 및 개체 검색이 있습니다.
이 Python Notebook: Bank Marketing에서 분류 및 자동화된 기계 학습의 예제를 참조하세요.
회귀
분류와 마찬가지로 회귀 작업도 일반적인 지도 학습 작업입니다. Azure Machine Learning은 회귀 문제와 관련된 기능화를 제공합니다. 기능화 옵션에 대해 자세히 알아보세요. 지원되는 알고리즘에서 AutoML이 지원하는 알고리즘 목록을 찾을 수도 있습니다.
범주별 예측 출력 값인 분류와는 달리 회귀 모델은 독립 예측 변수를 기반으로 하여 숫자 출력 값을 예측합니다. 회귀 분석이 목표는 한 변수가 다른 변수에 미치는 영향을 추정하여 이러한 독립 예측 변수 간의 관계를 설정하는 데 도움을 주는 것입니다. 예를 들어, 모델은 연비, 안전 등급과 같은 기능을 기반으로 자동차 가격을 예측할 수 있습니다.
다음 Python Notebook: 하드웨어 성능에서 예측을 위한 회귀 및 자동화된 Machine Learning의 예를 참조하세요.
시계열 예측
예측 빌드는 수익, 재고, 판매 또는 고객 수요에 관계없이 모든 비즈니스의 필수적인 부분입니다. 자동화된 ML을 사용하여 기술과 방법을 결합하고 추천되는 고품질 시계열 예측을 구현할 수 있습니다. 지원되는 알고리즘에서 AutoML이 지원하는 알고리즘 목록을 찾을 수 있습니다.
자동화된 시계열 실험은 다변량 회귀 분석 문제로 처리됩니다. 이전 시계열 값이 "피벗"되어 다른 예측 변수와 함께 회귀 변수의 더 많은 차원이 됩니다. 이 방식은 클래식 시계열 방법과 달리 학습 중에 여러 컨텍스트 변수 및 해당 변수 간의 관계를 자연스럽게 통합할 수 있는 장점이 있습니다. 자동화된 ML은 데이터 세트 및 예측 구간의 모든 항목에 대해 종종 내부적으로 분기된 단일 모델을 학습시킵니다. 따라서 모델 매개 변수를 예상하는 데 더 많은 데이터를 사용할 수 있으며 보이지 않는 계열로 일반화하는 것이 가능해집니다.
고급 예측 구성은 다음과 같습니다.
- 휴일 검색 및 기능화
- 시계열 및 DNN 학습자(Auto-ARIMA, Prophet, ForecastTCN)
- 그룹화를 통해 많은 모델 지원
- 이동 원본 교차 유효성 검사
- 구성 가능한 지연
- 롤링 기간 집계 기능
이 Python Notebook: 에너지 수요에서 예측 및 자동화된 기계 학습의 예를 참조하세요.
컴퓨터 비전
컴퓨터 비전 작업에 대한 지원을 통해 이미지 분류 및 개체 검색 등의 시나리오에서 이미지 데이터에 대해 학습된 모델을 쉽게 생성할 수 있습니다.
이 기능을 사용하면 다음을 수행할 수 있습니다.
- Azure Machine Learning 데이터 레이블 지정과 원활하게 통합합니다.
- 레이블이 지정된 데이터를 사용하여 이미지 모델을 생성합니다.
- 모델 알고리즘을 지정하고 하이퍼 매개 변수를 튜닝하여 모델 성능을 최적화합니다.
- 결과 모델을 Azure Machine Learning에서 웹 서비스로 다운로드하거나 배포합니다.
- Azure Machine Learning MLOps, ML 파이프라인 기능을 활용하여 대규모로 운용합니다.
비전 작업을 위한 AutoML 모델 작성은 Azure Machine Learning Python SDK를 통해 지원됩니다. 결과 실험 작업, 모델 및 출력은 Azure Machine Learning 스튜디오 UI에서 액세스할 수 있습니다.
컴퓨터 비전 모델을 위한 AutoML 학습을 설정하는 방법을 알아봅니다.
이미지 원본: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf
이미지용 자동화된 ML은 다음과 같은 컴퓨터 비전 작업을 지원합니다.
Task | 설명 |
---|---|
다중 클래스 이미지 분류 | 이미지가 클래스 집합에서 단일 레이블만으로 분류되는 작업입니다. 예를 들어 각 이미지는 '고양이' 또는 '개' 또는 '오리'의 이미지로 분류됩니다. |
다중 레이블 이미지 분류 | 이미지에 레이블 집합 중 하나 이상의 레이블이 있을 수 있는 작업입니다. 예를 들어, 이미지에 '고양이'와 '개'라는 레이블이 모두 지정될 수 있습니다. |
개체 감지 | 이미지의 개체를 식별하고 경계 상자를 사용하여 각 개체를 찾는 작업입니다. 예를 들어 이미지 안의 모든 개와 고양이를 찾고 각 개체 주위에 경계 상자를 그립니다. |
인스턴스 구분 | 픽셀 수준에서 이미지의 개체를 식별하는 작업으로, 이미지의 각 개체 주위에 다각형을 그립니다. |
NLP: 자연어 처리
자동화된 ML에서 NLP(자연어 처리) 작업에 대한 지원을 통해 텍스트 분류 및 명명된 엔터티 인식 시나리오를 위해 텍스트 데이터에 대해 학습된 모델을 쉽게 생성할 수 있습니다. 자동화된 ML 학습된 NLP 모델 작성은 Azure Machine Learning Python SDK를 통해 지원됩니다. 결과 실험 작업, 모델 및 출력은 Azure Machine Learning 스튜디오 UI에서 액세스할 수 있습니다.
NLP 기능은 다음을 지원합니다.
- 미리 학습된 최신 BERT 모델을 사용하여 엔드투엔드 심층 신경망 NLP 학습
- Azure Machine Learning 데이터 레이블 지정과 원활한 통합
- 레이블이 지정된 데이터를 사용하여 NLP 모델 생성
- 104개 언어를 사용하는 다국어 지원
- Horovod를 사용하여 배포된 학습
NLP 모델을 위한 AutoML 학습을 설정하는 방법을 알아봅니다.
학습, 유효성 검사 및 테스트 데이터
자동화된 ML을 사용하여 ML 모델을 학습시키기 위한 학습 데이터를 제공하고, 수행할 모델 유효성 검사 유형을 지정할 수 있습니다. 자동화된 ML은 학습의 일부로 모델 유효성 검사를 수행합니다. 즉, 자동화된 ML은 유효성 검사 데이터를 사용하여 적용된 알고리즘에 따라 모델 하이퍼 매개 변수를 튜닝하고 학습 데이터에 가장 적합한 조합을 찾습니다. 그러나 튜닝을 반복할 때마다 동일한 유효성 검사 데이터가 사용되면 모델이 계속 개선되어 유효성 검사 데이터에 맞추기 때문에 모델 평가 바이어스가 도입됩니다.
이러한 바이어스가 최종 권장 모델에 적용되지 않는지 확인하기 위해 자동화된 ML은 테스트 데이터를 사용하여 실험이 끝날 때 자동화된 ML이 권장하는 최종 모델을 평가할 수 있도록 지원합니다. AutoML 실험 구성의 일부로 테스트 데이터를 제공하는 경우 이 권장 모델은 기본적으로 실험이 끝날 때 테스트됩니다(미리 보기).
Important
테스트 데이터 세트를 사용한 모델 테스트를 통해 생성된 모델을 평가하는 기능은 미리 보기입니다. 이 기능은 실험용 미리 보기 기능이며 언제든지 변경될 수 있습니다.
SDK 또는 Azure Machine Learning 스튜디오를 통해 테스트 데이터를 사용하도록 AutoML 실험을 구성(미리 보기)하는 방법을 알아봅니다.
기능 엔지니어링
기능 엔지니어링은 데이터에 대한 도메인 정보를 사용하여 ML 알고리즘의 기능을 개선하는 데 도움이 되는 기능을 만드는 프로세스입니다. Azure Machine Learning에서 확장 및 표준화 기술이 기능 엔지니어링을 용이하게 하기 위해 적용됩니다. 이러한 기술 및 기능 엔지니어링을 통칭하여 기능화라고 합니다.
자동화된 Machine Learning 실험의 경우 기능화가 자동으로 적용되지만 데이터에 따라 사용자 지정할 수도 있습니다. 포함된 기능화(SDK v1)와 AutoML이 모델의 과잉 맞춤 및 불균형 데이터를 방지하는 방법에 대해 자세히 알아봅니다.
참고 항목
자동화된 기계 학습 기능화 단계(예: 기능 정규화, 누락된 데이터 처리, 텍스트를 숫자로 변환)는 기본 모델의 일부가 됩니다. 예측에 모델을 사용하는 경우 학습 중에 적용되는 동일한 기능화 단계가 입력 데이터에 자동으로 적용됩니다.
기능화 사용자 지정
인코딩 및 변환과 같은 추가 기능 엔지니어링 기술을 사용할 수도 있습니다.
다음을 사용하여 이 설정을 사용하도록 설정합니다.
Azure Machine Learning Studio: 이러한 단계를 사용하여 추가 구성 보기 섹션에서 자동 기능화를 사용하도록 설정합니다.
Python SDK: AutoML 작업 개체에서 기능화를 지정합니다. 기능화 사용에 대해 자세히 알아봅니다.
앙상블 모델
자동화된 Machine Learning은 기본적으로 사용하도록 설정되는 앙상블 모델을 지원합니다. 앙상블 학습은 단일 모델을 사용하는 대신 여러 모델을 결합하여 기계 학습 결과와 예측 성능을 향상시킵니다. 앙상블 반복은 작업의 최종 반복으로 나타납니다. 자동화된 Machine Learning은 모델 결합을 위해 투표 및 스택 앙상블 방법을 모두 사용합니다.
- 투표: 예측된 클래스 확률(분류 작업의 경우) 또는 예측된 회귀 목표(회귀 작업의 경우)의 가중 평균을 기반으로 하여 예측합니다.
- 스택: 다른 형식의 모델을 결합하고 개별 모델의 출력을 기반으로 하여 메타 모델을 학습시킵니다. 현재 기본 메타 모델은 분류 작업의 경우 LogisticRegression이고 회귀/예측 작업의 경우 ElasticNet입니다.
정렬된 앙상블 초기화를 사용하는 Caruana 앙상블 선택 알고리즘은 앙상블 내에서 사용할 모델을 결정하는 데 사용됩니다. 높은 수준에서 이 알고리즘은 개별 점수가 가장 높은 최대 5개의 모델을 사용하여 앙상블을 초기화하고, 초기 앙상블 저하를 방지하기 위해 이러한 모델이 가장 높은 점수의 5% 임계값 내에 있는지 확인합니다. 그런 다음, 각 앙상블 반복마다 새 모델이 기존 앙상블에 추가되고 결과 점수가 계산됩니다. 새 모델에서 기존 앙상블 점수가 향상되면 새 모델을 포함하도록 앙상블이 업데이트됩니다.
자동화된 Machine Learning에서 기본 앙상블 설정을 변경하는 방법은 AutoML 패키지를 참조하세요.
AutoML 및 ONNX
Azure Machine Learning을 사용하면 자동화된 ML을 사용하여 Python 모델을 빌드하고 ONNX 형식으로 변환할 수 있습니다. 모델이 ONNX 형식이 되면 다양한 플랫폼 및 디바이스에서 실행할 수 있습니다. ONNX를 사용하여 ML 모델을 가속화하는 방법에 대해 자세히 알아보세요.
이 Jupyter Notebook 예제에서 ONNX 형식으로 변환하는 방법을 참조하세요. ONNX에서 지원되는 알고리즘에 대해 알아보세요.
또한 ONNX 런타임은 C#을 지원하므로 REST 엔드포인트에서 도입하는 네트워크 대기 시간 또는 다시 코딩 없이도 C# 앱에서 자동으로 빌드되는 모델을 사용할 수 있습니다. ML.NET을 사용하여 .NET 애플리케이션에서 AutoML ONNX 모델 사용 및 ONNX 런타임 C# API를 사용하여 ONNX 모델 추론에 대해 자세히 알아봅니다.
다음 단계
AutoML로 시작하고 실행할 수 있는 여러 가지 리소스가 있습니다.
자습서/방법
자습서는 AutoML 시나리오의 엔드투엔드 소개 예제입니다.
코드를 처음 사용할 경우 자습서: AutoML 및 Python을 사용하여 개체 감지 모델 학습을 따르세요.
코드가 적거나 없는 환경은 가이드: Azure Machine Learning 스튜디오에서 코드 없는 AutoML을 사용하여 분류 모델 학습을 참조하세요.
방법 문서는 자동화된 ML에서 제공하는 기능에 대해 자세히 설명합니다. 예를 들면 다음과 같습니다.
자동 학습 실험 설정 구성
Python을 사용하여 컴퓨터 비전 모델을 학습시키는 방법을 알아봅니다.
자동화된 ML 모델(SDK v1)에서 생성된 코드를 보는 방법을 알아봅니다.
Jupyter Notebook 샘플
자동화된 기계 학습 샘플에 대한 GitHub Notebook 리포지토리에서 자세한 코드 예제 및 사용 사례를 검토합니다.
Python SDK 참조
AutoML 작업 클래스 참조 설명서를 사용하여 SDK 디자인 패턴 및 클래스 사양의 전문 지식을 활용합니다.
참고 항목
자동화된 기계 학습은 다른 Microsoft 솔루션(예: ML.NET, HDInsight, Power BI 및 SQL Server)에서도 사용할 수 있습니다.