

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 훈련된 Amazon Rekognition Custom Labels 모델 개선
<a name="improving-model"></a>

훈련이 완료되면 모델의 성능을 평가합니다. Amazon Rekognition Custom Labels는 사용자를 돕기 위해 각 레이블에 대한 요약 지표 및 평가 지표를 제공합니다. 사용 가능한 지표에 대한 자세한 내용은 [모델 평가를 위한 지표](im-metrics-use.md) 항목을 참조하세요. 지표를 사용하여 모델을 개선하려면 [Amazon Rekognition Custom Labels 모델 개선](tr-improve-model.md) 항목을 참조하세요.



모델의 정확도에 만족하는 경우 사용을 시작할 수 있습니다. 자세한 내용은 [훈련된 Amazon Rekognition Custom Labels 모델 실행](running-model.md) 섹션을 참조하세요.

**Topics**
+ [모델 평가를 위한 지표](im-metrics-use.md)
+ [평가 지표 액세스(콘솔)](im-access-training-results.md)
+ [Amazon Rekognition Custom Labels 평가 지표에 액세스(SDK)](im-metrics-api.md)
+ [Amazon Rekognition Custom Labels 모델 개선](tr-improve-model.md)

# 모델 평가를 위한 지표
<a name="im-metrics-use"></a>

모델을 훈련한 후 Amazon Rekognition Custom Labels는 모델 테스트에서 지표를 반환하며, 이를 사용하여 모델의 성능을 평가할 수 있습니다. 이 주제는 사용할 수 있는 지표와 훈련된 모델이 제대로 작동하고 있는지 이해하는 방법을 설명합니다.

