ML.NET 머신러닝 작업
기계 학습 작업는 둘 모두를 기반으로 한 예측 또는 유추 유형입니다.
- 문제 또는 질문
- 사용 가능한 데이터
예를 들어 분류 태스크는 데이터를 범주에 할당하고 클러스터링 태스크는 유사성에 따라 데이터를 그룹화합니다.
기계 학습 작업은 명시적으로 프로그래밍되지 않고 데이터의 패턴을 사용합니다.
이 문서에서는 ML.NET 사용할 수 있는 다양한 기계 학습 작업과 몇 가지 일반적인 사용 사례에 대해 설명합니다.
시나리오에 적합한 작업을 결정했으면 모델을 학습시키는 데 가장 적합한 알고리즘을 선택해야 합니다. 사용 가능한 알고리즘은 각 작업에 대한 섹션에 나열됩니다.
분류 작업
이진 분류
이진 분류는 데이터 인스턴스가 속한 정확히 두 개의 클래스(범주)
- 트위터 댓글의 감정을 긍정적이거나 부정적으로 이해하기.
- 환자에게 특정 질병이 있는지 여부를 진단합니다.
- 전자 메일을 스팸으로 표시하기로 결정합니다.
- 사진에 개나 과일과 같은 특정 항목이 포함되어 있는지 확인합니다.
자세한 내용은 Wikipedia의 이진 분류 문서를 참조하세요.
이진 분류 트레이너
다음 알고리즘을 사용하여 이진 분류 모델을 학습시킬 수 있습니다.
- AveragedPerceptronTrainer
- SdcaLogisticRegressionBinaryTrainer
- SdcaNonCalibratedBinaryTrainer
- SymbolicSgdLogisticRegressionBinaryTrainer
- LbfgsLogisticRegressionBinaryTrainer
- LightGbmBinaryTrainer
- FastTreeBinaryTrainer
- FastForestBinaryTrainer
- GamBinaryTrainer
- FieldAwareFactorizationMachineTrainer
- PriorTrainer
- LinearSvmTrainer
이진 분류 입력 및 출력
이진 분류에서 최상의 결과를 얻으려면 학습 데이터가 동일한 수로 균형을 이루도록 하는 것이 중요합니다(즉, 양의 학습 데이터와 음의 학습 데이터가 동일한 수로). 누락된 값은 학습 전에 처리해야 합니다.
입력 레이블 열 데이터는 반드시 Boolean이어야 합니다. 입력 특징 열의 데이터는 Single크기의 고정 벡터여야 합니다.
이러한 트레이너는 다음 열을 출력합니다.
출력 열 이름 | 열 형식 | 묘사 |
---|---|---|
Score |
Single | 모델이 계산한 원시 점수입니다. |
PredictedLabel |
Boolean | 점수의 부호에 따라 예측된 레이블입니다. 음수 점수는 false 에 매핑되고 양수 점수는 true 에 매핑됩니다. |
다중 클래스 분류
다중 클래스 분류는 데이터 인스턴스를 세 개 이상의 클래스(범주) 중 하나로 분류하는 데 사용되는 감독되는 기계 학습 작업입니다. 분류 알고리즘의 입력은 레이블이 지정된 예제 집합입니다. 각 레이블은 일반적으로 텍스트로 시작됩니다. 그런 다음 TermTransform을 통해 실행되어 키(숫자) 형식으로 변환됩니다. 분류 알고리즘의 출력은 레이블이 지정되지 않은 새 인스턴스의 클래스를 예측하는 데 사용할 수 있는 분류자입니다. 다중 클래스 분류 시나리오의 예는 다음과 같습니다.
- 항공편을 "초기", "정시" 또는 "지연"으로 분류합니다.
- 영화 리뷰를 "긍정", "중립" 또는 "부정"으로 이해합니다.
- 예를 들어 호텔 리뷰를 "위치", "가격" 또는 "청결"으로 분류합니다.
자세한 내용은 Wikipedia의 Multiclass 분류 문서를 참조하세요.
메모
one-vs.rest이진 분류 학습자 다중 클래스 데이터 세트에 대해 작동하도록 업그레이드합니다.
다중 클래스 분류 트레이너
다음 학습 알고리즘을 사용하여 다중 클래스 분류 모델을 학습시킬 수 있습니다.
- TextClassificationTrainer
- LightGbmMulticlassTrainer
- SdcaMaximumEntropyMulticlassTrainer
- SdcaNonCalibratedMulticlassTrainer
- LbfgsMaximumEntropyMulticlassTrainer
- NaiveBayesMulticlassTrainer
- OneVersusAllTrainer
- PairwiseCouplingTrainer
다중 클래스 분류 입력 및 출력
입력 레이블 열 데이터는 키와 형식을 따라야 합니다. 특징 열은 고정 크기의 Single벡터여야 합니다.
이 트레이너는 다음을 출력합니다.
출력 이름 | 유형 | 묘사 |
---|---|---|
Score |
Single 벡터 | 모든 클래스의 점수입니다. 값이 높을수록 연결된 클래스에 속할 확률이 높아집니다.
i -th 요소의 값이 가장 큰 경우 예측 레이블 인덱스는 i . 주의: i 는 0부터 시작하는 인덱스입니다. |
PredictedLabel |
키 | 예측된 레이블의 인덱스입니다. 값이 i 일 경우 실제 레이블은 키 값 입력 레이블 유형의 i 번째 범주입니다. |
텍스트 분류
텍스트 분류는 특히 원시 텍스트를 다루는 다중 클래스 분류의 하위 범주입니다. 텍스트가 발생하는 컨텍스트 및 의미 체계를 고려해야 하기 때문에 텍스트는 흥미로운 문제를 제기합니다. 따라서 의미와 컨텍스트를 인코딩하기가 어려울 수 있습니다.
딥 러닝 모델은 자연어 문제를 해결하는 유망한 기술로 부상했습니다. 더 구체적으로 말하자면, 변압기 알려진 신경망 유형은 텍스트 분류, 번역, 요약 및 질문 답변과 같은 자연어 문제를 해결하는 주요 방법이 되었습니다. 자연어 작업에 대한 몇 가지 인기 있는 변환기 아키텍처는 다음과 같습니다.
- 트랜스포머의 양방향 인코더 표현 (BERT)
- 강력하게 최적화된 BERT 사전 학습 방법(RoBERTa)
- GPT(생성 사전 훈련된 트랜스포머)
ML.NET 텍스트 분류 API는 TorchSharp의해 구동됩니다. TorchSharp는 PyTorch를 구동하는 라이브러리에 대한 액세스를 제공하는 .NET 라이브러리입니다. TorchSharp에는 .NET에서 신경망을 처음부터 학습하기 위한 구성 요소를 포함합니다. ML.NET TorchSharp의 복잡성을 시나리오 수준으로 추상화합니다. 미리 학습된 NAS-BERT 모델 버전을 사용하여 데이터로 세부 조정을 수행합니다.
텍스트 분류 예제는 텍스트 분류 API시작하기를 참조하세요.
이미지 분류
이미지 분류는 이미지의 클래스(범주)를 예측하는 데 사용되는 감독되는 기계 학습 작업입니다. 입력은 레이블이 지정된 예제 집합입니다. 각 레이블은 일반적으로 텍스트로 시작됩니다. 그런 다음 TermTransform을 통해 실행되어 키(숫자) 형식으로 변환됩니다. 이미지 분류 알고리즘의 출력은 새 이미지의 클래스를 예측하는 데 사용할 수 있는 분류자입니다. 이미지 분류 작업은 다중 클래스 분류의 유형입니다. 이미지 분류 시나리오의 예는 다음과 같습니다.
- 개 품종을 "시베리아 허스키", "골든 리트리버", "푸들" 등으로 결정합니다.
- 제조 제품에 결함이 있는지 여부를 확인합니다.
- "장미", "해바라기" 등과 같은 꽃의 유형을 파악합니다.
이미지 분류 학습기
다음 학습 알고리즘을 사용하여 이미지 분류 모델을 학습시킬 수 있습니다.
이미지 분류 입력 및 출력
입력 레이블 열 데이터는 키와 형식을 따라야 합니다. 기능 열은 가변 크기의 Byte벡터여야 합니다.
이 트레이너는 다음 열을 출력합니다.
출력 이름 | 유형 | 묘사 |
---|---|---|
Score |
Single | 모든 클래스의 점수입니다. 값이 높을수록 연결된 클래스에 속할 확률이 높아집니다.
i -th 요소의 값이 가장 큰 경우 예측 레이블 인덱스는 i . (i 0부터 시작하는 인덱스입니다.) |
PredictedLabel |
키 유형 | 예측된 레이블의 인덱스입니다. 값이 i 일 경우 실제 레이블은 키 값 입력 레이블 유형의 i 번째 범주입니다. |
회귀
회귀는 일련의 관련 기능에서 레이블의 값을 예측하는 데 사용되는 감독되는 기계 학습 작업입니다. 레이블은 실제 값일 수 있으며 분류 작업과 같이 한정된 값 집합에서 온 것이 아닙니다. 회귀 알고리즘은 관련 기능에 대한 레이블의 종속성을 모델링하여 기능 값이 다양할 때 레이블이 어떻게 변경되는지 결정합니다. 회귀 알고리즘의 입력은 알려진 값의 레이블이 있는 예제 집합입니다. 회귀 알고리즘의 출력은 새로운 입력 기능 집합에 대한 레이블 값을 예측하는 데 사용할 수 있는 함수입니다. 회귀 시나리오의 예는 다음과 같습니다.
- 침실 수, 위치 또는 크기와 같은 주택 특성을 기반으로 주택 가격을 예측합니다.
- 과거 데이터 및 현재 시장 동향에 따라 향후 주가 예측
- 광고 예산을 기준으로 제품의 판매 예측
- 발행물에서 관련 문서 찾기(문장 유사성).
회귀 트레이너
다음 알고리즘을 사용하여 회귀 모델을 학습시킬 수 있습니다.
- SentenceSimilarityTrainer
- LbfgsPoissonRegressionTrainer
- LightGbmRegressionTrainer
- SdcaRegressionTrainer
- OlsTrainer
- OnlineGradientDescentTrainer
- FastTreeRegressionTrainer
- FastTreeTweedieTrainer
- FastForestRegressionTrainer
- GamRegressionTrainer
회귀 입력 및 출력
입력 레이블 열 데이터는 반드시 Single이어야 합니다.
이 작업의 트레이너는 다음을 출력합니다.
출력 이름 | 유형 | 묘사 |
---|---|---|
Score |
Single | 모델에서 예측한 원시 점수 |
클러스터링
클러스터링(clustering)은 데이터 인스턴스를 유사한 특성을 포함하는 클러스터로 그룹화하는 데 사용되는 감독되지 않는 기계 학습 작업입니다. 클러스터링을 사용하여 검색 또는 간단한 관찰을 통해 논리적으로 파생되지 않을 수 있는 데이터 세트의 관계를 식별할 수도 있습니다. 클러스터링 알고리즘의 입력 및 출력은 선택한 방법에 따라 달라집니다. 분포, 중심, 연결 또는 밀도 기반 접근 방식을 사용할 수 있습니다. ML.NET 현재 K-평균 클러스터링을 사용하는 중심 기반 접근 방식을 지원합니다. 클러스터링 시나리오의 예는 다음과 같습니다.
- 호텔 선택의 습관과 특징에 따라 호텔 손님의 세그먼트를 이해합니다.
- 대상 광고 캠페인을 빌드하는 데 도움이 되는 고객 세그먼트 및 인구 통계를 식별합니다.
- 제조 메트릭을 기반으로 인벤토리 분류
클러스터링 트레이너
다음 알고리즘을 사용하여 클러스터링 모델을 학습시킬 수 있습니다.
입력 및 출력 클러스터링
입력 기능 데이터는 Single이어야 합니다. 레이블이 필요하지 않습니다.
이 트레이너는 다음을 출력합니다.
출력 이름 | 유형 | 묘사 |
---|---|---|
Score |
Single 벡터 | 주어진 데이터 포인트가 모든 클러스터 중심점까지의 거리입니다. |
PredictedLabel |
키 유형 | 모델에서 예측한 가장 가까운 클러스터의 인덱스입니다. |
이상 탐지
변칙 검색 작업은 PCA(주 구성 요소 분석)를 사용하여 변칙 검색 모델을 만듭니다. PCA 기반 변칙 검색은 유효한 트랜잭션과 같이 한 클래스에서 학습 데이터를 쉽게 얻을 수 있지만 대상 변칙의 충분한 샘플을 얻기 어려운 시나리오에서 모델을 빌드하는 데 도움이 됩니다.
기계 학습에서 확립된 기술인 PCA는 데이터의 내부 구조를 표시하고 데이터의 분산을 설명하기 때문에 예비 데이터 분석에 자주 사용됩니다. PCA는 여러 변수가 포함된 데이터를 분석하여 작동합니다. 변수 간의 상관 관계를 찾고 결과의 차이를 가장 잘 포착하는 값의 조합을 결정합니다. 이러한 결합된 기능 값은 주 구성 요소라는 더 컴팩트한 기능 공간을 만드는 데 사용됩니다.
변칙 검색은 기계 학습에서 중요한 많은 작업을 포함합니다.
- 사기성일 수 있는 트랜잭션 식별
- 네트워크 침입이 발생했음을 나타내는 학습 패턴입니다.
- 환자의 비정상적인 클러스터 찾기.
- 시스템에 입력된 값을 확인합니다.
변칙은 정의상 드문 이벤트이므로 모델링에 사용할 대표적인 데이터 샘플을 수집하기 어려울 수 있습니다. 이 범주에 포함된 알고리즘은 특히 불균형 데이터 집합을 사용하여 모델을 빌드하고 학습하는 핵심 과제를 해결하도록 설계되었습니다.
이상 탐지 훈련기
다음 알고리즘을 사용하여 변칙 검색 모델을 학습시킬 수 있습니다.
변칙 탐지 입력 및 출력
입력 기능은 Single고정 크기 벡터여야 합니다.
이 트레이너는 다음을 출력합니다.
출력 이름 | 유형 | 묘사 |
---|---|---|
Score |
Single | 이상 탐지 모델에서 계산한 음수가 아니고 제한 없는 점수입니다. |
PredictedLabel |
Boolean | 입력이 변칙이라면 true , 그렇지 않다면 false . |
순위
랭킹 작업은 레이블이 지정된 예제 집합에서 랭커를 만듭니다. 이 예제 집합은 지정된 조건으로 채점할 수 있는 인스턴스 그룹으로 구성됩니다. 순위 레이블은 각 인스턴스에 대해 { 0, 1, 2, 3, 4}입니다. 순위를 매기는 시스템은 각 인스턴스에 대한 점수를 모르는 새로운 인스턴스 그룹의 순위를 매기도록 학습됩니다. ML.NET 순위 학습자는 기계 학습 순위을 기반으로 합니다.
순위 학습 알고리즘
다음 알고리즘을 사용하여 순위 모델을 학습시킬 수 있습니다.
입력 및 출력 순위 지정
입력 레이블 데이터 유형은 키 타입 또는 Single여야 합니다. 레이블 값은 관련성을 결정하며, 값이 높을수록 관련성이 높음을 나타냅니다. 레이블이 키 형식인 경우 키 인덱스는 관련성 값입니다. 여기서 가장 작은 인덱스는 관련성이 가장 적습니다. 레이블이 Single경우 값이 클수록 관련성이 높아집니다.
기능 데이터는 Single의 고정 크기 벡터여야 하며, 입력 행 그룹 열은 키 유형이어야 합니다.
이 트레이너는 다음을 출력합니다.
출력 이름 | 유형 | 묘사 |
---|---|---|
Score |
Single | 모델에서 예측을 판단하기 위해 계산한 무제한의 점수입니다. |
추천
권장 작업에서는 권장 제품 또는 서비스 목록을 생성할 수 있습니다. ML.NET은 카탈로그에 과거 제품 등급 데이터가 있을 때 권장 사항을 위해 행렬 분해(MF), 즉 협업 필터링 알고리즘을 사용합니다. 예를 들어 사용자에 대한 기록 영화 등급 데이터가 있으며 다음에 시청할 가능성이 있는 다른 영화를 추천하려고 합니다.
권장 사항 학습 알고리즘
다음 알고리즘을 사용하여 권장 사항 모델을 학습시킬 수 있습니다.
예측
예측 작업은 과거 시계열 데이터를 사용하여 향후 동작에 대한 예측을 수행합니다. 예측에 적용되는 시나리오에는 일기 예보, 계절별 판매 예측 및 예측 유지 관리가 포함됩니다.
예측 강사
다음 알고리즘을 사용하여 예측 모델을 학습시킬 수 있습니다.
객체 탐지
개체 검색은 이미지의 클래스(범주)를 예측하는 데 사용되지만 해당 범주가 이미지 내에 있는 위치에 대한 경계 상자를 제공하는 감독되는 기계 학습 작업입니다. 개체 감지는 이미지에서 단일 개체를 분류하는 대신 이미지 내에서 여러 개체를 검색할 수 있습니다. 개체 검색의 예는 다음과 같습니다.
- 도로 이미지에서 자동차, 표지판 또는 사람 감지
- 제품 이미지의 결함 감지
- X선 이미지에서 주목할 영역 감지
개체 감지 모델 학습은 현재 Azure Machine Learning을 사용하는 Model Builder만 사용할 수 있습니다.
.NET