기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
분류기 학습 출력
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
, Action
및 Drama
로 지정할 수 있는 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": "..." }