지표 및 검증 - 아마존 SageMaker

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

지표 및 검증

이 가이드에서는 기계 학습 모델 성능을 측정하는 데 사용할 수 있는 지표와 검증 기법을 보여줍니다. Amazon SageMaker Autopilot은 기계 학습 모델 후보의 예측 품질을 측정하는 지표를 생성합니다. 후보에 대해 계산된 지표는 다양한 유형을 MetricDatum사용하여 지정됩니다.

Autopilot 지표

다음 목록에는 Autopilot 내에서 현재 모델 성능을 측정하는 데 사용할 수 있는 지표 이름이 포함되어 있습니다.

참고

Autopilot은 샘플 가중치를 지원합니다. 샘플 가중치 및 사용 가능한 객관적 지표에 대한 자세한 내용은 Autopilot 가중치 지표을/를 참조하십시오.

사용할 수 있는 지표는 아래와 같습니다.

Accuracy

전체 (올바르게 및 잘못) 분류된 항목 수 대비 올바르게 분류된 항목 수의 비율입니다. 바이너리 분류와 멀티클래스 분류 모두에 사용됩니다. 정확도는 예측된 클래스 값이 실제 값에 얼마나 가까운지를 측정합니다. 정확도 지표의 값은 0에서 1 사이입니다. 값 1은 완벽한 정확도를 나타내고, 0은 완벽한 부정확도를 나타냅니다.

AUC

곡선 아래 면적(AUC) 지표는 로지스틱 회귀와 같이 확률을 반환하는 알고리즘에 따른 바이너리 분류를 비교하고 평가하는 데 사용됩니다. 확률을 분류에 매핑하기 위해 이들을 임계값과 비교합니다.

관련 곡선은 수신기 작동 특성 곡선입니다. 이 곡선은 예측(또는 재현율)의 True positive 비율(TPR)과 False Positive 비율(FPR)을 임계값의 함수로 나타내며, 임계값을 초과하면 양성 예측으로 간주됩니다. 임계값을 높이면 False Positive는 줄어들지만 False Negative는 더 많아집니다.

AUC는 이 수신기 작동 특성 곡선 아래의 면적입니다. 따라서 AUC는 가능한 모든 분류 임계값에 걸쳐 모델 성능을 집계하여 측정합니다. AUC 점수는 0과 1 사이입니다. 1점은 완벽한 정확도를 나타내고, 0.5점은 예측이 무작위 분류기보다 우수하지 않음을 나타냅니다.

BalancedAccuracy

BalancedAccuracy은 모든 예측에 대비한 정확한 예측의 비율을 측정하는 지표입니다. 이 비율은 양성(P) 값와 음성(N) 값의 갯수의 합계로 True positive(TP) 및 True negative(TN)를 정규화한 후 계산됩니다. 이 값은 바이너리 및 멀티클래스 분류에 모두 사용되며 0.5* ((TP/P) + (TN/N))로 정의되며 값은 0에서 1까지의 범위를 갖습니다. 예를 들어 이메일의 1% 만이 스팸인 경우처럼 BalancedAccuracy은 불균형한 데이터 세트에서 양성 또는 음성의 갯수가 서로 크게 다를 때 정확도를 더 잘 측정할 수 있습니다.

F1

F1 점수는 정밀도와 재현율의 조화 평균으로, F1 = 2 * (정밀도 * 재현율)/(정밀도+재현율)로 정의됩니다. 이는 전통적으로 양성와 음성이라고 하는 클래스로 바이너리 분류를 하는 데 사용됩니다. 예측은 실제 (올바른) 클래스와 일치하면 참이고 그렇지 않으면 거짓이라고 합니다.

정밀도는 모든 긍정적 예측에 대한 True positive 예측의 비율이며, 여기에는 데이터 세트의 False Positive도 포함됩니다. 정밀도는 양성 클래스를 예측할 때 예측의 품질을 측정합니다.

재현율(또는 민감도)은 모든 실제 양성 인스턴스에 대한 True positive 예측의 비율입니다. 재현율은 모델이 데이터 세트의 실제 클래스 구성원을 얼마나 완벽하게 예측하는지 측정합니다.

F1 점수는 0과 1 사이입니다. 1점은 가능한 최고의 성과를 나타내고, 0점은 최악을 나타냅니다.

F1macro

