분류기 학습 출력 - Amazon Comprehend

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

분류기 학습 출력

Amazon Comprehend는 사용자 지정 분류기 모델 훈련을 완료한 후 CreateDocumentClassifier API 요청 또는 동등한 콘솔 요청에 지정한 Amazon S3 출력 위치에 출력 파일을 생성합니다.

Amazon Comprehend는 일반 텍스트 모델 또는 네이티브 문서 모델을 학습시킬 때 혼동행렬을 생성합니다. 네이티브 문서 모델을 학습시킬 때 추가 출력 파일을 생성할 수 있습니다.

혼동행렬

사용자 지정 분류기 모델을 학습시키면 Amazon Comprehend는 모델이 학습에서 얼마나 잘 수행되었는지에 대한 지표를 제공하는 혼동행렬을 생성합니다. 이 행렬은 모델이 예측한 레이블 행렬을 실제 문서 레이블과 비교하여 보여줍니다. Amazon Comprehend는 학습 데이터의 일부를 사용하여 혼동행렬을 생성합니다.

혼동행렬은 모델 성능을 개선하기 위해 어떤 클래스가 더 많은 데이터를 사용할 수 있는지를 나타냅니다. 정확한 예측의 비율이 높은 클래스는 행렬의 대각선을 따라 나타나는 결과 수가 가장 많습니다. 대각선에 있는 숫자가 더 작은 경우 클래스의 정답 예측 비율이 더 낮습니다. 이 클래스에 더 많은 학습 예제를 추가하고 모델을 다시 학습시킬 수 있습니다. 예를 들어, 레이블 A 샘플의 40%가 레이블 D로 분류되는 경우 레이블 A와 레이블 D에 더 많은 샘플을 추가하면 분류기의 성능이 향상됩니다.

Amazon Comprehend가 분류기 모델을 생성한 후에는 S3 출력 위치의 confusion_matrix.json 파일에서 혼동행렬을 사용할 수 있습니다.

혼동행렬의 형식은 분류기를 멀티클래스 모드를 사용하여 학습시켰는지, 멀티레이블 모드를 사용하여 학습시켰는지에 따라 달라집니다.

멀티클래스 모드의 혼동행렬

멀티클래스 모드에서는 개별 클래스가 상호 배타적이므로 분류는 각 문서에 하나의 레이블을 할당합니다. 예를 들어 동물은 개일 수도 있고 고양일 수도 있지만 동시에 둘 다일 수는 없습니다.

멀티클래스로 학습된 분류기에 대한 혼동행렬의 다음 예를 생각해 보십시오.

A B X Y <-(predicted label) A 1 2 0 4 B 0 3 0 1 X 0 0 1 0 Y 1 1 1 1 ^ | (actual label)

이 경우 모델은 다음과 같이 예측하였습니다.

  • 하나의 “A” 레이블은 정확하게 예측되었고, 두 개의 “A” 레이블은 “B” 레이블로 잘못 예측되었으며 네 개의 “A” 레이블은 “Y” 레이블로 잘못 예측되었습니다.

  • 세 개의 “B” 레이블은 정확하게 예측되었고 하나의 “B” 레이블은 “Y” 레이블로 잘못 예측되었습니다.

  • 하나의 “X”가 정확하게 예측되었습니다.

  • 하나의 “Y” 레이블은 정확하게 예측되었고, 하나는 “A” 레이블로 잘못 예측되었으며, 하나는 “B” 레이블로 잘못 예측되었고, 하나는 “X” 레이블로 잘못 예측되었습니다.

행렬의 대각선(A:A, B:B, X:X, Y:Y)은 정확한 예측치를 보여줍니다. 예측 오차는 대각선 밖의 값입니다. 이 경우 행렬은 다음과 같은 예측 오류율을 보여줍니다.

  • A 레이블: 86%

  • B 레이블: 25%

  • X 레이블: 0%

  • Y 레이블: 75%

분류자는 혼동 행렬을 JSON 형식으로 파일로 반환합니다. 다음 JSON 파일은 이전 예제의 행렬을 나타냅니다.

