Kicarussays

[논문리뷰/설명] LIME: "Why Should I Trust You?" Explaining the Predictions of Any Classifier 본문

Explainable AI

[논문리뷰/설명] LIME: "Why Should I Trust You?" Explaining the Predictions of Any Classifier

Kicarus 2021. 8. 2. 10:34

딥러닝을 비롯한 여러 방법론들은 우수한 성능을 보이며 각광받고 있지만, 그런 방법론들에는 늘 "Blackbox"라는 꼬리표가 달려 있습니다. 아무래도 모델의 복잡성이 증가할수록 성능은 향상되지만 설명력이 낮아진다는 점에서 그렇겠죠.

 

이번에 소개할 논문은 이런 블랙박스 모델들을 인간의 언어로 설명하는 방법론에 대한 논문입니다. 제가 포스팅을 하고 있는 2021년 8월 기준으로 6105회(;;;) 인용되었네요. 2016년에 발표된 논문임을 감안하면 정말 엄청난 인용수입니다.

 

이 논문을 쓰신 Marco Tulio Ribeiro 교수님은 마이크로소프트 리서치에서 근무 중이고, 박사 학위를 받았던 워싱턴 대학에서 겸임교수를 하고 있다고 하네요. 대단한 이력을 가지고 있으신 만큼 이 논문도 정말 신선하고 놀라운 방법론들을 소개하고 있습니다. 이제 시작해보겠습니다!

 

논문 링크: https://arxiv.org/abs/1602.04938

 

"Why Should I Trust You?": Explaining the Predictions of Any Classifier

Despite widespread adoption, machine learning models remain mostly black boxes. Understanding the reasons behind predictions is, however, quite important in assessing trust, which is fundamental if one plans to take action based on a prediction, or when ch

arxiv.org

 

 

 

 

 Introduction & The Case For Explanations

 

머신 러닝 기법들은 많은 성과를 거두고 있지만, 아무리 성능이 좋은 모델이라도 사용자가 납득할 수 있는 설명을 제시하지 못한다면 모델을 차용하기 어려울 것입니다. 특히 사람의 건강과 생명이 걸린 의료현장에서는, 의사가 납득할 수 있도록 설명가능하고 신뢰할 수 있는 모델만이 사용될 수 있습니다.

 

여기서 저자는 신뢰(Trust)에 대하여 두 가지 정의를 내립니다.

 

  • 개별 예측값에 대한 신뢰(Trusting a prediction)
  • 모델에 대한 신뢰(Trusting a model)

 

본 논문에서는 이렇게 정의한 두 가지 신뢰 문제를 해결하기 위해 설명(Explanation)을 제시하는 알고리즘을 제안합니다. 개별 예측값에 대한 설명을 제시하는 LIME(Local Interpretable Model-agnostic Explanations), 모델에 대한 설명을 돕기 위해 대표적인 Instance 집합을 구성하는 SP-LIME(Submodular Pick - LIME)입니다. 

 


 

이 두 알고리즘을 설명하기에 앞서, 그렇다면 설명은 어떤 방식으로 제시되는지 살펴볼 필요가 있습니다.

 

개별 예측값에 대한 설명은, 어떤 모델이 Output을 제시했을 때, 이 Output이 어떤 Input의 영향을 받아 제시되었는지에 대한 설명입니다. 논문에서는 아래 그림으로 개별 예측값에 대한 설명을 표현합니다. 독감을 예측하는 모델에서, "환자(Input)가 독감(Output)이다"라는 결론을 냈을 때, LIME은 어떤 Input에 가중치를 두고 독감이라는 결론을 내렸는지 말해줍니다. 

 

모델에 대한 설명은, 전체 모델이 어떤 Feature들을 중요하게 여기는지에 대한 설명입니다. 이를 간단히 표현하자면, 어떤 두 모델 중 하나를 선택하고자 할 때, 전체적으로 더 합리적인 설명들을 제시하는 모델을 선택한다는 것입니다.

위 그림에서는 두 알고리즘 중에서 어떤 알고리즘을 선택할지 고민 중인 상황입니다. 무신론자를 찾는 모델에서, 알고리즘 1이 더 합리적으로 변수의 유의성을 보여주고 있는 것을 볼 수 있습니다. 만약 성능의 차이가 크지 않다면, 인간의 입장에서 합리적인 근거로 결론을 도출하는 알고리즘을 선택하게 되겠죠.

 


 

이어서 저자는 LIME을 비롯한 설명 모델(Explainer)들이 갖추어야 할 세 가지 요건들을 제시합니다.

1. Interpretability