F1macro 점수는 F1 점수를 멀티클래스 분류 문제에 적용합니다. 정밀도와 재현율을 계산한 다음 조화 평균을 취해 각 클래스의 F1 점수를 계산합니다. 마지막으로 F1macro 점수를 구하기 위해 개별 점수의 F1macro 평균을 구합니다. F1macro 점수는 0과 1 사이입니다. 1점은 가능한 최고의 성과를 나타내고, 0점은 최악을 나타냅니다.

InferenceLatency

추론 지연 시간은 모델 예측을 요청한 후 모델이 배포되는 실시간 엔드포인트에서 수신하기까지 걸리는 대략적인 시간입니다. 이 지표는 초 단위로 측정되며 앙상블 모드에서만 사용할 수 있습니다.

LogLoss

교차 엔트로피 손실이라고도 하는 로그 손실은 출력 자체가 아닌 확률 출력의 품질을 평가하는 데 사용되는 지표입니다. 바이너리 분류와 멀티클래스 분류 그리고 신경망 네트 모두에서 사용됩니다. 로지스틱 회귀에 대한 비용 함수이기도 합니다. 로그 손실은 모델이 높은 확률로 잘못된 예측을 하는 경우를 나타내는 중요한 지표입니다. 일반적 값은 0~무한대입니다. 값이 0이면 데이터를 완벽하게 예측하는 모델을 나타냅니다.

MAE

평균 절대 오차(MAE)는 모든 값에 대해 평균을 구했을 때 예측값과 실제 값의 차이를 측정한 것입니다. MAE는 일반적으로 회귀 분석에서 모델 예측 오류를 이해하는 데 사용됩니다. 선형 회귀의 경우 MAE는 예측선에서 실제 값까지의 평균 거리를 나타냅니다. MAE는 절대 오차의 합계를 관측 숫자로 나눈 값으로 정의됩니다. 값 범위는 0에서 무한대까지이며, 숫자가 작을수록 모델이 데이터에 피팅이 더 좋다는 것을 나타냅니다.

MSE

평균 제곱 오차(MSE)는 예측값과 실제 값 간의 차이 제곱의 평균입니다. 이는 회귀 분석에 사용됩니다. MSE 값은 항상 양수입니다. 모델이 실제 값을 더 잘 예측할수록 MSE 값은 작아집니다.

Precision

정밀도는 알고리즘이 식별한 모든 양성 중에서 True positive(TP)을 얼마나 잘 예측하는지를 측정합니다. 정밀도는 다음과 같이 정의됩니다. 정밀도 = TP/ (TP+FP), 이 값의 범위는 0에서 1 사이이며 바이너리 분류에 사용됩니다. 정확도는 False Positive의 비용이 높을 때 중요한 지표입니다. 예를 들어, 비행기 안전 시스템이 비행하기에 안전하다고 잘못 간주되는 경우 False Positive로 인한 비용은 매우 높습니다. False Positive(FP)는 데이터에서 실제로는 음성인데 양성으로 예측하는 것을 반영합니다.

PrecisionMacro

정밀도 매크로는 멀티클래스 분류 문제의 정밀도를 계산합니다. 이를 위해 각 클래스의 정밀도를 계산하고 점수를 평균하여 여러 클래스의 정밀도를 구합니다. PrecisionMacro 점수의 범위는 0에서 1까지입니다. 점수가 높을수록 모델이 식별한 모든 양성 중에서 True positive(TP)를 예측하는 능력을 나타내며, 여러 클래스에 걸쳐 평균을 냅니다.

R2

결정 계수라고도 하는 R2는 회귀 분석에서 모델이 종속 변수의 분산을 얼마나 설명할 수 있는지를 정량화하는 데 사용됩니다. 값의 범위는 1에서 -1까지입니다. 숫자가 높을수록 설명되는 변동성의 비율이 높습니다. R2 값이 0에 가까우면 모형으로 설명할 수 있는 종속 변수가 거의 없음을 나타냅니다. 음수 값은 피팅이 안 좋으며 상수 함수가 모델 성능을 능가한다는 것을 나타냅니다. 선형 회귀의 경우 이는 수평선입니다.

Recall

