모델 작성기란 무엇이며 어떻게 작동하나요?
ML.NET 모델 작성기는 사용자 지정 기계 학습 모델을 빌드, 학습 및 배포하기 위한 직관적인 그래픽 Visual Studio 확장 기능입니다. AutoML(자동화된 Machine Learning)을 사용하여 여러 기계 학습 알고리즘과 설정을 탐색하고 시나리오에 가장 적합한 것을 찾을 수 있게 해줍니다.
모델 작성기를 사용하기 위해 기계 학습 전문 지식이 필요하지 않습니다. 필요한 것은 약간의 데이터와 해결해야 할 문제뿐입니다. 모델 작성기는 .NET 애플리케이션에 모델을 추가하는 코드를 생성합니다.
Model Builder 프로젝트 만들기
Model Builder를 처음 시작하면 프로젝트 이름을 묻는 메시지가 표시되고 프로젝트 내에 mbconfig
구성 파일이 만들어집니다. mbconfig
파일은 세션을 다시 열 수 있도록 Model Builder에서 사용자가 수행하는 모든 작업을 추적합니다.
학습 후 다음과 같은 3개 파일이 *.mbconfig 파일 아래에 생성됩니다.
- Model.consumption.cs: 이 파일에는 모델 사용을 위해 생성된
Predict
함수뿐만 아니라ModelInput
및ModelOutput
스키마가 포함됩니다. - Model.training.cs: 이 파일에는 모델을 학습시키기 위해 Model Builder에서 선택한 학습 파이프라인(데이터 변환, 알고리즘, 알고리즘 하이퍼 매개 변수)이 포함됩니다. 이 파이프라인을 사용하여 모델을 다시 학습시킬 수 있습니다.
- Model.zip: 이 파일은 학습된 ML.NET 모델을 나타내는 직렬화된 zip 파일입니다.
mbconfig
파일을 만들 때 이름을 입력하라는 메시지가 표시됩니다. 이 이름은 사용, 학습, 모델 파일에 적용됩니다. 이 경우 사용되는 이름은 Model입니다.
시나리오
애플리케이션에 대한 기계 학습 모델을 생성하기 위해 모델 작성기에 다양한 시나리오를 가져올 수 있습니다.
시나리오는 데이터를 사용하여 수행할 예측 유형에 대한 설명입니다. 예시:
- 과거 판매 데이터를 기반으로 향후 제품 판매량 예측
- 고객 리뷰에 따라 감정을 긍정 또는 부정으로 분류
- 은행 트랜잭션이 사기인지 여부를 검색
- 고객 피드백 문제를 회사의 올바른 팀에 전달
각 시나리오는 다음을 포함하는 다른 기계 학습 작업에 매핑됩니다.
작업 | 시나리오 |
---|---|
이진 분류 | 데이터 분류 |
다중 클래스 분류 | 데이터 분류 |
이미지 분류 | 이미지 분류 |
텍스트 분류 | 텍스트 분류 |
회귀 | 값 예측 |
권장 | 권장 |
예측 | 예측 |
예를 들어 감정을 긍정 또는 부정으로 분류하는 시나리오는 이진 분류 작업에 속합니다.
ML.NET에서 지원하는 다양한 ML 작업에 대한 자세한 내용은 ML.NET의 기계 학습 작업을 참조하세요.
어떤 기계 학습 시나리오가 나에게 적합한가요?
모델 작성기에서 시나리오를 선택해야 합니다. 시나리오 형식은 수행하려는 예측의 종류에 따라 다릅니다.
테이블 형식
데이터 분류
분류는 데이터를 범주로 분류하는 데 사용됩니다.
샘플 입력
샘플 출력
SepalLength | SepalWidth | 꽃잎 길이 | 꽃잎 너비 | 종 |
---|---|---|---|---|
5.1 | 3.5 | 1.4 | 0.2 | setosa |
예측 종 |
---|
setosa |
값 예측
회귀 작업에 속하는 값 예측은 숫자를 예측하는 데 사용됩니다.
샘플 입력
샘플 출력
vendor_id | rate_code | passenger_count | trip_time_in_secs | trip_distance | payment_type | fare_amount |
---|---|---|---|---|---|---|
CMT | 1 | 1 | 1271 | 3.8 | CRD | 17.5 |
예측 요금 |
---|
4.5. |
권장
추천 시나리오는 특정 사용자의 좋아요 및 싫어요가 다른 사용자와 얼마나 비슷한지에 따라 해당 사용자에 대한 추천 항목 목록을 예측합니다.
사용자 집합과 "제품" 집합(예: 구매할 항목, 영화, 책 또는 TV 프로그램) 그리고 해당 제품에 대한 사용자 "평점"이 있는 경우 추천 시나리오를 사용할 수 있습니다.
샘플 입력
샘플 출력
UserId | ProductId | 등급 |
---|---|---|
1 | 2 | 4.2 |
예측 등급 |
---|
4.5. |
예측
예측 시나리오는 시계열 또는 계절 구성 요소와 함께 기록 데이터를 사용합니다.
예측 시나리오를 사용하여 제품의 수요 또는 판매를 예측할 수 있습니다.
샘플 입력
샘플 출력
Date | SaleQty |
---|---|
1/1/1970 | 1000 |
3일 예보 |
---|
[1000,1001,1002] |
컴퓨터 비전
이미지 분류
이미지 분류는 다른 범주의 이미지를 식별하는 데 사용됩니다. 예를 들어 다른 종류의 지형이나 동물 또는 제조 결함이 있습니다.
이미지 집합이 있고 이미지를 여러 범주로 분류하려는 경우 이미지 분류 시나리오를 사용할 수 있습니다.
샘플 입력
샘플 출력
예측 레이블 |
---|
개 |
개체 감지
개체 검색에서는 이미지에서 엔터티를 찾고 분류하는 데 사용됩니다. 예를 들어 이미지에서 자동차와 사람을 찾고 식별합니다.
이미지에 서로 다른 유형의 개체가 여러 개 포함되어 있는 경우 개체 검색을 사용할 수 있습니다.
샘플 입력
샘플 출력
자연어 처리
텍스트 분류
텍스트 분류는 원시 텍스트 입력을 분류합니다.
문서 또는 메모 집합이 있고 여러 다른 범주로 분류하려는 경우 텍스트 분류 시나리오를 사용할 수 있습니다.
예제 입력
예제 출력
검토 |
---|
이 스테이크가 정말 마음에 들어요! |
데이터 |
---|
양수 |
환경
시나리오에 따라 머신에서 로컬로 또는 Azure의 클라우드에서 기계 학습 모델을 학습할 수 있습니다.
로컬로 학습시키는 경우 컴퓨터 리소스(CPU, 메모리 및 디스크)의 제약 조건 내에서 작업합니다. 클라우드에서 학습시키는 경우에는 특히 대규모 데이터 집합의 시나리오 요구 사항에 맞게 리소스를 확장할 수 있습니다.
시나리오 | 로컬 CPU | 로컬 GPU | Azure |
---|---|---|---|
데이터 분류 | ✔️ | ❌ | ❌ |
값 예측 | ✔️ | ❌ | ❌ |
권장 | ✔️ | ❌ | ❌ |
예측 | ✔️ | ❌ | ❌ |
이미지 분류 | ✔️ | ✔️ | ✔️ |
개체 감지 | ❌ | ❌ | ✔️ |
텍스트 분류 | ✔️ | ✔️ | ❌ |
데이터
시나리오를 선택하면 Model Builder에서 데이터 세트를 제공하라는 메시지가 표시됩니다. 이 데이터는 시나리오에 가장 적합한 모델을 학습, 평가 및 선택하는 데 사용됩니다.
Model Builder는 .tsv, .csv, .txt 및 SQL 데이터베이스 형식의 데이터 세트를 지원합니다. .txt 파일이 있는 경우 ,
, ;
또는 \t
로 열을 구분해야 합니다.
데이터 세트가 이미지로 구성된 경우 지원되는 파일 형식은 .jpg
및 .png
입니다.
자세한 내용은 모델 작성기로 학습 데이터 로드를 참조하세요.
예측할 출력을 선택합니다(레이블).
데이터 세트는 학습 예제의 행과 특성 열을 나열한 표입니다. 각 행에는 다음이 있습니다.
- 레이블(예측하려는 특성)
- 특징(레이블을 예측하기 위한 입력으로 사용되는 특성).
주택 가격 예측 시나리오의 경우 다음과 같은 기능을 사용할 수 있습니다.
- 집의 평방 피트
- 침실과 욕실의 수
- 우편 번호
이 레이블은 평방 피트, 침실, 욕실 값 및 우편 번호 행에 대해 기록한 주택 가격입니다.
예제 데이터 세트
아직 사용자 고유의 데이터가 없는 경우 다음 데이터 세트 중 하나를 사용해 보세요.
시나리오 | 예제 | 데이터 | 레이블 | 기능 |
---|---|---|---|---|
분류 | 판매 변칙 예측 | 제품 판매 데이터 | 제품 판매 | 월 |
웹 사이트 댓글의 감정 예측 | 웹 사이트 주석 데이터 | 레이블(부정적인 감정이 있는 경우 1, 긍정적일 경우 0) | 주석, 연도 | |
사기성 신용 카드 거래 예측 | 신용 카드 데이터 | 클래스(사기일 경우 1, 그렇지 않으면 0) | 수량, V1-V28(익명화된 기능) | |
GitHub 리포지토리에서 문제 유형 예측 | GitHub 문제 데이터 | Area | 제목, 설명 | |
값 예측 | 택시 요금 예측 | 택시 요금 데이터 | 요금 | 운행 시간, 거리 |
이미지 분류 | 꽃의 범주 예측 | 꽃 이미지 | 꽃의 종류: 데이지, 민들레, 장미, 해바라기, 튤립 | 이미지 데이터 자체 |
권장 | 좋아하는 영화 예측 | 영화 평점 | 사용자, 영화 | 등급 |
학습
시나리오, 환경, 데이터 및 레이블을 선택하면 모델 작성기가 모델을 학습시킵니다.
학습이란?
학습은 모델 작성기가 시나리오에 대한 질문에 대답하는 방법을 모델에 알려주는 자동 프로세스입니다. 학습하면 이전에 없었던 입력 데이터로 예측할 수 있습니다. 예를 들어 주택 가격을 예측하고 새 집이 시장에 나온다면 판매 가격을 예측할 수 있습니다.
모델 작성기는 AutoML(자동 기계학습)을 사용하기 때문에 학습 중에 입력하거나 튜닝할 필요가 없습니다.
얼마나 학습해야 하나요?
모델 작성기는 AutoML을 사용하여 여러 모델을 탐색하고 가장 잘 수행하는 모델을 찾습니다.
학습 기간이 길수록 AutoML에서 더 넓은 설정 범위로 더 많은 모델을 탐색할 수 있습니다.
아래 표는 로컬 컴퓨터에서 예제 데이터 세트에 대해 양호한 성능을 얻는 데 걸리는 평균 시간을 요약하여 보여 줍니다.
데이터 세트 크기 | 평균 학습 시간 |
---|---|
0 - 10MB | 10초 |
10 - 100MB | 10분 |
100 - 500MB | 30분 |
500 - 1GB | 60분 |
1GB+ | 3시간 이상 |
이러한 숫자는 단지 안내일 뿐입니다. 정확한 학습 길이는 다음에 따라 달라집니다.
- 모델에 대한 입력으로 사용되는 기능(열)의 수
- 열 유형
- ML 작업
- 학습에 사용되는 컴퓨터의 CPU, 디스크 및 메모리 성능
일반적으로 100개 미만의 행을 데이터 세트로 사용하면 결과가 생성되지 않을 수 있으므로 100개가 넘는 행을 사용하는 것이 좋습니다.
Evaluate
평가는 모델의 성능을 측정하는 프로세스입니다. 모델 작성기는 학습된 모델을 통해 새 테스트 데이터를 사용하여 예측한 다음, 예측이 얼마나 올바른지를 측정합니다.
모델 작성기는 학습 데이터를 학습 집합과 테스트 집합으로 분할합니다. 학습 데이터(80%)는 모델을 학습하는 데 사용되며, 테스트 데이터(20%)는 모델을 평가하기 위해 보류됩니다.
모델 성능을 어떻게 이해할까요?
시나리오는 기계 학습 작업에 매핑됩니다. 각 ML 작업에는 고유한 평가 메트릭 집합이 있습니다.
값 예측
값 예측 문제에 대한 기본 메트릭은 RSquared이고, RSquared 값의 범위는 0과 1 사이입니다. 가능한 최고의 값은 1입니다. 즉, RSquared의 값이 1에 가까울수록 모델의 성능이 향상됩니다.
절대 손실, 제곱 손실 및 RMS 손실과 같이 보고된 다른 메트릭은 추가 메트릭이며 모델의 성능을 이해하고 다른 값 예측 모델과 비교하는 데 사용할 수 있습니다.
분류(2개 범주)
분류 문제에 대한 기본 메트릭은 정확도입니다. 정확도는 모델이 테스트 데이터 세트에 대해 내리는 정확한 예측 비율을 정의합니다. 100% 또는 1.0에 가까울수록 좋습니다.
참 긍정 비율과 거짓 긍정 비율을 측정하는 AUC(곡선 아래의 영역)와 같은 보고된 기타 메트릭은 허용 가능한 모델에 대해 0.50보다 커야 합니다.
F1 점수와 같은 추가 메트릭을 사용하여 전체 정밀도와 재현율 간의 균형을 제어할 수 있습니다.
분류(3개 이상 범주)
다중 클래스 분류에 대한 기본 메트릭은 Micro 정확도입니다. Micro 정확도는 100% 또는 1.0에 가까울수록 좋습니다.
다중 클래스 분류에 대한 또 다른 중요한 메트릭은 Macro 정확도입니다. Micro 정확도와 마찬가지로 1.0에 가까울수록 좋습니다. 이러한 두 가지 유형의 정확도를 고려하는 올바른 방법은 다음과 같습니다.
- Micro 정확도: 들어오는 티켓이 올바른 팀으로 분류되는 빈도
- Macro 정확도: 평균 팀의 경우 들어오는 티켓이 해당 팀에 올바르게 분류된 빈도
평가 메트릭에 대한 자세한 내용
자세한 내용은 모델 평가 메트릭을 참조하세요.
개선
모델 성능 점수가 원하는 만큼 좋지 않은 경우 다음을 수행할 수 있습니다.
더 긴 시간 동안 학습합니다. 시간이 지날수록 자동화된 기계 학습 엔진은 더 많은 알고리즘과 설정으로 실험합니다.
더 많은 데이터를 추가합니다. 경우에 따라 데이터의 양이 고품질 기계 학습 모델을 학습시키기에 충분하지 않을 수도 있습니다. 데이터 세트에 예제 수가 적은 경우 특히 그렇습니다.
데이터의 균형을 유지합니다. 분류 작업의 경우 학습 집합이 범주 전반에 걸쳐 균형을 유지하는지 확인합니다. 예를 들어 100개의 학습 예제에 대한 네 개의 클래스가 있고, 90개의 레코드에 두 개의 첫 번째 클래스(tag1 및 tag2)가 사용되지만 다른 두 개 클래스(tag3 및 tag4)가 나머지 10개의 레코드에만 사용되는 경우 균형 있는 데이터가 부족하여 모델이 tag3 또는 tag4를 올바르게 예측하는 데 어려움을 겪을 수 있습니다.
사용
평가 단계 후 모델 작성기는 모델 파일 및 모델을 애플리케이션에 추가하는 데 사용할 수 있는 코드를 출력합니다. ML.NET 모델은 zip 파일로 저장됩니다. 모델을 로드하고 사용하는 코드는 솔루션에는 새 프로젝트로 추가됩니다. 또한 모델 작성기는 실행 중인 모델을 보기 위해 실행할 수 있는 샘플 콘솔 앱을 추가합니다.
또한 Model Builder는 모델을 사용하는 프로젝트를 만드는 옵션을 제공합니다. 현재 Model Builder는 다음 프로젝트를 만듭니다.
- 콘솔 앱: 모델에서 예측을 수행하기 위해 .NET 콘솔 애플리케이션을 만듭니다.
- Web API: 인터넷을 통해 모델을 사용할 수 있게 해주는 ASP.NET Core Web API를 만듭니다.
후속 단계
Model Builder Visual Studio 확장 설치
.NET