특성 기반 설명 개선

커스텀 학습 모델을 사용하는 경우 특정 매개변수를 구성하여 설명을 개선할 수 있습니다. 이 가이드에서는 Vertex Explainable AI에서 오류에 대해 얻은 설명을 검사하는 방법과 Vertex Explainable AI 구성을 조정하여 오류를 해결하는 방법을 설명합니다.

AutoML 테이블 형식 모델에서 Vertex Explainable AI를 사용하려는 경우에는 구성을 수행할 필요가 없습니다. Vertex AI는 Vertex Explainable AI용 모델을 자동으로 구성합니다. 이 문서를 건너뛰고 설명 받기를 읽어보세요.

Vertex Explainable AI 특성 기여 분석 방법은 Shapley 값의 변형을 기반으로 합니다. Shapley 값의 계산 비용이 매우 높기 때문에 Vertex Explainable AI는 정확한 값 대신 근사치를 제공합니다.

다음 입력을 변경하여 근사치 오류를 줄이고 정확한 값에 더 가까운 근사치를 얻을 수 있습니다.

  • 적분 단계 수 또는 경로 수를 늘립니다.
  • 선택한 입력 기준을 변경합니다.
  • 입력 기준을 더 추가합니다. 통합 경사 및 XRAI 메서드에 추가 기준을 사용하면 지연 시간이 늘어납니다. 샘플링된 Shapley 메서드에 추가 기준을 사용하면 지연 시간이 늘어나지 않습니다.

오류 설명 검사

Vertex Explainable AI에 설명을 요청하여 받은 후 근사치 오류의 설명을 확인할 수 있습니다. 설명에 근사치 오류가 높은 경우 설명이 불안정할 수 있습니다. 이 섹션에서는 오류를 확인하는 몇 가지 방법을 설명합니다.

approximationError 필드 확인

Attribution에 대해 Vertex Explainable AI가 approximationError 필드에 근사치 오류를 반환합니다. 근사치 오류가 0.05를 초과할 경우 Vertex Explainable AI 구성을 조정해 보세요.

통합 경사 기법에서는 특성 기여 분석의 합계를 입력 점수 및 기준 점수에 예측되는 값 차이와 비교하여 근사치 오류를 계산합니다. 통합 경사 기법의 경우 특성 기여 분석은 기준과 입력 간 경사 값의 적분에 대한 근사치입니다. 리만 합 메서드보다 정확하기 때문에 적분 근사치를 구하기 위해 가우시안 구적법 규칙을 사용합니다.

예측 및 기준 출력 간의 차이점 확인

Attribution에 대해 Vertex Explainable AI는 instanceOutputValue를 반환하며 이는 특성 기여 분석이 사용되는 예측 출력의 일부를 나타냅니다. 또한 baselineOutputValue를 반환하며 이는 실제 입력 인스턴스가 아닌 입력 기준에 따라 예측이 수행되었을 때 예측 출력의 일부를 나타냅니다.

모든 기여 분석에 대해 instanceOutputValuebaselineOutputValue의 차이가 0.05 미만이면 입력 기준을 변경해야 할 수 있습니다.

구성 조정

다음 섹션에서는 Vertex Explainable AI 구성을 조정하여 오류를 줄이는 방법을 설명합니다. 다음 변경사항을 적용하려면 모델을 Endpoint 리소스에 다시 배포하거나 새 일괄 예측을 수행하여 ExplanationSpec이 업데이트된 새로운 Model 리소스를 구성하거나 기존 ModelExplanationSpec을 재정의해야 합니다.

단계 또는 경로 증가

근사치 오류를 줄이려면 다음을 늘릴 수 있습니다.

기준 조정

입력 기준은 추가 정보를 제공하지 않는 기능을 나타냅니다. 표 형식 모델의 기준은 학습 데이터와 관련해서 중앙값, 최솟값, 최댓값, 임의 값을 나타낼 수 있습니다. 마찬가지로 이미지 모델의 경우 기준이 검은색 이미지, 흰색 이미지, 회색 이미지 또는 임의 픽셀 값이 있는 이미지일 수 있습니다.

Vertex Explainable AI를 구성할 때 선택적으로 input_baselines 필드를 지정할 수 있습니다. 그렇지 않은 경우 Vertex AI가 입력 기준을 선택합니다. 이 가이드의 이전 섹션에서 발생한 문제를 발견하면 Model의 각 입력에 대해 input_baselines를 조정하는 것이 좋습니다.

일반적으로 다음과 같습니다.

  • 중앙값을 나타내는 하나의 기준으로 시작합니다.
  • 이 기준을 임의 값을 나타내는 항목으로 변경합니다.
  • 최솟값 및 최댓값을 나타내는 두 기준을 시도합니다.
  • 임의 값을 나타내는 또 다른 기준을 추가합니다.

테이블 형식 데이터 예시

다음 Python 코드는 테이블 형식 데이터로 학습된 가상의 TensorFlow 모델에 대한 ExplanationMetadata 메시지를 만듭니다.

input_baselines는 여러 기준을 지정할 수 있는 목록입니다. 이 예시에서는 기준을 하나만 설정합니다. 기준은 학습 데이터의 중앙값 목록입니다(이 예시의 train_data).

explanation_metadata = {
    "inputs": {
        "FEATURE_NAME": {
            "input_tensor_name": "INPUT_TENSOR_NAME",
            "input_baselines": [train_data.median().values.tolist()],
            "encoding": "bag_of_features",
            "index_feature_mapping": train_data.columns.tolist()
        }
    },
    "outputs": {
        "OUTPUT_NAME": {
            "output_tensor_name": "OUTPUT_TENSOR_NAME"
        }
    }
}

ExplanationMetadata를 사용하는 방법에 대한 자세한 내용은 커스텀 학습 모델에 대한 설명 구성을 참조하세요.

최솟값 및 최댓값을 나타내는 두 기준을 설정하려면 [train_data.min().values.tolist(), train_data.max().values.tolist()]와 같이 input_baselines를 설정합니다.

이미지 데이터 예시

다음 Python 코드는 이미지 데이터로 학습된 가상의 TensorFlow 모델에 대한 ExplanationMetadata 메시지를 만듭니다.

input_baselines는 여러 기준을 지정할 수 있는 목록입니다. 이 예시에서는 기준을 하나만 설정합니다. 기준은 임의 값 목록입니다. 학습 데이터 세트에 많은 흑백 이미지가 포함된 경우 이미지 기준에 임의 값을 사용하는 것이 좋습니다.

그렇지 않으면 흑백 이미지 표시를 위해 input_baselines[0, 1]로 설정합니다.

random_baseline = np.random.rand(192,192,3)

explanation_metadata = {
    "inputs": {
        "FEATURE_NAME": {
            "input_tensor_name": "INPUT_TENSOR_NAME",
            "modality": "image",
            "input_baselines": [random_baseline.tolist()]
        }
    },
    "outputs": {
        "OUTPUT_NAME": {
            "output_tensor_name": "OUTPUT_TENSOR_NAME"
        }
    }
}

다음 단계

  • 이 페이지에 설명된 대로 구성 변경사항을 적용하려면 설명 구성 가이드를 따르세요.