재현율은 알고리즘이 데이터 세트의 모든 True positive(TP) 를 얼마나 정확하게 예측하는지 측정합니다. True positive는 양성 예측이며 데이터에서 실제 양수이기도 합니다. 재현율은 다음과 같이 정의됩니다. 재현율 = TP/ (TP+FN)이고 그 값의 범위는 0에서 1까지입니다. 점수가 높을수록 모델이 데이터의 True positive(TP)를 더 잘 예측할 수 있음을 나타냅니다. 이는 바이너리 분류에 사용됩니다.

암 검사를 할 때는 재현율이 중요합니다. 이는 True positive를 모두 찾아내는 데 사용되기 때문입니다. False Positive(FP)는 데이터에서 실제로는 음성인데 양성으로 예측하는 것을 반영합니다. 모든 출력값을 True positive로 예측하면 완벽한 재현율 점수를 얻을 수 있기 때문에 재현율만 측정하는 것으로는 충분하지 않습니다.

RecallMacro

RecallMacro은 각 클래스의 재현율을 계산하고 점수를 평균하여 여러 클래스에 대한 재현율을 구함으로써 멀티클래스 분류 문제에 대한 재현율을 계산합니다. RecallMacro 점수의 범위는 0에서 1까지입니다. 점수가 높을수록 데이터 세트의 True positive(TP)를 예측하는 모델의 능력을 나타내며, True positive는 데이터가 실제 양성이기도 한 양성 예측을 반영합니다. 모든 출력값을 True positive로 예측하면 완벽한 재현율 점수를 얻을 수 있기 때문에 재현율만 측정하는 것으로는 충분하지 않습니다.

RMSE

평균 제곱근 오차(RMSE)는 예측값과 실제 값 간의 차이의 제곱의 제곱근을 측정하며 모든 값에 대해 평균을 구합니다. 이는 회귀 분석에서 모델 예측 오류를 이해하는 데 사용됩니다. 이는 큰 모델 오차와 이상치가 있음을 나타내는 중요한 지표입니다. 값 범위는 0에서 무한대까지이며, 숫자가 작을수록 모델이 데이터에 더 적합함을 나타냅니다. RMSE는 규모에 따라 달라지므로 크기가 다른 데이터 세트를 비교하는 데 사용해서는 안 됩니다.

모델 후보에 대해 자동으로 계산되는 지표는 해결되는 문제 유형에 따라 결정됩니다.

오토파일럿이 지원하는 사용 가능한 지표 목록은 Amazon SageMaker API 참조 설명서를 참조하십시오.

Autopilot 가중치 지표

참고

Autopilot은 Balanced AccuracyInferenceLatency를 제외하고 사용 가능한 모든 지표에 대해서만 앙상블 모드에서 샘플 가중치를 지원합니다. BalanceAccuracy는 샘플 가중치가 필요하지 않은 불균형 데이터 세트에 대한 자체 가중치 체계를 지원합니다. InferenceLatency는 샘플 가중치를 지원하지 않습니다. 모델을 학습시키고 평가할 때는 목표 Balanced AccuracyInferenceLatency 지표 모두 기존 샘플 가중치를 무시합니다.

사용자는 데이터에 샘플 가중치 열을 추가하여 기계 학습 모델을 학습시키는 데 사용되는 각 관측치에 모델에서 인지된 중요도에 해당하는 가중치를 부여할 수 있습니다. 이는 데이터 세트 내 관측치의 중요도가 다양하거나 데이터 세트에서 한 클래스의 샘플 수가 다른 클래스에 비해 불균형하게 많은 경우에 특히 유용합니다. 각 관측치의 중요도에 따라 또는 소수 클래스에 더 큰 중요도를 줌으로써 각 관측치에 가중치를 할당하면 모델의 전반적인 성능을 향상시키거나 모델이 다수 클래스에 치우치지 않도록 할 수 있습니다.

Studio Classic UI에서 실험을 생성할 때 샘플 가중치를 전달하는 방법에 대한 자세한 내용은 Studio Classic을 사용하여 오토파일럿 실험 만들기의 7단계를 참조하십시오.

API를 사용하여 Autopilot 실험을 생성할 때 샘플 가중치를 프로그래밍 방식으로 전달하는 방법에 대한 자세한 내용은 프로그래밍 방식으로 Autopilot 실험 생성하기에서 AutoML 작업에 샘플 가중치를 추가하는 방법을 참조하십시오.

Autopilot에서의 교차 검증