인간이 이해할 수 있는 방식으로 설명이 제시되어야 한다는 것입니다.

만약 Random Forest처럼 수백, 수천 개의 트리를 구성하거나, 몇천 개의 변수를 활용하는 회귀분석 등은 인간의 언어로 설명이 어려울 것입니다. 저자는 중요한 변수를 선별하여 설명하는 등의 작업이 필요하고, 이 Interpretabillity의 개념은 설명 대상(Target Audience)에 따라 달라질 수 있다고 말합니다.

2. Local Fidelity

모델이 제시하는 설명이 적어도 국소적으로는 합리적(Locally Faithful)이어야 한다는 것입니다.

이 개념은 전체적으로는 중요한 Feature(Global Fidelity)가 개별 Prediction을 예측할 때는 중요하지 않을 수 있다는 사실에서 기인한 것입니다. 예를 들어, 흰 쌀밥, 주스, 바나나 등 당뇨 환자들이 피해야 하는 대표적인 음식들이 있습니다. 하지만 어떤 당뇨환자의 상태가 나빠졌다고 해서 저런 음식들만이 영향을 미치지는 않았을 것이고, 더 영향을 준 국소적인 영향이 있을 것이며, Explainer는 이 국소적인 영향(Local Fidelity)을 제시해줄 수 있어야 한다는 것입니다. 이런 Local Fidelity를 잘 보여주는 아래 그림을 논문에서 제시하고 있습니다.

3. Model-agnostic

Explainer는 해석의 대상이 되는 모델의 종류와 관계없이 설명을 제시할 수 있어야 한다는 것입니다. 

Decision Tree, Logistic Regression 등 그 자체로 해석이 가능한 모델들이 있습니다. 하지만 우수한 성능을 자랑하는 최신 모델들은 우수한 성능만큼 복잡하고 인간의 언어로 설명이 매우 어렵습니다. 이러한 모델의 복잡성에 구애받지 않고 설명을 제시할 수 있어야한다는 것이 Explainer의 마지막 요건입니다.

 


 

지금까지 신뢰(Trust)의 정의, Explainer가 제시하는 설명의 형태, Explainer가 갖추어야 할 세 가지 요건에 대해 살펴보았습니다. 이제 본격적으로 LIME 알고리즘에 대해서 살펴봅시다.

 

 

 

 

Local Interpretable Model-agnostic Explanation(LIME)

 

LIME의 목표는 분류기(Classifier)에서 Locally Faithful한 설명을 제시하는 것입니다.

 

3.1 Interpretable Data Representation

해석가능한 설명은 인간이 이해가 가능한 형태이어야 합니다. 따라서 $d$개의 Feature를 가진 원래 데이터 $x \in \mathbb{R}^{d}$를 $x' \in \left\{ 0, 1 \right\}^{d'}$의 이진벡터 형태로 나타낼 것입니다. 물론 $d' \le d$ 입니다. 그렇다면 $d'$은 어떻게 결정하는지 의문의 생기게 될텐데, LIME에서는 Lasso 회귀분석을 통해서 $d'$개의 Feature를 추출하는 방식으로 진행됩니다.

 

3.2 Fidelity-Interpretability Trade-off

모델은 복잡할수록 성능이 좋은 편이고, 이 부분에서 성능과 복잡도 사이에는 Trade-off가 있습니다. LIME에서 Trade-off 관계를 활용하여 가장 좋은 Explainer를 찾습니다. 이 과정이 수식으로 어떻게 나타나는지 봅시다.

 