Amazon Rekognition Custom Labels 콘솔은 다음 지표를 훈련 결과의 요약과 각 레이블의 지표로 제공합니다.
+ [정밀도](#im-precision-metric)
+ [재현율](#im-recall-metric)
+ [F1](#im-f1-metric)

제공하는 각 지표는 기계 학습 모델의 성능을 평가하는 데 일반적으로 사용되는 지표입니다. Amazon Rekognition Custom Labels는 전체 테스트 데이터 세트에 대한 테스트 결과에 대한 지표를 각 사용자 지정 레이블에 대한 지표와 함께 반환합니다. 또한 테스트 데이터 세트의 각 이미지에 대해 훈련된 사용자 지정 모델의 성능을 검토할 수 있습니다. 자세한 내용은 [평가 지표 액세스(콘솔)](im-access-training-results.md) 섹션을 참조하세요.

## 모델 성능 평가
<a name="tr-evaluate-performance"></a>

테스트 중에 Amazon Rekognition Custom Labels는 테스트 이미지에 사용자 지정 레이블이 포함되어 있는지 예측합니다. 신뢰도 점수는 모델 예측의 확실성을 정량화하는 값입니다.

사용자 지정 레이블의 신뢰도 점수가 임계값을 초과하는 경우 모델 출력에 이 레이블이 포함됩니다. 예측은 다음과 같은 방법으로 분류할 수 있습니다.  
+ 참 긍정**: Amazon Rekognition Custom Labels 모델이 테스트 이미지에 사용자 지정 레이블이 있는지 정확하게 예측했습니다. 즉, 예측 레이블은 해당 이미지에 대한 “실측 정보” 레이블이기도 합니다. 예를 들어 Amazon Rekognition Custom Labels가 이미지에 축구공이 있을 때 축구공 레이블을 올바르게 반환한 경우입니다.
+ 거짓 긍정**: Amazon Rekognition Custom Labels 모델이 테스트 이미지에 사용자 지정 레이블이 있는지 잘못 예측했습니다. 즉, 예측 레이블은 이미지에 대한 실측 정보 레이블이 아닙니다. 예를 들어 Amazon Rekognition Custom Labels는 축구공 레이블을 반환했지만 해당 이미지에 대한 실측 정보에는 축구공 레이블이 없는 경우입니다.
+ 거짓 부정**: Amazon Rekognition Custom Labels 모델이 이미지에 사용자 지정 레이블이 존재할 것으로 예측하지 않았지만 해당 이미지에 대한 “실측 정보”에는 이 레이블이 들어 있었습니다. 예를 들어 Amazon Rekognition Custom Labels가 축구공이 들어 있는 이미지에 대해 '축구공' 사용자 지정 레이블을 반환하지 않은 경우입니다.
+ 참 부정**: Amazon Rekognition Custom Labels 모델이 테스트 이미지에 사용자 지정 레이블이 없을 것이라고 정확하게 예측했습니다. 예를 들어 Amazon Rekognition Custom Labels가 축구공이 없는 이미지에 대해 '축구공' 사용자 지정 레이블을 반환하지 않은 경우입니다.

콘솔에서는 테스트 데이터 세트의 각 이미지에 대한 참 긍정, 거짓 긍정 및 거짓 부정 값에 액세스할 수 있습니다. 자세한 내용은 [평가 지표 액세스(콘솔)](im-access-training-results.md) 섹션을 참조하세요.

이러한 예측 결과는 각 레이블에 대한 다음 지표를 계산하고 전체 테스트 세트에 대한 집계를 계산하는 데 사용됩니다. 모든 지표가 각 테스트 이미지의 각 경계 상자(예측 또는 실측 정보)에 대해 계산된다는 점을 제외하면 경계 상자 수준에서 모델이 수행한 예측에도 동일한 정의가 적용됩니다.

### 교차 결합(IoU) 및 객체 감지
<a name="tr-evaluate-performance-object-detection"></a>

교차 결합(IoU)은 두 객체의 경계 상자가 합쳐진 영역에서 겹치는 비율을 측정합니다. 범위는 0(가장 조금 겹침)에서 1(완전히 겹침)까지입니다. 테스트 중에 실측 정보 경계 상자와 예측 경계 상자의 IoU가 0.5 이상이면 예측 경계 상자가 정확한 것으로 판정됩니다.

## 추정 임계값
<a name="im-assumed-threshold"></a>

Amazon Rekognition Custom Labels는 각 사용자 지정 레이블에 대해 추정 임계값(0\$11)을 자동으로 계산합니다. 사용자 지정 레이블에 대해 추정 임계값을 설정할 수 없습니다. 각 레이블의 추정 임계값**은 예측을 참 긍정 또는 거짓 긍정으로 계산하는 위의 값입니다. 테스트 데이터 세트를 기반으로 설정됩니다. 추정 임계값은 모델 훈련 중에 테스트 데이터 세트에서 달성한 최고의 F1 점수를 기반으로 계산됩니다.

모델의 훈련 결과에서 레이블에 대한 추정 임계값 값을 가져올 수 있습니다. 자세한 내용은 [평가 지표 액세스(콘솔)](im-access-training-results.md) 섹션을 참조하세요.

추정 임계값의 변경은 일반적으로 모델의 정밀도와 재현율을 개선하는 데 사용됩니다. 자세한 내용은 [Amazon Rekognition Custom Labels 모델 개선](tr-improve-model.md) 섹션을 참조하세요. 사용자는 레이블에 대해 모델의 추정 임계값을 설정할 수 없으므로 이미지를 `DetectCustomLabels`로 분석하고 `MinConfidence` 입력 파라미터를 지정하여 동일한 결과를 얻을 수 있습니다. 자세한 내용은 [훈련된 모델을 사용한 이미지 분석](detecting-custom-labels.md) 섹션을 참조하세요.

## 정밀도
<a name="im-precision-metric"></a>

Amazon Rekognition Custom Labels는 각 레이블에 대한 정밀도 지표와 전체 테스트 데이터 세트에 대한 평균 정밀도 지표를 제공합니다.

정밀도**는 특정 레이블의 추정 임계값에서 모든 모델 예측(참 긍정 및 거짓 긍정)에 대한 올바른 예측(참 긍정)의 비율입니다. 임계값이 증가하면 모델의 예측 수가 줄어들 수 있습니다. 그러나 일반적으로 낮은 임계값에 비해 참 긍정 비율과 거짓 긍정 비율이 더 높을 것입니다. 가능한 정밀도 값의 범위는 0\$11이며, 값이 높을수록 정밀도가 높습니다.

예를 들어, 모델 영상에 축구공이 있다고 예측한 경우에서 예측이 정확했을 때가 얼마나 많았는지 따져 봅시다. 축구공 8개와 바위 5개가 있는 이미지가 있다고 가정해 보겠습니다. 모델이 축구공 9개(정확히 예측된 8개와 거짓 긍정 1개)를 예측한 경우 이 예제의 정밀도는 0.89입니다. 그러나 모델이 이미지에서 축구공 13개를 예측한 경우 결과는 올바른 예측 8개와 틀린 예측 5개가 되므로 정밀도는 낮아집니다.

자세한 내용은 [정밀도 및 재현율](https://en.wikipedia.org/wiki/Precision_and_recall)을 참조하세요.

## 재현율
<a name="im-recall-metric"></a>

Amazon Rekognition Custom Labels는 각 레이블의 평균 재현율 지표와 전체 테스트 데이터 세트에 대한 평균 재현율 지표를 제공합니다.

재현율**은 테스트 세트 레이블 중에서 추정 임계값을 초과할 것으로 정확하게 예측된 결과의 비율입니다. 사용자 지정 레이블이 테스트 세트의 이미지에 실제로 존재할 때 모델이 얼마나 자주 사용자 지정 레이블을 정확하게 예측할 수 있는지를 나타내는 척도입니다. 재현율 범위는 0\$11입니다. 값이 높을수록 재현율이 높음을 나타냅니다.

예를 들어 이미지에 축구공 8개가 있을 때 그중 몇 개가 정확히 감지되었는지 따져 봅시다. 이미지에 축구공 8개와 바위 5개가 있는 이 예제에서 모델이 축구공 5개를 감지하면 재현율 값은 0.62입니다. 재훈련 후 새 모델이 이미지에 있는 8개를 모두 포함하여 축구공 9개를 감지한 경우 재현율 값은 1.0입니다.

자세한 내용은 [정밀도 및 재현율](https://en.wikipedia.org/wiki/Precision_and_recall)을 참조하세요.

## F1
<a name="im-f1-metric"></a>

Amazon Rekognition Custom Labels는 F1 점수 지표를 사용하여 각 레이블의 평균 모델 성능과 전체 테스트 데이터 세트의 평균 모델 성능을 측정합니다.

모델 성능**은 모든 레이블의 정밀도와 재현율을 모두 고려한 종합 지표입니다(예: F1 점수 또는 평균 정밀도). 모델 성능 점수는 0에서 1 사이의 값입니다. 값이 높을수록 재현율과 정밀도 양면에서 모델의 성능이 좋습니다. 구체적으로, 분류 작업을 위한 모델 성능은 일반적으로 F1 점수로 측정됩니다. 이 점수는 추정 임계값에서의 정밀도 및 재현율 점수의 조화 평균입니다. 예를 들어 정밀도가 0.9이고 재현율이 1.0인 모델의 경우 F1 점수는 0.947입니다.

F1 점수 값이 높으면 모델이 정밀도와 재현율 모두에서 우수한 성능을 보이고 있음을 나타냅니다. 예를 들어 정밀도가 0.30이고 재현율이 1.0인 경우와 같이 모델의 성능이 좋지 않은 경우 F1 점수는 0.46입니다. 마찬가지로 정밀도가 높고(0.95) 재현율이 낮으면(0.20) F1 점수는 0.33입니다. 두 경우 모두 F1 점수가 낮으며 이는 모델에 문제가 있음을 나타냅니다.

자세한 내용은 [F1 점수](https://en.wikipedia.org/wiki/F1_score)를 참조하세요.

## 지표 사용
<a name="im-using-metrics"></a>

훈련한 특정 모델과 응용 분야에 따라 `MinConfidence` 입력 파라미터를 `DetectCustomLabels`로 사용하여 정밀도**와 재현율** 사이에서 균형을 맞출 수 있습니다. `MinConfidence` 값이 높을수록 일반적으로 정밀도**는 높아지지만(축구공의 예측치가 더 정확함) 재현율**은 낮아집니다(실제 축구공을 놓치는 경우가 많음). `MinConfidence` 값이 낮을수록 재현율**은 높아지지만(정확하게 예측된 실제 축구공이 더 많음) 정밀도**는 낮아집니다(이러한 예측이 틀리는 경우가 많음). 자세한 내용은 [훈련된 모델을 사용한 이미지 분석](detecting-custom-labels.md) 섹션을 참조하세요.

지표는 필요한 경우 모델 성능을 개선하기 위해 취할 수 있는 조치도 알려줍니다. 자세한 내용은 [Amazon Rekognition Custom Labels 모델 개선](tr-improve-model.md) 섹션을 참조하세요.

**참고**  
`DetectCustomLabels`는 지표 범위인 0\$11에 해당하는 0에서 100 사이의 예측값을 반환합니다.

# 평가 지표 액세스(콘솔)
<a name="im-access-training-results"></a>

테스트 중에는 테스트 데이터 세트를 기준으로 모델의 성능을 평가합니다. 테스트 데이터 세트의 레이블은 실제 이미지가 나타내는 내용을 나타내므로 '실측 정보'로 간주됩니다. 테스트 중에 모델은 테스트 데이터 세트를 사용하여 예측을 수행합니다. 예측된 레이블을 실측 레이블과 비교하고 콘솔 평가 페이지에서 결과를 확인할 수 있습니다.

Amazon Rekognition Custom Labels 콘솔은 전체 모델의 요약 지표와 개별 레이블에 대한 지표를 보여줍니다. 콘솔에서 사용할 수 있는 지표는 정밀도 재현율, F1 점수, 신뢰도, 신뢰도 임계값입니다. 자세한 내용은 [훈련된 Amazon Rekognition Custom Labels 모델 개선](improving-model.md) 섹션을 참조하세요.

콘솔을 사용하여 개별 지표에 집중할 수 있습니다. 예를 들어 레이블의 정밀도 문제를 조사하려면 훈련 결과를 레이블과 거짓 긍정** 결과를 기준으로 필터링할 수 있습니다. 자세한 내용은 [모델 평가를 위한 지표](im-metrics-use.md) 섹션을 참조하세요.

훈련 후에는 훈련 데이터 세트가 읽기 전용이 됩니다. 모델을 개선하기로 결정한 경우 훈련 데이터 세트를 새 데이터세트에 복사할 수 있습니다. 데이터 세트 사본을 사용하여 모델의 새 버전을 훈련할 수 있습니다.

이 단계에서는 콘솔을 사용하여 콘솔의 훈련 결과에 액세스할 수 있습니다.

**평가 지표에 액세스하려면(콘솔)**

1. [https://console.aws.amazon.com/rekognition/](https://console.aws.amazon.com/rekognition/)에서 Amazon Rekognition 콘솔을 엽니다.

1. **사용자 지정 레이블 사용**을 선택합니다.

1. **Get started**를 선택합니다.

1. 왼쪽 탐색 창에서 **프로젝트**를 선택합니다.

1. **프로젝트** 페이지에서 평가하려는 훈련된 모델이 포함된 프로젝트를 선택합니다.

1. **모델**에서 평가하려는 모델을 선택합니다.

1. **평가** 탭을 선택하여 평가 결과를 확인합니다. 모델 평가에 대한 자세한 내용은 [훈련된 Amazon Rekognition Custom Labels 모델 개선](improving-model.md) 항목을 참조하세요.

1. 개별 테스트 이미지의 결과를 보려면 **테스트 결과 보기**를 선택합니다. 자세한 내용은 [모델 평가를 위한 지표](im-metrics-use.md) 단원을 참조하십시오. 다음 스크린샷의 모델 평가 요약에서는 테스트 결과 및 성능 지표와 함께 6개 레이블의 F1 점수, 평균 정밀도, 전체 재현율을 보여줍니다. 훈련된 모델 사용에 대한 세부 정보도 제공됩니다.  
![\[F1 점수, 평균 정밀도, 전체 재현율을 보여주는 모델 평가 요약입니다.\]](http://docs.aws.amazon.com/ko_kr/rekognition/latest/customlabels-dg/images/get-started-training-results.jpg)

1. 테스트 결과를 확인한 후 프로젝트 이름을 선택하여 모델 페이지로 돌아가세요. 테스트 결과 페이지에서는 뒷마당 및 앞마당 이미지 범주에 대해 훈련된 기계 학습 모델의 예측된 레이블 및 신뢰도 점수가 이미지에 표시됩니다. 두 개의 예시 이미지가 나와 있습니다.  
![\[테스트 결과 페이지에서는 예측된 레이블과 신뢰도 점수가 이미지에 표시됩니다.\]](http://docs.aws.amazon.com/ko_kr/rekognition/latest/customlabels-dg/images/get-started-image-test-results.jpg)

1. 지표를 사용하여 모델의 성능을 평가하세요. 자세한 내용은 [Amazon Rekognition Custom Labels 모델 개선](tr-improve-model.md) 섹션을 참조하세요.

# Amazon Rekognition Custom Labels 평가 지표에 액세스(SDK)
<a name="im-metrics-api"></a>

[DescribeProjectVersions](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjectVersions) 작업은 콘솔에서 제공하는 것 이상의 지표에 대한 액세스를 제공합니다.

콘솔과 마찬가지로 `DescribeProjectVersions`는 테스트 결과에 대한 요약 정보 및 각 레이블의 테스트 결과로 다음 지표에 대한 액세스를 제공합니다.
+ [정밀도](im-metrics-use.md#im-precision-metric)
+ [재현율](im-metrics-use.md#im-recall-metric)
+ [F1](im-metrics-use.md#im-f1-metric)

모든 레이블의 평균 임계값과 개별 레이블의 임계값이 반환됩니다.

`DescribeProjectVersions`는 분류 및 이미지 감지를 위한 다음 지표에 대한 액세스를 제공합니다(이미지 상의 물체 위치).
+ 이미지 분류를 위한 오차 행렬** 자세한 내용은 [모델의 오차 행렬 보기](im-confusion-matrix.md) 섹션을 참조하세요.
+ 이미지 감지를 위한 Mean Average Precision(mAP)**
+ 이미지 감지를 위한 Mean Average Recall(mAR)**

`DescribeProjectVersions`는 참 긍정, 거짓 긍정, 거짓 부정 및 참 부정 값에 대한 액세스를 제공합니다. 자세한 내용은 [모델 평가를 위한 지표](im-metrics-use.md) 섹션을 참조하세요.

집계된 F1 점수 지표는 `DescribeProjectVersions`에서 직접 반환됩니다. Amazon S3 버킷에 저장된 [모델 요약 파일 액세스](im-summary-file-api.md) 및 [평가 매니페스트 스냅샷 해석](im-evaluation-manifest-snapshot-api.md) 파일에서 다른 지표에 액세스할 수 있습니다. 자세한 내용은 [요약 파일 및 평가 매니페스트 스냅샷 액세스(SDK)](im-access-summary-evaluation-manifest.md) 단원을 참조하십시오.

**Topics**
+ [모델 요약 파일 액세스](im-summary-file-api.md)
+ [평가 매니페스트 스냅샷 해석](im-evaluation-manifest-snapshot-api.md)
+ [요약 파일 및 평가 매니페스트 스냅샷 액세스(SDK)](im-access-summary-evaluation-manifest.md)
+ [모델의 오차 행렬 보기](im-confusion-matrix.md)
+ [참조: 훈련 결과 요약 파일](im-summary-file.md)

# 모델 요약 파일 액세스
<a name="im-summary-file-api"></a>

요약 파일에는 모델 전체에 대한 평가 결과 정보와 각 레이블의 지표가 포함되어 있습니다. 포함되는 지표는 정밀도, 재현율, F1 점수입니다. 모델의 임계값도 제공됩니다. `DescribeProjectVersions`에서 반환된 `EvaluationResult` 객체에서 요약 파일 위치에 액세스할 수 있습니다. 자세한 내용은 [참조: 훈련 결과 요약 파일](im-summary-file.md) 섹션을 참조하세요.

다음은 예제 요약 파일입니다.

```
{
  "Version": 1,
  "AggregatedEvaluationResults": {
    "ConfusionMatrix": [
      {
        "GroundTruthLabel": "CAP",
        "PredictedLabel": "CAP",
        "Value": 0.9948717948717949
      },
      {
        "GroundTruthLabel": "CAP",
        "PredictedLabel": "WATCH",
        "Value": 0.008547008547008548
      },
      {
        "GroundTruthLabel": "WATCH",
        "PredictedLabel": "CAP",
        "Value": 0.1794871794871795
      },
      {
        "GroundTruthLabel": "WATCH",
        "PredictedLabel": "WATCH",
        "Value": 0.7008547008547008
      }
    ],
    "F1Score": 0.9726959470546408,
    "Precision": 0.9719115848331294,
    "Recall": 0.9735042735042735
  },
  "EvaluationDetails": {
    "EvaluationEndTimestamp": "2019-11-21T07:30:23.910943",
    "Labels": [
      "CAP",
      "WATCH"
    ],
    "NumberOfTestingImages": 624,
    "NumberOfTrainingImages": 5216,
    "ProjectVersionArn": "arn:aws:rekognition:us-east-1:nnnnnnnnn:project/my-project/version/v0/1574317227432"
  },
  "LabelEvaluationResults": [
    {
      "Label": "CAP",
      "Metrics": {
        "F1Score": 0.9794344473007711,
        "Precision": 0.9819587628865979,
        "Recall": 0.9769230769230769,
        "Threshold": 0.9879502058029175
      },
      "NumberOfTestingImages": 390
    },
    {
      "Label": "WATCH",
      "Metrics": {
        "F1Score": 0.9659574468085106,
        "Precision": 0.961864406779661,
        "Recall": 0.9700854700854701,
        "Threshold": 0.014450683258473873
      },
      "NumberOfTestingImages": 234
    }
  ]
}
```

# 평가 매니페스트 스냅샷 해석
<a name="im-evaluation-manifest-snapshot-api"></a>

평가 매니페스트 스냅샷에는 테스트 결과에 대한 세부 정보가 포함됩니다. 스냅샷에는 각 예측에 대한 신뢰도가 포함됩니다. 또한 영상의 실제 분류(참 긍정, 참 부정, 거짓 긍정 또는 거짓 부정)와 비교한 예측의 분류도 포함됩니다.

테스트 및 훈련에 사용할 수 있는 이미지만 포함되므로 파일은 스냅샷입니다. 잘못된 형식의 이미지와 같이 검증할 수 없는 이미지는 매니페스트에 포함되지 않습니다. `DescribeProjectVersions`에서 반환된 `TestingDataResult` 객체에서 테스트 스냅샷 위치에 액세스할 수 있습니다. `DescribeProjectVersions`에서 반환된 `TrainingDataResult` 객체에서 훈련 스냅샷 위치에 액세스할 수 있습니다.

스냅샷은 SageMaker AI Ground Truth 매니페스트 출력 형식이며, 감지의 바이너리 분류 결과와 같은 추가 정보를 제공하기 위해 필드가 추가되었습니다. 다음 스니펫은 추가 필드를 보여줍니다.

```
"rekognition-custom-labels-evaluation-details": {
    "version": 1,
    "is-true-positive": true,
    "is-true-negative": false,
    "is-false-positive": false,
    "is-false-negative": false,
    "is-present-in-ground-truth": true
    "ground-truth-labelling-jobs": ["rekognition-custom-labels-training-job"]
}
```
+ 버전**: 매니페스트 스냅샷에 있는 `rekognition-custom-labels-evaluation-details` 필드 형식의 버전입니다.
+ is-true-positive...** : 신뢰도 점수가 레이블의 최소 임계값에 비해서 어떤지를 기반으로 한 예측의 바이너리 분류입니다.
+ is-present-in-ground-truth**: 모델을 통해 예측한 내용이 훈련에 사용된 실측 정보에 포함되면 참이고, 그렇지 않으면 거짓입니다. 이 값은 신뢰 점수가 모델에서 계산한 최소 임계값을 초과하는지 여부를 기반으로 하지 않습니다.
+ Ground Truth-labeling-jobs**: 매니페스트 라인에 있는 훈련에 사용되는 실측 정보 필드의 목록입니다.

SageMaker AI Ground Truth 매니페스트 형식에 대한 자세한 내용은 [출력을](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-output.html) 참조하세요.

다음은 이미지 분류 및 객체 감지에 대한 지표를 보여주는 테스트 매니페스트 스냅샷의 예입니다.

```
// For image classification
{
  "source-ref": "s3://amzn-s3-demo-bucket/dataset/beckham.jpeg",
  "rekognition-custom-labels-training-0": 1,
  "rekognition-custom-labels-training-0-metadata": {
    "confidence": 1.0,
    "job-name": "rekognition-custom-labels-training-job",
    "class-name": "Football",
    "human-annotated": "yes",
    "creation-date": "2019-09-06T00:07:25.488243",
    "type": "groundtruth/image-classification"
  },
  "rekognition-custom-labels-evaluation-0": 1,
  "rekognition-custom-labels-evaluation-0-metadata": {
    "confidence": 0.95,
    "job-name": "rekognition-custom-labels-evaluation-job",
    "class-name": "Football",
    "human-annotated": "no",
    "creation-date": "2019-09-06T00:07:25.488243",
    "type": "groundtruth/image-classification",
    "rekognition-custom-labels-evaluation-details": {
      "version": 1,
      "ground-truth-labelling-jobs": ["rekognition-custom-labels-training-job"],
      "is-true-positive": true,
      "is-true-negative": false,
      "is-false-positive": false,
      "is-false-negative": false,
      "is-present-in-ground-truth": true
    }
  }
}


// For object detection
{
  "source-ref": "s3://amzn-s3-demo-bucket/dataset/beckham.jpeg",
  "rekognition-custom-labels-training-0": {
    "annotations": [
      {
        "class_id": 0,
        "width": 39,
        "top": 409,
        "height": 63,
        "left": 712
      },
      ...
    ],
    "image_size": [
      {
        "width": 1024,
        "depth": 3,
        "height": 768
      }
    ]
  },
  "rekognition-custom-labels-training-0-metadata": {
    "job-name": "rekognition-custom-labels-training-job",
    "class-map": {
      "0": "Cap",
      ...
    },
    "human-annotated": "yes",
    "objects": [
      {
        "confidence": 1.0
      },
      ...
    ],
    "creation-date": "2019-10-21T22:02:18.432644",
    "type": "groundtruth/object-detection"
  },
  "rekognition-custom-labels-evaluation": {
    "annotations": [
      {
        "class_id": 0,
        "width": 39,
        "top": 409,
        "height": 63,
        "left": 712
      },
      ...
    ],
    "image_size": [
      {
        "width": 1024,
        "depth": 3,
        "height": 768
      }
    ]
  },
  "rekognition-custom-labels-evaluation-metadata": {
    "confidence": 0.95,
    "job-name": "rekognition-custom-labels-evaluation-job",
    "class-map": {
      "0": "Cap",
      ...
    },
    "human-annotated": "no",
    "objects": [
      {
        "confidence": 0.95,
        "rekognition-custom-labels-evaluation-details": {
          "version": 1,
          "ground-truth-labelling-jobs": ["rekognition-custom-labels-training-job"],
          "is-true-positive": true,
          "is-true-negative": false,
          "is-false-positive": false,
          "is-false-negative": false,
          "is-present-in-ground-truth": true
        }
      },
      ...
    ],
    "creation-date": "2019-10-21T22:02:18.432644",
    "type": "groundtruth/object-detection"
  }
}
```

# 요약 파일 및 평가 매니페스트 스냅샷 액세스(SDK)
<a name="im-access-summary-evaluation-manifest"></a>

훈련 결과를 얻으려면 [DescribeProjectVersions](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjectVersions)를 직접 호출해야 합니다. 예제 코드는 [모델 설명(SDK)](md-describing-model-sdk.md) 항목을 참조하세요.

지표의 위치는 `DescribeProjectVersions`의 `ProjectVersionDescription` 응답에 반환됩니다.
+ `EvaluationResult`: 요약 파일의 위치
+ `TestingDataResult`: 테스트에 사용된 평가 매니페스트 스냅샷의 위치 

F1 점수와 요약 파일 위치가 `EvaluationResult`에 반환됩니다. 예제:

```
"EvaluationResult": {
                "F1Score": 1.0,
                "Summary": {
                    "S3Object": {
                        "Bucket": "echo-dot-scans",
                        "Name": "test-output/EvaluationResultSummary-my-echo-dots-project-v2.json"
                    }
                }
            }
```

평가 매니페스트 스냅샷은 사용자가 [모델 훈련(SDK)](training-model.md#tm-sdk)에서 지정한 ` --output-config` 입력 파라미터에서 지정된 위치에 저장됩니다.

**참고**  
훈련 요금이 청구된 시간(초)으로 `BillableTrainingTimeInSeconds`에서 반환됩니다.

Amazon Rekognition Custom Labels에서 반환되는 지표에 대한 자세한 내용은 [Amazon Rekognition Custom Labels 평가 지표에 액세스(SDK)](im-metrics-api.md) 지표를 참조하세요.

# 모델의 오차 행렬 보기
<a name="im-confusion-matrix"></a>

오차 행렬을 사용하면 모델이 모델의 다른 레이블과 혼동하는 레이블을 확인할 수 있습니다. 오차 행렬을 사용하면 모델 개선에 집중할 수 있습니다.

모델 평가 중에 Amazon Rekognition Custom Labels는 테스트 이미지를 사용하여 잘못 식별된(혼동된) 레이블을 식별함으로써 오차 행렬을 생성합니다. Amazon Rekognition Custom Labels는 분류 모델에 오차 행렬만 생성합니다. Amazon Rekognition Custom Labels가 모델 교육 중에 생성하는 요약 파일에서 분류 행렬에 액세스할 수 있습니다. Amazon Rekognition Custom Labels 콘솔에서는 오차 행렬을 볼 수 없습니다.

**Topics**
+ [오차 행렬 사용](#im-using-confusion-matrix)
+ [모델의 오차 행렬 가져오기](#im-getting-confusion-matrix)

## 오차 행렬 사용
<a name="im-using-confusion-matrix"></a>

다음 표는 [Rooms 이미지 분류](getting-started.md#gs-image-classification-example) 예제 프로젝트의 오차 행렬입니다. 열 제목은 테스트 이미지에 할당된 레이블(실측 정보 레이블)입니다. 행 제목은 모델이 테스트 이미지에 대해 예측하는 레이블입니다. 각 셀은 실측 정보 레이블(열)이 되어야 하는 레이블(행)에 대한 예측의 백분율입니다. 예를 들어, 욕실에 대한 예측의 67%가 욕실로 올바르게 레이블 지정되었고, 욕실의 33%가 주방으로 잘못 레이블 지정되었을 수 있습니다. 성능이 높은 모델은 예측 레이블이 실측 정보 레이블과 일치하여 셀 값이 높습니다. 이를 첫 번째 예측 레이블부터 마지막 예측 레이블 및 실측 정보 레이블까지 대각선으로 볼 수 있습니다. 셀 값이 0인 경우 셀의 실측 정보 레이블이어야 하는 셀의 예측 레이블에 대한 예측은 수행되지 않았다는 뜻입니다.

**참고**  
모델은 비결정적이므로 Rooms 프로젝트를 훈련하여 얻은 오차 행렬 셀 값은 다음 표와 다를 수 있습니다.

오차 행렬은 집중해야 할 영역을 식별합니다. 예를 들어, 오차 행렬은 모델이 옷장을 침실과 혼동한 경우가 50%라는 것을 보여줍니다. 이 상황에서는 훈련 데이터 세트에 옷장과 침실 이미지를 더 추가해야 합니다. 또한 기존 옷장 및 침실 이미지에 레이블이 올바르게 지정되어 있는지도 확인해야 합니다. 이렇게 하면 모델이 두 레이블을 더 잘 구분할 수 있습니다. 데이터 세트에 이미지를 더 추가하려면 [데이터 세트에 더 많은 이미지 추가](md-add-images.md) 항목을 참조하세요.

오차 행렬도 유용하지만 다른 지표도 고려하는 것이 중요합니다. 예를 들어, 예측의 100%가 평면도 레이블을 올바르게 찾았는데, 이는 성능이 우수하다는 뜻입니다. 하지만 테스트 데이터 세트에는 평면도 레이블이 있는 이미지가 2개만 있습니다. 또한 거실 레이블이 지정된 11개의 이미지도 있습니다. 이러한 불균형은 훈련 데이터 세트(거실 이미지 13개, 옷장 이미지 2개)에도 있습니다. 더 정확하게 평가하려면 제대로 대표되지 않은 레이블의 이미지(이 예에서는 평면도)를 더 추가하여 훈련 데이터 세트와 테스트 데이터 세트의 균형을 맞추세요. 레이블당 테스트 이미지 수를 가져오려면 [평가 지표 액세스(콘솔)](im-access-training-results.md) 항목을 참조하세요.

다음 표는 예측된 레이블(y축)을 실제 레이블과 비교하는 샘플 오차 행렬입니다.


| 예측 레이블 | 뒷마당 | 욕실 | 침실 | 옷장 | 진입로 | 평면도 | 앞마당 | 주방 | 거실 | 파티오 | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| 뒷마당 | 75% | 0% | 0% | 0% | 0% | 0% | 33% | 0% | 0% | 0% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| 욕실 | 0% | 67% | 0% | 0% | 0% | 0% | 0% | 0% | 0% | 0% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| 침실 | 0% | 0% | 82% | 50% | 0% | 0% | 0% | 0% | 9% | 0% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| 옷장 | 0% | 0% | 0% | 50% | 0% | 0% | 0% | 0% | 0% | 0% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| 진입로 | 0% | 0% | 0% | 0% | 33% | 0% | 0% | 0% | 0% | 0% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| 평면도 | 0% | 0% | 0% | 0% | 0% | 100% | 0% | 0% | 0% | 0% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| 앞마당 | 25% | 0% | 0% | 0% | 0% | 0% | 67% | 0% | 0% | 0% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| 주방 | 0% | 33% | 0% | 0% | 0% | 0% | 0% | 88% | 0% | 0% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| 거실 | 0% | 0% | 18% | 0% | 67% | 0% | 0% | 12% | 91% | 33% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| 파티오 | 0% | 0% | 0% | 0% | 0% | 0% | 0% | 0% | 0% | 67% | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |

## 모델의 오차 행렬 가져오기
<a name="im-getting-confusion-matrix"></a>

다음 코드는 [DescribeProjects와](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjects) [DescribeProjectVersions](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjectVersions) 작업을 사용하여 모델의 [요약 파일](im-summary-file-api.md)을 가져옵니다. 그런 다음 요약 파일을 사용하여 모델의 오차 행렬을 표시합니다.

**모델의 오차 행렬 표시하기(SDK)**

1. 아직 설치하지 않은 경우 및 AWS SDKs AWS CLI 를 설치하고 구성합니다. 자세한 내용은 [4단계: AWS CLI 및 AWS SDKs 설정](su-awscli-sdk.md) 단원을 참조하십시오.

1. 다음 코드를 사용하여 모델의 오차 행렬을 표시할 수 있습니다. 다음 명령줄 인수를 제공하세요.
   + `project_name`: 사용하려는 프로젝트의 이름 Amazon Rekognition Custom Labels 콘솔의 프로젝트 페이지에서 프로젝트 이름을 가져올 수 있습니다.
   + `version_name`: 사용하려는 모델의 버전 Amazon Rekognition Custom Labels 콘솔의 프로젝트 세부 정보 페이지에서 버전 이름을 가져올 수 있습니다.

   ```
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier: Apache-2.0
   
   """
   Purpose
   
   Shows how to display the confusion matrix for an Amazon Rekognition Custom labels image
   classification model.
   """
   
   
   import json
   import argparse
   import logging
   import boto3
   import pandas as pd
   from botocore.exceptions import ClientError
   
   
   logger = logging.getLogger(__name__)
   
   
   def get_model_summary_location(rek_client, project_name, version_name):
       """
       Get the summary file location for a model.
   
       :param rek_client: A Boto3 Rekognition client.
       :param project_arn: The Amazon Resource Name (ARN) of the project that contains the model.
       :param model_arn: The Amazon Resource Name (ARN) of the model.
       :return: The location of the model summary file.
       """
   
       try:
           logger.info(
               "Getting summary file for model %s in project %s.", version_name, project_name)
   
           summary_location = ""
   
           # Get the project ARN from the project name.
           response = rek_client.describe_projects(ProjectNames=[project_name])
   
           assert len(response['ProjectDescriptions']) > 0, \
               f"Project {project_name} not found."
   
           project_arn = response['ProjectDescriptions'][0]['ProjectArn']
   
           # Get the summary file location for the model.
           describe_response = rek_client.describe_project_versions(ProjectArn=project_arn,
                                                                    VersionNames=[version_name])
           assert len(describe_response['ProjectVersionDescriptions']) > 0, \
               f"Model {version_name} not found."
   
           model=describe_response['ProjectVersionDescriptions'][0]
   
           evaluation_results=model['EvaluationResult']
   
           summary_location=(f"s3://{evaluation_results['Summary']['S3Object']['Bucket']}"
                               f"/{evaluation_results['Summary']['S3Object']['Name']}")
   
           return summary_location
   
       except ClientError as err:
           logger.exception(
               "Couldn't get summary file location: %s", err.response['Error']['Message'])
           raise
   
   
   def show_confusion_matrix(summary):
       """
       Shows the confusion matrix for an Amazon Rekognition Custom Labels
       image classification model.
       :param summary: The summary file JSON object.
       """
       pd.options.display.float_format = '{:.0%}'.format
   
       # Load the model summary JSON into a DataFrame.
   
       summary_df = pd.DataFrame(
           summary['AggregatedEvaluationResults']['ConfusionMatrix'])
   
       # Get the confusion matrix.
       confusion_matrix = summary_df.pivot_table(index='PredictedLabel',
                                                 columns='GroundTruthLabel',
                                                 fill_value=0.0).astype(float)
   
       # Display the confusion matrix.
       print(confusion_matrix)
   
   
   def get_summary(s3_resource, summary):
       """
       Gets the summary file.
       : return: The summary file in bytes.
       """
       try:
           summary_bucket, summary_key = summary.replace(
               "s3://", "").split("/", 1)
   
           bucket = s3_resource.Bucket(summary_bucket)
           obj = bucket.Object(summary_key)
           body = obj.get()['Body'].read()
           logger.info(
               "Got summary file '%s' from bucket '%s'.",
               obj.key, obj.bucket_name)
       except ClientError:
           logger.exception(
               "Couldn't get summary file '%s' from bucket '%s'.",
               obj.key, obj.bucket_name)
           raise
       else:
           return body
   
   
   def add_arguments(parser):
       """
       Adds command line arguments to the parser.
       : param parser: The command line parser.
       """
   
       parser.add_argument(
           "project_name", help="The ARN of the project in which the model resides."
       )
       parser.add_argument(
           "version_name", help="The version of the model that you want to describe."
       )
   
   
   def main():
       """
       Entry point for script.
       """
   
       logging.basicConfig(level=logging.INFO,
                           format="%(levelname)s: %(message)s")
   
       try:
   
           # Get the command line arguments.
           parser = argparse.ArgumentParser(usage=argparse.SUPPRESS)
           add_arguments(parser)
           args = parser.parse_args()
   
           print(
               f"Showing confusion matrix for: {args.version_name} for project {args.project_name}.")
   
           session = boto3.Session(profile_name='custom-labels-access')
           rekognition_client = session.client("rekognition")
           s3_resource = session.resource('s3')
   
           # Get the summary file for the model.
           summary_location = get_model_summary_location(rekognition_client, args.project_name,
                                                         args.version_name
                                                         )
           summary = json.loads(get_summary(s3_resource, summary_location))
   
           # Check that the confusion matrix is available.
           assert 'ConfusionMatrix' in summary['AggregatedEvaluationResults'], \
               "Confusion matrix not found in summary. Is the model a classification model?"
   
           # Show the confusion matrix.
           show_confusion_matrix(summary)
           print("Done")
   
       except ClientError as err:
           logger.exception("Problem showing confusion matrix: %s", err)
           print(f"Problem describing model: {err}")
   
       except AssertionError as err:
           logger.exception(
               "Error: %s.\n", err)
           print(
               f"Error: {err}\n")
   
   
   if __name__ == "__main__":
       main()
   ```

# 참조: 훈련 결과 요약 파일
<a name="im-summary-file"></a>

훈련 결과 요약에는 모델을 평가하는 데 사용할 수 있는 지표가 포함되어 있습니다. 요약 파일은 콘솔 훈련 결과 페이지에 지표를 표시하는 데도 사용됩니다. 요약 파일은 훈련 후 Amazon S3 버킷에 저장됩니다. 요약 파일을 가져오려면 `DescribeProjectVersion`를 직접 호출하세요. 예제 코드는 [요약 파일 및 평가 매니페스트 스냅샷 액세스(SDK)](im-access-summary-evaluation-manifest.md) 항목을 참조하세요.

## 요약 파일
<a name="im-summary-reference"></a>

다음 JSON은 요약 파일의 형식입니다.



**EvaluationDetails(항목 3)**  
훈련 작업에 대한 개요 정보입니다. 여기에는 모델이 속한 프로젝트의 ARN(`ProjectVersionArn)`), 훈련 종료 날짜 및 시간, 평가된 모델 버전(`EvaluationEndTimestamp`), 교육 중에 감지된 레이블 목록(`Labels`) 등이 포함됩니다. 또한 훈련(`NumberOfTrainingImages`) 및 평가(`NumberOfTestingImages`)에 사용된 이미지 수도 포함됩니다.

**AggregatedEvaluationResults(항목 1)**  
`AggregatedEvaluationResults`를 테스트 데이터 세트와 함께 사용할 경우 훈련된 모델의 전체 성능을 평가하는 데 사용할 수 있습니다. 집계된 지표는 `Precision`, `Recall`, 및 `F1Score` 지표에 포함됩니다. 객체 감지(이미지 상의 객체 위치)의 경우 `AverageRecall`(mAR) 및 `AveragePrecision`(mAP) 지표가 반환됩니다. 분류(이미지의 객체 유형)의 경우 오차 행렬 지표가 반환됩니다.

**LabelEvaluationResults(항목 2)**  
`labelEvaluationResults`를 개별 레이블의 성능을 평가하는 데 사용할 수 있습니다. 레이블은 각 레이블의 F1 점수를 기준으로 정렬됩니다. 포함된 지표는 `Precision`, `Recall`, `F1Score`, `Threshold`(분류에 사용됨)입니다.

파일 이름은 다음 형식을 띱니다: `EvaluationSummary-ProjectName-VersionName.json`

```
{
  "Version": "integer",
  // section-3
  "EvaluationDetails": {
    "ProjectVersionArn": "string",
    "EvaluationEndTimestamp": "string",
    "Labels": "[string]",
    "NumberOfTrainingImages": "int",
    "NumberOfTestingImages": "int"
  },
  // section-1
  "AggregatedEvaluationResults": {
    "Metrics": {
      "Precision": "float",
      "Recall": "float",
      "F1Score": "float",
      // The following 2 fields are only applicable to object detection
      "AveragePrecision": "float",
      "AverageRecall": "float",
      // The following field is only applicable to classification
      "ConfusionMatrix":[
        {
          "GroundTruthLabel": "string",
          "PredictedLabel": "string",
          "Value": "float"
        },
        ...
      ],
    }
  },
  // section-2
  "LabelEvaluationResults": [
    {
      "Label": "string",
      "NumberOfTestingImages", "int",
      "Metrics": {
        "Threshold": "float",
        "Precision": "float",
        "Recall": "float",
        "F1Score": "float"
      },
    },
    ...
  ]
}
```

# Amazon Rekognition Custom Labels 모델 개선
<a name="tr-improve-model"></a>

기계 학습 모델의 성능은 사용자 지정 레이블(관심 있는 특정 객체 및 장면)의 복잡성 및 가변성, 제공하는 훈련 데이터 세트의 품질 및 대표성, 모델 훈련에 사용되는 모델 프레임워크 및 기계 학습 방법과  같은 요인에 따라 크게 달라집니다.

Amazon Rekognition Custom Labels를 사용하면 이 프로세스가 더 간단해지며 기계 학습 전문 지식이 필요하지 않습니다. 하지만 좋은 모델을 구축하는 프로세스에는 원하는 성능을 달성하기 위해 데이터를 반복하고 모델을 개선해야 하는 경우가 많습니다. 다음은 모델을 개선하는 방법에 대한 정보입니다.

## 데이터
<a name="im-data"></a>

일반적으로 품질이 더 좋은 데이터를 대량으로 확보하여 모델 품질을 개선할 수 있습니다. 객체나 장면을 명확하게 보여주고 불필요한 물건이 쌓여 있지 않은 훈련 이미지를 사용하세요. 객체 주위의 경계 상자의 경우, 객체가 다른 물체에 가려지지 않고 완전히 보이는 훈련 이미지를 사용하세요.

훈련 및 테스트 데이터 세트가 추론을 실행할 대상 이미지 유형과 일치하는지 확인하세요. 로고와 같이 훈련 예제가 몇 개 없는 객체의 경우 테스트 이미지의 로고 주위에 경계 상자를 제공해야 합니다. 이 이미지는 객체의 위치를 파악하려는 시나리오를 나타내거나 묘사합니다.

훈련 또는 테스트 데이터 세트에 더 많은 이미지를 추가하려면 [데이터 세트에 더 많은 이미지 추가](md-add-images.md) 항목을 참조하세요.

## 거짓 긍정 감소(정밀도 향상)
<a name="im-reduce-false-positives"></a>
+ 먼저, 추정 임계값을 높였을 때 정확한 예측을 유지하면서 거짓 긍정이 줄어드는지 확인하세요. 특정 모델의 정밀도와 재현율 간의 대립성 때문에 어느 시점부터는 효과가 줄어듭니다. 레이블에 대해 추정 임계값을 설정할 수는 없지만 `MinConfidence` 입력 파라미터에 대해 높은 값을 `DetectCustomLabels`로 지정하여 동일한 결과를 얻을 수 있습니다. 자세한 내용은 [훈련된 모델을 사용한 이미지 분석](detecting-custom-labels.md) 섹션을 참조하세요.
+ 관심 있는 사용자 지정 레이블(A) 중 하나 이상이 동일한 분류의 객체(관심 있는 레이블은 아님)(B)와 계속 혼동되는 상황이 나타날 수 있습니다. 이를 해결하려면 B를 거짓 긍정이 나온 이미지와 함께 훈련 데이터 세트에 객체 분류 레이블로 추가하세요. 이는 모델이 새로운 훈련 이미지를 통해 A가 아닌 B를 예측하도록 학습하도록 돕는 것입니다. 훈련 데이터 세트에 이미지를 추가하려면 [데이터 세트에 더 많은 이미지 추가](md-add-images.md) 항목을 참조하세요.
+ 두 개의 사용자 지정 레이블(A와 B)로 인해 모델이 혼란을 겪을 수 있습니다. 레이블 A가 있는 테스트 이미지는 레이블 B가 있는 것으로 예측되며 그 반대의 경우도 마찬가지입니다. 이 경우 먼저 훈련 세트와 테스트 세트에서 레이블이 잘못 지정된 이미지가 없는지 확인하세요. 데이터 세트 갤러리를 사용하여 데이터 세트에 할당된 레이블을 관리하세요. 자세한 내용은 [레이블 관리](md-labels.md) 섹션을 참조하세요. 또한 이러한 유형의 혼란과 관련된 훈련 이미지를 더 추가하면 재훈련된 모델이 A와 B를 더 잘 구별하는 데 도움이 됩니다. 훈련 데이터 세트에 이미지를 추가하려면 [데이터 세트에 더 많은 이미지 추가](md-add-images.md) 항목을 참조하세요.

## 거짓 긍정 감소(기억력 향상)
<a name="im-reduce-false-negatives"></a>
+ 추정 임계값에는 더 낮은 값을 사용하세요. 레이블에 대해 추정 임계값을 설정할 수는 없지만 더 낮은 `MinConfidence` 입력 파라미터를 `DetectCustomLabels`로 지정하여 동일한 결과를 얻을 수 있습니다. 자세한 내용은 [훈련된 모델을 사용한 이미지 분석](detecting-custom-labels.md) 섹션을 참조하세요.
+ 더 나은 예제를 사용하여 객체와 객체가 나타나는 이미지의 다양성을 모델링하세요.
+ 레이블을 학습하기 쉬운 두 개의 분류로 나누세요. 예를 들어, 모델이 각각의 고유한 개념을 더 잘 학습하는 데 도움이 되도록 좋은 쿠키와 나쁜 쿠키 대신 좋은 쿠키, 탄 쿠키, 깨진 쿠키를 제공할 수 있습니다.