{ "type": "multi_class", "confusion_matrix": [ [1, 2, 0,4], [0, 3, 0, 1], [0, 0, 1, 0], [1, 1, 1, 1]], "labels": ["A", "B", "X", "Y"], "all_labels": ["A", "B", "X", "Y"] }

멀티레이블 모드의 혼동행렬

멀티레이블 모드에서 분류는 문서에 하나 이상의 클래스를 할당할 수 있습니다. 멀티클래스로 학습된 분류기에 대한 혼동행렬의 다음 예를 생각해 보십시오.

이 예제에서는 Comedy, ActionDrama로 지정할 수 있는 3개의 레이블을 사용할 수 있습니다. 멀티레이블 혼동행렬은 각 레이블에 대해 하나의 2x2 행렬을 만듭니다.

Comedy Action Drama No Yes No Yes No Yes <-(predicted label) No 2 1 No 1 1 No 3 0 Yes 0 2 Yes 2 1 Yes 1 1 ^ ^ ^ | | | |-----------(was this label actually used)--------|

이 경우 모델은 Comedy 레이블에 대해 다음을 반환하였습니다.

  • Comedy 레이블이 존재할 것으로 정확하게 예측된 사례는 2건. 참 긍정(TP)

  • Comedy 레이블이 없을 것으로 정확하게 예측된 사례는 2건. 참 부정(TN)

  • Comedy 레이블이 존재할 것으로 잘못 예측된 사례는 0건. 거짓 긍정(FP)

  • Comedy 레이블이 없을 것으로 잘못 예측된 사례는 1건. 거짓 부정(FN)

멀티클래스 혼동행렬과 마찬가지로 각 행렬의 대각선은 정확한 예측치를 보여줍니다.

이 경우 모델은 80%의 확률(TP+TN)로 Comedy 레이블을 정확하게 예측하고 20%(FP+FN)의 확률로 레이블을 잘못 예측했습니다.

분류자는 혼동 행렬을 JSON 형식으로 파일로 반환합니다. 다음 JSON 파일은 이전 예제의 행렬을 나타냅니다.

{ "type": "multi_label", "confusion_matrix": [ [[2, 1], [0, 2]], [[1, 1], [2, 1]], [[3, 0], [1, 1]] ], "labels": ["Comedy", "Action", "Drama"] "all_labels": ["Comedy", "Action", "Drama"] }

네이티브 문서 모델에 대한 추가 출력

Amazon Comprehend는 네이티브 문서 모델을 학습시킬 때 추가 출력 파일을 생성할 수 있습니다.

Amazon Textract 출력

Amazon Comprehend가 Amazon Textract를 호출APIs하여 훈련 문서의 텍스트를 추출한 경우 Amazon Textract 출력 파일을 S3 출력 위치에 저장합니다. 다음과 같은 디렉터리 구조를 사용합니다.

  • 학습 문서:

    amazon-textract-output/train/<file_name>/<page_num>/textract_output.json

  • 테스트 문서:

    amazon-textract-output/test/<file_name>/<page_num>/textract_output.json

API 요청에 테스트 문서를 제공한 경우 Amazon Comprehend는 테스트 폴더를 채웁니다.

문서 주석 실패

실패한 주석이 있는 경우 Amazon Comprehend는 Amazon S3 출력 위치(skipped_documents/ 폴더 내)에 다음 파일을 생성합니다.

  • failed_annotations_train.jsonl

    학습 데이터에서 주석이 실패한 경우 파일이 존재합니다.

  • failed_annotations_test.jsonl

    요청에 테스트 데이터가 포함되어 있고 테스트 데이터에 주석이 실패한 경우 파일이 존재합니다.

실패한 주석 파일은 다음 형식의 JSONL 파일입니다.

{ "File": "String", "Page": Number, "ErrorCode": "...", "ErrorMessage": "..."} {"File": "String", "Page": Number, "ErrorCode": "...", "ErrorMessage": "..." }