Explainer $g \in G$를 정의합니다. Explainer이기 때문에 설명 가능한 모델이어야 하고, 우리가 아는 Decision Tree, Linear Model 등이 $G$의 원소가 될 수 있습니다. 모델 $g$의 정의역은 $\left\{ 0, 1 \right\}^{d'}$입니다. 즉, 3.1에서 정의했던 $x'$들이 g의 Input이 됩니다.

 

모든 $g$가 같은 수준으로 설명을 하지 않기 때문에, $g$의 복잡도를 $\Omega(g)$로 정의합니다. 이 값이 커질수록 설명력은 감소하게 되겠죠. 예를 들어 Decision Tree같은 경우에는 Tree의 깊이가 될 것이고, Linear Model같은 경우에는 0이 아닌 계수를 가진 변수의 개수가 될 것입니다.

 

이제 우리가 설명하고자 하는 대상이 되는 모델 $f: \mathbb{R}^d \to \mathbb{R}$를 정의합시다. $f(x)$에서 $x$는 한 데이터(Instance), $f(x)$는 모델의 Output입니다. 

 

설명하고자 하는 Instance $x$의 Locality를 정의하기 위해 다른 Instance $z$와의 거리 $\pi_x (z)$를 정의합니다. $x$를 설명하기 위해, $x$와 가까운(유사한) Instance들을 정의하기 위한 것입니다. $\pi_x (z)$는 $x, z$가 가까울수록 값이 커지는 함수입니다.

 

최종적으로 $g$의 설명력을 측정하는 $\mathcal{L}(f, g, \pi_x)$를 정의합니다. $\mathcal{L}$은 값이 작을수록 설명력이 높습니다.

  


 

본 논문에서 LIME을 통해서 생성되는, Instance $x$에 대한 Explanation은 다음과 같이 얻어집니다.

$$\xi (x) = \operatorname{argmin}_{g \in G}\, \mathcal{L}(f, g, \pi_x) + \Omega(g), \tag{1}$$

설명하고자 하는 모델 $f$의 Input Instance $x$에 대하여, 작을수록 높은 설명력을 나타내는 $\mathcal{L}$과 작을수록 모델의 복잡도가 낮은 $\Omega(g)$의 합을 가장 적게 하는 Explainer $g$를 찾는 방식입니다. ($\mathcal{L}$과 $\Omega(g)$는 서로 trade-off 관계에 있습니다)

 

이 식이 어떻게 구체적으로 계산되는지는 3.4에서 다룰 것입니다.

 

3.3 Sampling for Local Exploration

Introduction에서 소개했던 Explainer의 세 가지 요건 중 Local Fidelity를 떠올려봅시다. 당뇨에 좋지 않은 음식이라고 해서, 어떤 당뇨환자가 항상 그 음식으로 인해 문제가 생겼다고 볼 수는 없고, 다른 국소적인(Local) 원인이 있을 수 있습니다. 따라서 $x$에 대한 설명을 제시하기 위해서, $x$와 근처에 있는 Instance들을 같이 살펴보아야 합니다. 따라서 이번 챕터가 Sampling for Local Exploration입니다. $x$ 근처의 것들을 찾아보는 것이죠.

 

먼저 $x$를 설명가능한 형태로 변환했던 $x' \in \left\{ 0, 1 \right\}^{d'}$을 생각해봅시다.

 

LIME에서는 $x'$에서 0이 아닌 원소들을 랜덤으로 추출하는 방식으로 근처를 샘플링합니다. 예를 들어 $x'$이 (0, 1, 1, 0, 1)일 때, (0, 0, 1, 0, 1), (0, 1, 0, 0, 1), (0, 0, 0, 0, 1) 이런 식으로 샘플링 하는 것이죠. 이 샘플들을 $z'$이라고 정의합니다. $z'$들은 $x'$의 0이 아닌 원소들의 일부를 가지고 있을 것입니다.

 

이제 이 $z'$들을 원래의 차원으로 복원한 것을 $z \in \mathbb{R}^d$로 정의합니다. 여기서 $f(z)$를 얻을 수 있고, 이 값들을 활용하여 $\mathcal{L}$을 계산하게 될 것입니다. 이제 알고리즘을 살펴봅시다.

 

3.4  Sparse Linear Explanation

LIME은 Instance $x$를 Input으로 받고, 설명(Explanation)을 Output으로 내주는 모델입니다.

(논문의 알고리즘에는 Lasso가 밑에 부분에 나와있는데, 먼저 수행해주어야 하는 것으로 이해했습니다)

 

<LIME 작동 예시>

1. 전체 데이터 X에 대하여, Lasso Regression을 수행하고, 총 $K$개의 Feature를 먼저 선정합니다.

 

  • $K$는 3.1에서의 $d'$이 됩니다. ($K$는 하이퍼파라미터)
  • 3.2의 (1)번 식에서 모델의 복잡도에 따라 부여했던 $\Omega(g)$를 Lasso Regression으로 대체한 것입니다.
    (K개 Feature를 먼저 선정하여 설명의 복잡도($\Omega(g)$)를 상수화함)

 

2. 이제 설명하고자 하는 모델 $f$와 Instance $x$에 대해서, $x', z', z$를 가져올 수 있습니다.

 

  • $x', z'$은 크기가 $K$인 벡터입니다.
  • $N$개의 $z'$을 가져옵니다. ($N$은 하이퍼파라미터)

 

3. $\mathcal{L} (f, g, \pi_x)$에 대해 다음과 같이 정의합니다. 이것은 정해져 있는 것이 아니라, LIME의 작동 예시를 살펴보기 위한 예시입니다. 