교차 검증은 모델 선택 시 오버피팅(overfitting)과 편향을 줄이는 데 사용됩니다. 또한 검증 데이터 세트를 동일한 모집단에서 추출한 경우 보이지 않는 검증 데이터 세트의 값을 모델이 얼마나 잘 예측할 수 있는지 평가하는 데에도 사용됩니다. 이 방법은 학습 인스턴스 수가 제한된 데이터 세트를 대상으로 학습시킬 때 특히 중요합니다.

Autopilot은 교차 검증을 사용하여 하이퍼파라미터 최적화(HPO) 및 앙상블 학습 모드에서 모델을 구축합니다. Autopilot 교차 검증 프로세스의 첫 번째 단계는 데이터를 k- 폴드로 분할하는 것입니다.

K-폴드 분할

K-폴드(K-fold) 분할은 입력 학습 데이터 세트를 여러 학습 및 검증 데이터 세트로 분할하는 방법입니다. 데이터 세트는 폴드라고 하는 k개의 동일한 크기의 하위 샘플로 분할됩니다. 그런 다음 k-1 폴드에 대해 모델을 학습시키고 검증 데이터 세트인 나머지 k번째 폴드에 대해 테스트합니다. 검증을 위해 다른 데이터 세트를 사용하여 프로세스를 k번 반복합니다.

다음 이미지는 k = 4 폴드를 이용한 k-폴드 분할을 보여줍니다. 각 폴드는 행으로 표시됩니다. 어두운 톤의 상자는 학습에 사용된 데이터 부분을 나타냅니다. 나머지 밝은 색조 상자는 검증 데이터 세트를 나타냅니다.

상자로 표시된 4-폴드를 이용한 K-폴드 분할: 사용된 데이터는 어둡게, 검증 데이터 세트는 밝게 표시됨.

Autopilot은 하이퍼파라미터 최적화(HPO) 모드와 앙상블 모드 모두에 k-폴드 교차 검증을 사용합니다.

다른 오토파일럿 또는 모델과 마찬가지로 교차 검증을 사용하여 빌드된 오토파일럿 모델을 배포할 수 있습니다. SageMaker

HPO 모드

K-폴드 교차 검증은 교차 검증에 k-폴드 분할 방법을 사용합니다. HPO 모드에서 Autopilot은 학습 인스턴스가 50,000개 이하인 작은 데이터 세트에 대해 k-폴드 교차 검증을 자동으로 구현합니다. 교차 검증은 오버피팅과 선택 편향을 방지하기 때문에 작은 데이터 세트로 학습시킬 때는 특히 중요합니다.

HPO 모드에서는 데이터 세트를 모델링하는 데 사용되는 각 후보 알고리즘에서 k=5 값을 사용합니다. 여러 모델을 서로 다른 분할을 이용해 학습시키고 모델을 별도로 저장합니다. 학습이 완료되면 각 모델의 검증 지표를 평균하여 단일 예측 지표를 생성합니다. 마지막으로 Autopilot은 시험에서 얻은 모델을 최상의 검증 지표와 결합하여 앙상블 모델로 만듭니다. Autopilot은 이 앙상블 모델을 사용하여 예측합니다.

Autopilot으로 학습한 모델의 검증 지표는 모델 순위표에 목표 지표로 표시됩니다. 별도로 지정하지 않는 한 Autopilot은 처리하는 각 문제 유형에 대해 기본 검증 지표를 사용합니다. Autopilot가 사용하는 모든 지표 목록은 Autopilot 지표 섹션을 참조하십시오.

예를 들어 보스턴 하우징 데이터 세트에는 861개의 샘플만 포함되어 있습니다. 교차 검증 없이 이 데이터 세트를 사용하여 주택 판매 가격을 예측하는 모델을 구축하면 보스턴 주택 재고를 대표하지 않는 데이터 세트로 학습시킬 위험이 있습니다. 데이터를 학습 하위 집합과 검증 하위 집합으로 한 번만 분할하면 학습 폴드에는 주로 교외 지역의 데이터만 포함될 수 있습니다. 따라서 도시의 다른 지역을 대표하지 않는 데이터로 학습하게 됩니다. 이 예시에서는 이렇게 편향된 선택에 모델이 오버피팅할 가능성이 높습니다. K-폴드 교차 검증은 사용 가능한 데이터를 학습과 검증에 모두 무작위로 사용하여 이러한 종류의 오류가 발생할 위험을 줄일 수 있습니다.

