데이터과학 삼학년

Counterfactual Explanations 본문

Explainable AI

Counterfactual Explanations

Dan-k 2023. 3. 27. 12:52
반응형

Counterfactual Explanations은 XAI에서 중요한 개념 중 하나로, 머신러닝 모델의 예측 결과를 해석하는 데 사용됩니다. 이번 글에서는 Counterfactual Explanations의 개념과 예시, 그리고 샘플 코드를 다룰 것입니다.

 

Counterfactual Explanations란?

Counterfactual Explanations은 한국어로 "대조적 설명"이라고도 불리며, 머신러닝 모델이 내놓은 결과를 해석하는 방법 중 하나입니다. 머신러닝 모델이 입력 데이터를 기반으로 한 예측을 내놓았을 때, Counterfactual Explanations은 이 예측 결과를 해석하기 위해, 어떤 입력 데이터를 조작하면 예측 결과가 바뀔지 예측하는 방법을 사용합니다.

간단한 예시로, 예측 모델이 주어진 사진이 개인지 고양이인지 판별하는 모델이라고 가정해봅시다. 만약 이 모델이 주어진 사진이 개라고 예측했다면, Counterfactual Explanations은 이 사진에서 개의 특징을 제거하거나, 고양이의 특징을 추가하는 등의 입력 데이터 조작을 통해, 이 모델이 고양이로 예측하게 만들 수 있는 조건을 찾아냅니다.

 

Counterfactual Explanations의 활용

Counterfactual Explanations은 주로 머신러닝 모델의 예측 결과를 해석하는 데 사용됩니다. 예를 들어, 의료 분야에서 환자의 질병을 예측하는 머신러닝 모델을 만든 경우, 이 모델이 어떤 특징을 고려해서 환자를 질병이 있는 그룹에 속한 것으로 판단했는지 알아내기 위해 Counterfactual Explanations을 사용할 수 있습니다. 이를 통해 의료 전문가가 환자의 상태를 더욱 정확하게 파악하고, 진단과 치료를 더욱 효과적으로 수행할 수 있습니다.

https://christophm.github.io/interpretable-ml-book/counterfactual.html

반응형

샘플 코드

import tensorflow as tf
import numpy as np
from sklearn.preprocessing import MinMaxScaler
from alibi.explainers import CounterfactualProto

# 학습된 모델 불러오기
model = tf.keras.models.load_model('my_model.h5')

# 입력 데이터 정규화 함수
def normalize(x):
    scaler = MinMaxScaler()
    return scaler.fit_transform(x)

# Counterfactual 객체 생성
cf = CounterfactualProto(model, shape=(1, 28, 28, 1), target_class=7,
                         distance_fn='l2', target_proba=0.9, max_iterations=1000,
                         early_stop=0.1, lam_init=1e-1, max_lam_steps=10, tol=0.01)

# 입력 데이터 준비
x = np.random.rand(1, 28, 28, 1)
x_normalized = normalize(x)

# Counterfactual 생성
explanation = cf.explain(x_normalized)
728x90
반응형
LIST

'Explainable AI' 카테고리의 다른 글

SHAP 그래프 해석  (0) 2024.01.12
Grad-CAM  (0) 2023.03.24
Feature Interaction  (0) 2022.12.21
Accumulated Local Effects (ALE) Plot  (0) 2022.12.03
LIME 결과 소수점 자리 핸들링  (0) 2022.07.21
Comments