LIME (설명 가능한 AI)
더 많은 작업
- LIME, Local Interpretable Model-agnostic Explanations; LIME
- 설명하려는 예측 하나의 주변에서 입력을 조금씩 바꿔 가며 모델의 반응을 모으고, 그 근처에서만 맞는 단순한 선형 모델로 근사해 예측 이유를 보여 주는 설명 기법
LIME(Local Interpretable Model-agnostic Explanations)은 어떤 분류기나 회귀 모델이든 내부를 보지 않고, 예측 함수만 호출해 개별 예측을 설명하는 설명 가능한 인공지능 기법이다. 2016년 워싱턴 대학교의 마르쿠 툴리우 히베이루(Marco Tulio Ribeiro), 사미르 싱(Sameer Singh), 카를로스 게스트린(Carlos Guestrin)이 KDD 학회 논문 〈"Why Should I Trust You?": Explaining the Predictions of Any Classifier〉로 발표했다.[1]
이름의 세 요소가 성격을 요약한다. 국소적(local)이라 모델 전체가 아니라 예측 한 건 주변만 설명하고, 해석 가능(interpretable)하도록 단어 유무나 이미지 조각 같은 사람이 이해할 수 있는 단위로 설명하며, 모델 무관(model-agnostic)이라 랜덤 포레스트든 합성곱 신경망이든 확률을 돌려주는 함수만 있으면 된다. 같은 사후 설명 계열인 SHAP과의 차이는 아래 비교 절에 정리했다.
설명할 모델을 , 설명할 입력을 라 하자. LIME은 해석 가능한 모델의 집합 (보통 희소 선형 모델) 안에서 다음을 푸는 를 설명으로 내놓는다.[1]
- 은 근처에서 가 를 얼마나 못 따라가는지(충실도의 반대)다. 논문은 국소 가중 제곱 손실을 쓴다.
- 는 해석 가능한 표현(예: 원래 문장의 각 단어가 남았는지를 나타내는 0/1 벡터), 는 그것을 원래 입력 공간으로 되돌린 것이다. 는 에 가까운 표본일수록 큰 가중치를 주는 지수 커널이고, 거리 는 텍스트에서는 코사인 거리, 이미지에서는 L2 거리를 쓴다.
- 는 설명의 복잡도다. 논문은 특징을 개까지만 허용하는 를 쓰고, 이를 직접 풀기 어려우므로 라소 정규화 경로로 특징 개를 고른 뒤 최소제곱으로 가중치를 맞추는 K-LASSO로 근사한다.
- 설명할 입력 를 해석 가능한 표현 로 바꾼다. 텍스트는 단어 주머니, 이미지는 슈퍼픽셀(비슷한 색의 픽셀 덩어리), 표 데이터는 구간화한 특징이다.
- 의 일부 성분을 무작위로 끈 표본 을 만든다(단어 삭제, 슈퍼픽셀 회색 처리 등).
- 각 표본을 원래 입력 공간으로 되돌린 에 대해 모델 예측 와 근접도 를 구한다.
- 를 특징, 를 목표, 를 표본 가중치로 해서 희소 선형 모델을 학습한다.
- 그 가중치 를 "이 예측에 대한 특징별 기여"로 보여 준다.
비용은 데이터셋 크기와 무관하고 모델 호출 횟수 에 비례한다. 논문은 노트북에서 나무 1,000그루짜리 scikit-learn 랜덤 포레스트를 으로 설명하는 데 3초가 안 걸렸고, Inception 이미지 분류 신경망의 예측 하나를 설명하는 데는 약 10분이 걸렸다고 적었다.[1]
예측 하나의 설명으로는 모델 전체를 믿을지 판단하기 어렵다. 논문은 사용자가 볼 수 있는 예산 개 안에서, 중요한 특징을 겹치지 않게 최대한 많이 보여 주는 예측들을 고르는 SP-LIME(submodular pick)도 제안했다. 설명 행렬 (예측 에서 특징 의 가중치)로 특징 중요도 를 구하고, 고른 집합 가 덮는 중요도의 합
을 최대화한다. 이 함수는 부분 모듈(submodular)이라 탐욕 알고리즘으로 좋은 근사해를 얻는다.
논문의 가장 유명한 실험이다. 연구진은 늑대 사진에는 모두 눈 배경이 있고 허스키 사진에는 없도록 고른 20장으로 일부러 나쁜 분류기를 학습시켰다. 이 분류기는 동물과 상관없이 눈이 있으면 "늑대"라고 답한다. 대학원 기계 학습 과목을 하나 이상 들은 대학원생 27명에게 설명 없이 예측만 보여 주었을 때는 10명이 이 모델을 믿었고 12명만 눈을 의심했다. LIME 설명(눈 배경 슈퍼픽셀이 "늑대"의 근거로 강조된 그림)을 보여 준 뒤에는 믿는 사람이 3명으로 줄고 25명이 눈을 원인으로 지목했다.[1] 설명이 데이터 수집 과정의 허위 상관을 찾는 데 쓰일 수 있음을 보인 사례다.
저자가 공개한 파이썬 패키지 lime이 표준 구현이다. 현재 PyPI 최신판은 2020년 6월의 0.2.0.1이다. 표 데이터는 LimeTabularExplainer, 텍스트는 LimeTextExplainer, 이미지는 LimeImageExplainer를 쓴다.
#pip install lime scikit-learn (lime 0.2.0.1, scikit-learn 1.7에서 실행 확인)
from sklearn.datasets import load_breast_cancer
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from lime.lime_tabular import LimeTabularExplainer
data = load_breast_cancer()
X_tr, X_te, y_tr, y_te = train_test_split(data.data, data.target, random_state=0)
clf = RandomForestClassifier(n_estimators=200, random_state=0).fit(X_tr, y_tr)
explainer = LimeTabularExplainer(
X_tr, # 표본 생성용 통계(평균, 분산, 사분위)를 여기서 얻는다
feature_names=list(data.feature_names),
class_names=list(data.target_names),
mode="classification",
discretize_continuous=True, # 연속 변수를 사분위 구간 조건으로 설명
random_state=0,
)
exp = explainer.explain_instance(
X_te[0],
clf.predict_proba, # 확률을 돌려주는 함수면 어떤 모델이든 된다
num_features=5, # 설명에 쓸 특징 수 K
num_samples=5000, # 섭동 표본 수 N
)
print(exp.as_list()) # [('worst concave points > 0.16', -0.11), ...]
print(exp.score) # 국소 대리 모델의 결정계수(R^2)
as_list()는 기본 설명 대상 클래스(labels=(1,), 이 데이터에서는 양성 종양)에 대한 조건과 가중치를 돌려준다. 음수 가중치는 그 조건이 예측을 해당 클래스에서 멀어지게 했다는 뜻이다. exp.score가 낮으면 국소 선형 근사 자체가 잘 맞지 않은 것이므로 설명을 그만큼 덜 믿어야 한다.
구현 세부는 논문과 조금 다르다. 소스 코드를 보면 표 데이터 기본 커널 폭은 이고, 커널은 꼴이다. 텍스트 설명기의 기본 커널 폭은 25, 이미지 설명기는 0.25이고 이미지 분할 기본값은 quickshift 알고리즘이다. 특징 선택 기본값 auto는 특징이 6개 이하면 전진 선택, 그보다 많으면 가중치 상위 선택을 쓰고, 최종 대리 모델은 Ridge(alpha=1)이다.
2017년 룬드버그(Scott Lundberg)와 리(Su-In Lee)는 LIME을 포함한 여섯 가지 기존 방법이 모두 "특징 기여의 합으로 예측을 설명하는" 가산적 특징 귀속이라는 한 부류에 속하며, 이 부류에서 몇 가지 바람직한 성질을 만족하는 해는 섀플리 값뿐임을 보였다.[2] 이 논문의 Kernel SHAP은 LIME과 같은 "섭동 후 가중 선형 회귀" 틀에서 커널과 손실을 특별히 골라 섀플리 값을 추정하는 방법이다.
| 항목 | LIME | SHAP(Kernel SHAP 기준) |
|---|---|---|
| 이론적 근거 | 국소 충실도와 단순성의 절충(경험적) | 협력 게임 이론의 섀플리 값 |
| 가중치 커널 | 거리 기반 지수 커널, 폭은 사용자가 정함 | 섀플리 커널(부분집합 크기로 결정) |
| 기여의 합 | 예측값과 일치한다는 보장 없음 | 기여의 합 + 기준값 = 예측값 |
| 결과 안정성 | 표본·커널 폭에 따라 흔들림 | 정확한 섀플리 값은 유일하나, Kernel SHAP 추정은 표본 수에 따라 흔들리고 계산량이 큼 |
| 전역 설명 | SP-LIME으로 대표 사례 선택 | 개별 SHAP 값을 모아 요약 그림 |
| 맞는 상황 | 빠른 진단, 텍스트·이미지의 직관적 시연 | 기여의 합이 예측과 맞아야 하는 분석, 여러 예측 간 비교 |
- 불안정성: 같은 입력도 무작위 표본에 따라 설명이 바뀌고, 거의 같은 두 입력이 꽤 다른 설명을 받을 수 있다. 알바레스멜리스(David Alvarez-Melis)와 야콜라(Tommi Jaakkola)는 이런 강건성 부족을 지표로 재고 LIME 등 기존 방법이 좋지 않음을 보였다.[3] 실무에서는
random_state를 고정하고 여러 번 돌려 결과를 비교한다. - 커널 폭과 국소성의 모호함: "주변"을 얼마나 넓게 볼지에 정답이 없고, 폭을 바꾸면 설명이 달라진다.
- 비현실적 표본: 표 데이터 표본을 특징별로 독립적으로 뽑으므로 "나이 5세, 기혼" 같은 데이터 분포 밖의 점이 섞인다. 모델은 그런 점에서 아무렇게나 반응할 수 있고, 설명은 그 반응을 근사한다.
- 공격 가능성: 슬랙(Dylan Slack) 등은 입력이 실제 데이터처럼 보이면 편향된 모델을, LIME·SHAP이 만든 섭동 표본처럼 보이면 무해한 모델을 쓰는 "비계"(scaffolding) 분류기를 만들어, 인종을 직접 쓰는 극단적으로 편향된 분류기의 설명을 무해하게 꾸밀 수 있음을 COMPAS 등 실제 데이터로 보였다.[4]
- 국소 선형성 가정: 예측 주변에서도 모델이 강하게 비선형이면 충실한 선형 설명이 존재하지 않는다. 논문도 이를 한계로 적었다.[1]
- ↑ 1.0 1.1 1.2 1.3 1.4 Marco Tulio Ribeiro, Sameer Singh, Carlos Guestrin, 〈"Why Should I Trust You?": Explaining the Predictions of Any Classifier〉, KDD 2016. arXiv:1602.04938
- ↑ Scott Lundberg, Su-In Lee, 〈A Unified Approach to Interpreting Model Predictions〉, NIPS 2017. arXiv:1705.07874
- ↑ David Alvarez-Melis, Tommi S. Jaakkola, 〈On the Robustness of Interpretability Methods〉, ICML 2018 WHI 워크숍. arXiv:1806.08049
- ↑ Dylan Slack 외, 〈Fooling LIME and SHAP: Adversarial Attacks on Post hoc Explanation Methods〉, 2019. arXiv:1911.02508