$$\mathcal{L} (f, g, \pi_x) = \sum_{z, z' \in \mathcal{Z}} \pi_x (z) \left( f(z) - g(z') \right)^2$$

 

  • $\pi_x (z)$는 $x, z$가 가까울수록 값이 커지는 함수입니다. ($\pi_x$는 하이퍼파라미터)
  • 직관적으로 $x, z$가 가까울수록 기존 모델의 결과값인 $f(z)$와, Explainer의 결과값인 $g(z')$의 차이가 작아야 한다는 뜻입니다.
    ($\mathcal{L}$ 은 이러한 기조를 유지해야 합니다)
  • 여기서 $g$는 설명 가능한 모델로 Decision Tree나 Linear Model 등이 될 수 있습니다.

 

4. $\xi (x) = \operatorname{argmin}_{g \in G}\, \mathcal{L} (f, g, \pi_x) + \Omega(g)$를 구합니다. Explainer $g$가 어떤 변수에 가중치를 두고 있는지 설명할 수 있습니다.

 


 

여기까지 LIME의 작동 원리를 살펴보았습니다. LIME은 설명하고자 하는 모델 $f$의 종류에 구애받지 않고 적용할 수 있다는 장점이 있지만, 내재적인 단점도 있다고 밝히고 있습니다.

 

  • Blackbox 모델을 Interpretable 모델로 설명하는 과정에서, 성능이 저하될 수 있다.
  • Explainer로 Linear Model을 선정할 경우, Non-linear 모델을 설명할 때 Locality 설명이 왜곡될 수 있다.

 

이러한 한계들은 앞으로 Explainable AI 연구에서 발전해나가야 할 부분이 될 것입니다.

 

 

 

 

 Submodular Pick for Explaining Models (SP-LIME)

 

LIME은 개별 결과값들을 설명하는 방법입니다. 그렇다면, 두 모델 중 우수한 모델을 선정하기 위해서는 어떻게 해야할까요?

데이터의 개수가 많다면 모든 데이터의 설명을 살펴보는 것은 어려울 것입니다. 따라서 우리는 가장 모델을 잘 설명하는 대표 데이터군을 선정할 필요가 있습니다. SP-LIME은 대표 데이터군을 뽑는 알고리즘입니다.

<SP-LIME 작동 원리>

1. 모든 데이터 $x_i$에 대하여 LIME을 수행하고 output을 $\mathcal{W}_i$에 할당합니다.

 

  • LIME은 결과적으로 설명 가능한 모델 $g_i$를 산출하고, $g_i$의 계수들이 Instance $x_i$에 대한 설명(Explain)이 됩니다.

 

2. 모든 Feature(설명 가능 모델 $g$로 들어가는 $d'$개의 Feature)들에 대하여 $I_j$에 $\sqrt{\sum_{i=1}^{n} |\mathcal{W}_{ij}|}$를 할당하는 방식으로 Feature Importance(변수 중요도)를 계산합니다.

 

3. 모델의 설명력을 보기 위해 살펴볼 Instance의 개수 $B$를 결정합니다. ($B$는 하이퍼파라미터)

 

4. Coverage 함수 $c(V, W, I) = \sum_{j=1}^{d'} \mathbf{1}_{\left[ \exists i \in V : \mathcal{W}_{ij} > 0 \right]} I_j$ 에 대하여, Greedy Algorithm 방식으로 $V$의 원소 개수가 $B$가 될 때까지 $\operatorname{argmax}_{i}\, c(V \cup \left\{ i \right\}, \mathcal{W}, I)$ 추가합니다.

 

  • Coverage 함수는 $V$내의 모든 원소들에 대하여, 가중치가 0 이상인 Feature들의 Importance를 더한 값입니다.
  • Coverage 문제는 NP-Hard 문제이기 때문에 Greedy Algorithm 방식을 차용합니다.
  • 이와 같은 방식으로 모든 Feature를 Cover하는 Instance들을 뽑습니다.

 

결국 사용자가 살펴볼 Instance의 개수($B$)를 먼저 정해두고, 그 개수 안에서 Feature들을 가장 많이 Cover하는 Instance들을 뽑는 알고리즘입니다. 이제 뽑은 Instance들의 설명(Explain)을 하나하나 확인하며 모델의 사용 여부를 결정하는 것은 사용자의 몫이 될 것입니다.

 

 

 

 

 Simulated User Experiments

 

이제 LIME과 SP-LIME이 잘 작동하는지 확인하기 위해 세 가지를 검증해야 합니다.

 

  1. 설명 자체가 합당한가?
  2. 이 예측이 합당한가?
  3. 이 모델이 합당한가?

 

검증 방식과 결과를 살펴봅시다.

 

1. 설명 자체가 합당한가?

이에 대한 대답을 위해 그 자체로 설명가능한 모델 Logistic Regression, Decision Tree를 사용합니다. Decision Tree, Logistic Regression으로부터 가장 유의한 Feature 10개를 선정하고, LIME의 결과로 나온 Feature들이 이 10개의 Feature를 잘 Cover하는지 Recall(재현율)을 확인합니다. 

 

아래 결과에서 LIME과의 비교 대상은 임의 추출(Random), Parzen(다른 방법론), Greedy입니다. 이들 중에서 LIME이 가장 좋은 결과를 보였다는 것을 말하고 있습니다. 

즉, LIME이 중요하다고 선정한 Feature들과 기존 설명가능 방법론들이 선정한 Feature이 90% 이상의 재현율을 보였다는 것입니다.

 

2. 이 예측이 합당한가?

LIME의 예측을 믿을 수 있는지 확인하기 위해, 단계별로 살펴봅시다.

 

0) 설명하고자 하는 모델 $f$, LIME Explainer $g$, Input 데이터셋 $X$, $X$에서 중요하지 않은 Feature Set $U$, Feature $U$를 제외한 데이터셋 $X'$

 

  • 중요하지 않은 Feature의 예시로는, 환자의 질병 유무를 판별하는 데, 환자의 휴대전화 기종 같은 Feature가 될 것입니다.
  • $X'$은 $U$의 Feature들을 모두 0으로 둔다거나, 랜덤으로 값을 할당한다거나 하는 방법들이 있을 것입니다.

 

1) $f(X)$와 $f(X')$을 비교하여 서로 같은 Instance는 Trustworthy, 다른 것은 Untrustworthy로 라벨링

 

  • 절대적으로 사용자가 중요하지 않다고 결정한 Feature는 예측 결과($f(X)$)에 영향을 미치지 않아야 합니다.
  • 따라서 $f(X), f(X')$의 비교를 통해, $f$에 대하여 Trustworthy한 Instance를 결정할 수 있습니다.

 

2) LIME을 통해 나온 $g_i$에 대하여, 중요하지 않은 Feature를 제외한 결과와 비교

 

  • $g_i$가 선형 모델이라고 가정하면, LIME에서 중요하다고 생각한 Feature들과 계수들이 있습니다.
  • 그 Feature들에는 $U$의 Feature들이 포함되어 있을 수 있습니다.
  • 원래 $g_i$를 통과한 결과와 $U$의 Feature들을 제외하고 나온 결과를 비교했을 때, Trustworthy 여부를 결정할 수 있습니다.

 

3) 1, 2번에서 라벨링한 결과들을 비교하여 F1 score 측정

LIME으로 나온 결과는 설명 가능한 결과입니다. 하지만, 그 결과 자체를 믿을 수 없다면 의미가 없을 것입니다.

그래서 본 논문에서는 결과의 신뢰도 측정 방식을 제시하고, 원래 모델과 LIME으로 나온 결과 사이의 신뢰도를 비교합니다. 그 결과는 위의 테이블에서 확인할 수 있습니다.

 

3. 이 모델이 합당한가?

SP-LIME은 가장 모델을 잘 설명하는 Instance를 뽑아주는 알고리즘입니다. 이를 통해서 나온 Instance들 중에 Trustworthy한 Instance의 비율을 측정하는 방식으로 모델이 합당한지 확인합니다.

SP-LIME이 가장 우수한 결과를 나타내는 것을 확인할 수 있었습니다.

 

 

 

 

 Evaluation With Human Subjects

 

각 데이터셋 분야의 전문가들이 직접 실험에 참가한 결과입니다. LIME과 SP-LIME을 통한 설명을 보고, 전문가들이 직접 설명의 타당성, 모델의 타당성을 평가합니다. 

 

 

 

 

 My Opinion

 

이 논문은 인공지능의 설명가능성을 상당히 잘 제시한 논문입니다. Blackbox의 한계는 모두가 알고 있었지만, 이에 대한 광범위한 해결 방법을 제시한 사람은 없었습니다. LIME, SP-LIME은 모든 분류기, 심지어 회귀기에서도 사용할 수 있습니다.

 

2016년에 나온 논문인 만큼, 지금은 더 많이 발전된 방법론이 제시되었을 것입니다. 이 방법들을 잘 답습하여 의료데이터에 최신 방법들을 잘 적용하면, 설명가능성의 부재로 의료현장에서 사용되지 못했던 많은 우수한 머신러닝, 딥러닝 방법론들이 날개를 펼 수 있을 것 같습니다.

 

 

Comments