데이터과학 삼학년

LIME (Local Interpretable Model-agnostic Explanation) 본문

Explainable AI

LIME (Local Interpretable Model-agnostic Explanation)

Dan-k 2020. 8. 3. 17:07
반응형

LIME (Local Interpretable Model-agnostic Explanation)

 

Global vs Local Surrogate Analysis

  1. Global Surrogate Analysis
    학습 데이터(일부 또는 전체)를 사용해 대리 분석 모델을 구축하는 것
  2. Local Surrogate Analysis학습 데이터 하나를 해석하는 과정

LIME 간략한 개념 및 소개

  • LIME : 국지적(local) 단위의 모델을 설명하는 기법
  • LIME은 개별 예측의 결과를 설명하기 위해 training local surrogate models에 초점을 맞춤
  • 일반적인 intepretable 모델 처럼 모델의 가중치에 신경써서 모델을 해석하는 방법이 아니라 휴리스틱한 방법으로 Black box model에 input 데이터를 넣고 그 결과를 가지고 해석
  • input 데이터를 LIME 알고리즘에 맞게 변형한 데이터를 Black box model에 여러차례 넣어봄으로써 리턴되는 결과를 가지고 해석하는 방법
    • 해당 방법은 결국 모델이 왜 이런 결과를 냈냐에 집중하는 것이기 때문에 목적에 잘 부합하는 방식이라 볼 수 있음
  • 수리적으로 Local Surrogate 모델은 아래 식으로 표현할 수 있음

  • 여기서, explanation x는 설명하고자하는 input x 값에 대한 설명으, L은 loss를 의미하며, 이는 original model의 결과와 추정에 사용되는 모델 사이의 loss를 의미, 파이x는 x 주변의 데이터를 어느정도까지 고려할 지를 결정, 옴(g) : model complexity 정도를 의미함
    • 즉, 파이 x를 통해 local의 영역을 설정한다고 생각해도 됨

LIME 의 Training step

  • Black box model에서 예측결과를 설명하기 원하는 input X 설정
  • Black box model을 해석하기 위한 Dataset을 생성
  • 모델 해석을 위해 새로 만든 sample 들의 weight 계산하기
  • weighted sample을 학습, interpretable model 구성
  • local model을 해석하기위한 결과를 설명하기

 

LIME 의 특성

  • Feature 수 K가  적을 수록 해석이 더 용이함
  • Model 해석을 위한 data 생성 방법은 data의 type에 따라 다르게 적용됨
    • tabular
    • text
    • image

LIME for Tabular Data

  • Tabular data는 가장 일반적인 dataset으로 시각화를 이용하여 설명하기에 매우 유용함

  • LIME Algorithm for tabular data
  1. Random Forest 모델을 이용한 결과를 뿌림(Feature X1, X2 가정)
    1. dark 1, Light 0
  2. 설명을 할 예측 data set을 큰 점으로 찍음, 그리고 그 점을 기준으로 normal distribution을 이용해 sample data를 만듦
  3. 설명을 위해 예측할 data와 가까운 sample들에 높음 weight를 매김
  4. weighted sample로 부터 locally learned model을 만들어 classification을 grid로 표현
  • LIME 알고리즘에서 가장 중요한 것이 설명할 예측 데이터 주변에 weight를 주는것임
    • weight을 주는 것은 neighborhood를 지정하는 것을 말하는데 LIME 에서는 exponential smoothing을 이용해 가까운 점에는 높은 가중치, 먼 점에는 낮은 가중치를 매김

  • smoothing kernel을 지정하는데 있어 어려운 것은 kernel width를 지정하는 것인데 kernel width는 얼마나 많은 neighborhood를 볼지 결정하기 때문에 매우 중요
    • 일반적으로 kernel width는 0.75 * 루트(feature 수) 를 이용함
    • 여전히 best kernel과 kerner width를 정하는 것은 어려움 (hp tunes)
  • kernel width에 따라 예측되는 결과를 비교

  • 굵은 선은 black box model의 실제 예측값을 의미함
  • 나머지 선은 kernel width에 따라 예측된 local model의 결과를 표현함
  • 그림에서 보듯이 feature의 차원이 많아지면 결과는 당연히 더 좋지 않음을 예측할 수 있음
  • example
    • data : bike rental data

  • tree를 100개 가진 random forest로 어떤 날에 bike rental수가 많은지를 측정하는 모델을 만들었을때, 각 feature에 대한 영향력을 위 그림처럼 표현할 수 있음
  • 그림에서 보듯이 categorical feature가 numerical feature보다 설명하기 용이함을 알 수 있음
    • numerical feature를 bins을 이용하여 categorical feature로 변환하여 분석하는 것도 하나의 solution일 될 수 있음

 

