Model Builder에서 모델 학습 및 평가
이 단원에서는 Model Builder에서 기계 학습 모델을 학습시키고 평가하는 방법을 알아봅니다.
학습 중에 Model Builder는 알고리즘을 데이터에 적용합니다. 특정 시나리오의 평가 메트릭을 사용하여 모델의 성능이 얼마나 좋은지 측정합니다.
Model Builder의 학습
시나리오와 학습 환경을 선택하고 데이터를 로드했으므로 이제 모델 학습을 시작해야 합니다. 학습은 최선의 모델을 찾기 위해 선택한 시나리오의 알고리즘을 데이터 세트에 적용하는 것으로 구성됩니다. “최선”의 의미는 평가 단계에서 살펴보겠습니다.
대부분의 경우 Model Builder에서 기계 학습 모델을 학습시키기 위해서는 원하는 학습 기간만 제공하면 됩니다.
얼마나 학습해야 하나요?
학습 기간이 길수록 Model Builder에서 더 넓은 범위의 설정으로 더 많은 모델을 탐색할 수 있습니다.
아래 표에는 CPU를 사용하여 로컬 머신에서 좋은 예시 데이터 세트 성능을 얻는 데 걸리는 평균 시간이 요약되어 있습니다.
데이터 세트 크기 | 평균 학습 시간 |
---|---|
0MB~10MB | 10초 |
10MB~100MB | 10분 |
100MB~500MB | 30분 |
500MB~1GB | 60분 |
1GB+ | 3시간 이상 |
이러한 숫자는 단지 안내일 뿐입니다. 학습의 정확한 길이는 다음에 따라 달라집니다.
- 모델에 대한 입력으로 사용되는 특성(열)의 수
- 열 유형
- 기계 학습 작업
- 학습에 사용되는 컴퓨터의 CPU, GPU, 디스크 및 메모리 성능
팁
데이터 세트로 100개 이상의 행을 사용합니다. 이보다 적으면 결과가 생성되지 않을 수 있습니다.
Model Builder는 최상의 모델을 어떻게 찾나요?
기계 학습에는 복잡한 수학이 관련된다는 이야기를 들어보셨을 것입니다. 그렇다면 시나리오, 데이터 세트, 원하는 Model Builder 학습 기간만 제공했는데 Model Builder는 어떻게 기계 학습 모델을 학습시킬 수 있을까요?
Model Builder는 AutoML(자동화된 ML)을 사용하여 학습을 위한 데이터를 준비하고, 알고리즘을 선택하고, 알고리즘의 설정(하이퍼 매개 변수라고도 함)을 조정하는 변환 집합을 식별합니다. Model Builder는 선택한 기계 학습 작업과 관련된 평가 메트릭을 사용하여 데이터에 가장 좋은 성능을 발휘하는 모델을 결정할 수 있습니다.
학습 및 사용 코드
모델 학습이 완료되면 Model Builder는 다음 파일을 생성하여 프로젝트에 추가합니다. 이러한 파일은 .mbconfig 파일 아래에 중첩됩니다.
- <MODEL-NAME>.zip: 기계 학습 모델의 아티팩트입니다. 이 파일에는 직렬화된 버전의 모델이 포함되어 있습니다.
- <MODEL-NAME>.training.cs: 이 파일에는 모델 학습 파이프라인이 포함되어 있습니다. 모델 학습 파이프라인은 기계 학습 모델을 학습시키는 데 사용되는 데이터 변환 및 알고리즘으로 구성됩니다. 자세한 내용은 데이터 변환 및 ML.NET 알고리즘을 선택하는 방법을 참조하세요.
- <MODEL-NAME>.consumption.cs: 이 파일에는 모델 입력 및 출력의 스키마를 정의하는 클래스가 포함되어 있습니다. 또한 모델을 사용하여
PredictionEngine
API를 만들고 예측을 수행하는Predict
메서드를 포함합니다.PredictionEngine
은 데이터의 단일 인스턴스에 대한 예측을 수행할 수 있는 편의 API입니다.
모델 평가
데이터에 "최선"인 모델을 찾았으므로 이제 모델이 얼마나 잘 예측을 수행하는지 테스트해야 합니다. 모델의 성능을 평가하는 한 가지 방법은 메트릭을 사용하는 것입니다.
평가 메트릭은 모델에서 수행하는 기계 학습 작업의 유형에만 적용됩니다. 작업마다 모델의 성능을 결정하는 다양한 메트릭을 볼 수 있습니다.
다음 표는 Model Builder가 시나리오에 따라 최선의 모델을 선택하는 데 사용하는 평가 메트릭을 보여 줍니다.
시나리오 | 평가 메트릭 | 살펴볼 항목 |
---|---|---|
데이터 분류 | 이진(정확도)/다중 클래스(마이크로 정확도) | 1.00에 가까울수록 좋습니다. |
값 예측 | R 제곱 | 1.00에 가까울수록 좋습니다. |
이미지 분류 | 정확도 | 1.00에 가까울수록 좋습니다. |
권장 | R 제곱 | 1.00에 가까울수록 좋습니다. |
개체 감지 | 정확도 | 1.00에 가까울수록 좋습니다. |
ML.NET 평가 메트릭에 대한 자세한 내용은 모델 평가 메트릭을 참조하세요.
메트릭이 가장 높은 모델 선택
모델이 완벽한 평가 메트릭을 달성했습니다. 완벽한 모델을 가지고 있다는 의미인가요? 그렇지 않습니다. 실제로 평가 메트릭에서 지정한 대로 "완벽한" 모델을 얻게 된다면 회의적이어야 합니다.
기계 학습에는 과잉 맞춤이라는 개념이 있으며, 이를 주의해야 합니다. 과잉 맞춤은 모델이 학습 데이터 세트의 패턴을 너무 잘 학습하는 경우입니다. 새 데이터로 모델을 사용하려고 하면 정확한 결과를 제공하지 않습니다.
다음은 과잉 맞춤을 설명하는 데 도움이 되는 시나리오입니다. 시험 공부를 한다고 상상해 보세요. 시험 문항과 답변을 미리 확인할 수 있습니다. 시험 공부를 할 때 문항에 대한 답변을 암기하는 데 집중합니다. 시험에 응시하고 결과를 받으면 높은 점수를 받게 됩니다. 높은 점수는 주제를 잘 알고 있다는 신호일 수 있습니다. 그러나 시험에 직접적으로 나오지 않은 주제 중 하나에 대한 질문을 받으면 주제를 학습하지 않고 답변을 암기했으므로 틀릴 수 있습니다. 과잉 맞춤은 비슷한 방식으로 작동합니다.
모델 개선
모델의 평가 메트릭이 만족스럽지 않다면 다음을 시도하여 모델을 개선할 수 있습니다.
- 더 많은 대표 데이터 관찰 제공: 경험은 최고의 스승입니다. 기계 학습에도 이 개념이 적용됩니다. 더 많은 데이터 관찰을 제공할수록 모델이 인식할 수 있는 패턴 집합이 넓어집니다.
- 더 많은 컨텍스트 제공: 데이터에 컨텍스트를 추가하는 열을 추가하면 모델이 패턴을 식별하는 데 도움이 됩니다. 예를 들어 주택 가격을 예측할 때 유일한 데이터 요소는 방 수뿐이라고 가정해 보겠습니다. 이것만으로는 많은 것을 알 수 없습니다. 그러나 주택이 주요 대도시 밖 교외에 있고 평균 가계 소득이 $80,000이며 학교도 상위 20번째 백분위수에 든다는 것을 알고 있다면 어떨까요? 이제 모델의 결정을 알리는 데 도움이 되는 자세한 정보를 확인할 수 있습니다.
- 의미 있는 데이터 및 특성 사용 - 더 많은 데이터 샘플과 특성이 모델의 정확도를 높이는 데 도움이 될 수 있지만 모든 데이터와 특성이 의미 있는 것은 아니므로 노이즈가 발생할 수도 있습니다. 알고리즘의 결정에 가장 큰 영향을 미치는 특성을 이해하는 것이 중요합니다.
- 더 많은 알고리즘 탐색 - Model Builder에게 더 많은 알고리즘과 하이퍼 매개 변수를 탐색할 수 있는 시간을 더 주면 모델을 개선하는 데 도움이 될 수 있습니다.
다음 단원에서는 Model Builder를 사용하여 기계 학습 모델을 학습합니다.