교차 검증은 학습 시간을 평균 20% 늘릴 수 있습니다. 복잡한 데이터 세트의 경우 학습 시간은 크게 늘어날 수 있습니다.

참고

HPO 모드에서는 로그의 각 폴드에서 학습 및 검증 메트릭을 확인할 수 있습니다. /aws/sagemaker/TrainingJobs CloudWatch CloudWatch 로그에 대한 자세한 내용은 을 참조하십시오아마존에서 아마존 SageMaker 이벤트를 기록하세요 CloudWatch.

앙상블 모드

참고

Autopilot은 앙상블 모드에서 샘플 가중치를 지원합니다. 샘플 가중치를 지원하는 이용 가능한 지표 목록을 알아보려면 Autopilot 지표을/를 참조하세요.

앙상블 모드에서는 데이터 세트 크기에 관계없이 교차 검증이 수행됩니다. 고객은 자체 검증 데이터 세트와 사용자 지정 데이터 분할 비율을 제공하거나 Autopilot에서 자동으로 데이터 세트를 80-20% 분할 비율로 분할하도록 할 수 있습니다. 그런 다음 훈련 데이터는 교차 검증을 위해 k -folds로 분할되며, 여기서 의 k 값은 엔진에 의해 결정됩니다. AutoGluon 앙상블은 여러 기계 학습 모델로 구성되며, 각 모델을 기본 모델이라고 합니다. 단일 기본 모델은 (k-1) 접기에 대해 학습되고 나머지 접기에 out-of-fold 대한 예측을 수행합니다. 이 과정은 모든 k 폴드에 대해 반복되며, out-of-fold (OOF) 예측이 결합되어 단일 예측 세트를 형성합니다. 앙상블의 모든 기본 모델은 이와 동일한 OOF 예측 생성 프로세스를 따릅니다.

다음 이미지는 k = 4 폴드를 이용한 k-폴드 검증을 보여줍니다. 각 폴드는 행으로 표시됩니다. 어두운 톤의 상자는 학습에 사용된 데이터 부분을 나타냅니다. 나머지 밝은 색조 상자는 검증 데이터 세트를 나타냅니다.

이미지의 상단의 각 폴드에 대해 첫 번째 기본 모델은 학습 데이터 세트에 대해 학습시킨 후 검증 데이터 세트를 예측합니다. 각 후속 폴드에 대해 데이터 세트의 역할이 바뀝니다. 이전에 학습에 사용되었던 데이터 세트를 이제는 검증에 사용하며, 이는 역으로도 적용됩니다. k폴드가 끝나면 모든 예측이 결합되어 (OOF) 예측이라고 하는 단일 예측 집합이 형성됩니다. out-of-fold 이 프로세스는 n개의 각 기본 모델에 대해 반복됩니다.

k-폴드 검증: 상자에 있는 4행은 4폴드를 나타냅니다. 각 폴드는 OOF 예측 행을 생성합니다.

그런 다음 각 기본 모델에 대한 OOF 예측을 특징으로 사용하여 적층 모델(stacking model)을 학습시킵니다. 적층 모델은 각 기본 모델의 중요도 가중치를 학습합니다. 이러한 가중치는 OOF 예측을 결합하여 최종 예측을 구성하는 데 사용됩니다. 검증 데이터 세트의 성능에 따라 가장 적합한 기본 모델 또는 적층 모델이 결정되며 이 모델이 최종 모델로 반환됩니다.

앙상블 모드에서는 자체 검증 데이터 세트를 제공하거나 Autopilot이 입력 데이터 세트를 자동으로 80% 학습 데이터 세트와 20% 검증 데이터 세트로 분할하도록 할 수 있습니다. 그런 다음 학습 데이터를 교차 검증을 위해 k-폴드로 분할하고 각 폴드에 대한 OOF 예측과 기본 모델을 생성합니다.

이러한 OOF 예측은 각 기본 모델의 가중치를 동시에 학습하는 적층 모델을 학습하기 위한 특징으로 사용됩니다. 이러한 가중치는 OOF 예측을 결합하여 최종 예측을 구성하는 데 사용됩니다. 각 폴드의 검증 데이터 세트는 모든 기본 모델 및 적층 모델의 하이퍼파라미터 튜닝에 사용됩니다. 검증 데이터 세트의 성능에 따라 가장 적합한 기본 모델 또는 적층 모델이 결정되며 이 모델이 최종 모델로 반환됩니다.