LIME for Text

  • Text data를 분석할때는 모델 해석을 위한 dataset을 구성하는 방법이 tabular data와는 다름
  • Text LIME은 dataset을 생성할때 Original TEXT에서 단어(word)를 제거해가며 분석하는 방식으로 dataset을 만듦
  • 예를 들면, 아래 표와 같이 각 단어 유무에 따라 1, 0 으로 표시한 data를 만듦

  • 여기서, prob은 해당 데이터를 black box model에 넣었을 때의 return된 확률값을 의미함
  • weight의 경우, original data에 비해 소실된 데이터의 비율로 weight를 나타냄
    • 예를 들어 전체 7단어에서 한단어가 빠진 6단어로 표현했을 때,

weight = 1 - 1/7 로 나타낼 수 있음

  • 그리고 이렇게 만들어진 data를 LIME Algoritm에 집어 넣어 아래 표처럼 각 feature weight를 계산하게 됨

 

  • 이런 식으로 나오면 channel이라는 단어가 spam을 구분하는데 큰 weight가 매겨져 있음을 확인할 수 있음

 

LIME for Images

  • Image를 위한 LIME은 tabular, text 데이터와는 또 다르게 데이터셋을 생성시킴
  • 일반적으로 각 pixel을 random하게 변형시킬 것이라고 생각하지만 그렇게 하지 않음
  • superpixels을 껐다 켰다하는 식으로 데이터를 생성 시킴
    • superpixels : pixels 끼리 서로 비슷한 색으로 연결되어 있는 것을 지칭
    • superpixels을 끈다는 의미는 superpixel의 값을 사용자가 정의한 값으로 변경 시킴을 의미 (gray)
  • Inception v3 model을 이용해 bread를 구분하는 문제가 있다고 하자
  •  
  • LIME은 위의 그림처럼 label을 판단하는데 영향을 주는 부분을 표시할 수 있음
    • 여기서 green은 해당 pixels로 인해 해당 label을 판단하는데 양의 가중을 주는 것을 의미하고, red는 음의 가중을 주는 것을 의미함 (해당 label 이 아님을 증거)
  • 위 그림에서 베이글을 예측하는데 그림의 녹색부분이 큰 역할을 했다는 것을 바로 확인할 수 있음

 

Advantage

  • 실무에서 black box model이 성능이 더 좋더라도 예측결과를 설명하기 쉬운 interpretable model을 쓰는 경우가 더 많음 (shallow decision tree, regression model 등)
  • 그러나, LIME을 쓰게 되면 black box model의 예측결과에 대한 해석을 추론할 수 있는 장점이 있음
    • LIME의 방식은 상당히 Human-friendly한 방식
  • LIME은 Tabular, Text, Images 에서 모두 사용할 수 있는 거의 없는 방법 중 하나임
  • 특히, embedding한 data와 같이 추상화된 data에도 적용할 수 있음
    • 설명하고자하는 data의 output만 가지고 모델을 해석하기 때문
    • interpretable model의 경우, model에서 부여된 각 feature의 weight등을 파악하기때문에 추상화된 데이터에서는 부적합함
    • ex. PCA에 태운 regression model 은 해석이 어려움

 

Disadvantage

  • data의 neighborhood에 대한 범위를 정의하기 어려움 (tabular 모델 분석)
  • kernel setting의 hptune 문제가 있음
  • sampling 은 LIME의 결과를 향상시킬 것임 그러나 data는  Gaussian distribution에 의해 sampling 되는데 이는 feature간의 correlation을 무시하게 됨
  • 설명 모델의 복잡성이 미리 정의가 되어야함
    • This is just a small complaint, because in the end the user always has to define the compromise between fidelity and sparsity.
  • 설명력의 불안정성이 큰 문제 → sampling을 계속해서 돌리다보면 돌릴때마다 모델의 설명이 계속 바뀔 것

 

실험

- 긍정, 부정의견 텍스트 분류 문제

결과 Screenshot



출처

 

5.7 Local Surrogate (LIME) | Interpretable Machine Learning

Machine learning algorithms usually operate as black boxes and it is unclear how they derived a certain decision. This book is a guide for practitioners to make machine learning decisions interpretable.

christophm.github.io

 

marcotcr/lime

Lime: Explaining the predictions of any machine learning classifier - marcotcr/lime

github.com

https://velog.io/@tobigs_xai/2%EC%A3%BC%EC%B0%A8-SHAP-SHapley-Additive-exPlanation

 

[2주차] SHAP (SHapley Additive exPlanation)

SHAP (SHapley Additive exPlanation)

velog.io

 

728x90
반응형
LIST

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

LIME 결과 소수점 자리 핸들링  (0) 2022.07.21
ICE (Individual conditional expectation)  (0) 2022.06.01
PDP (Partial Dependence Plot)  (0) 2022.05.28
SHAP (SHapley Additive exPlanations)  (0) 2020.08.19
LIME for Text  (0) 2020.08.03
Comments