[XAI 논문] “Why Should I Trust You?” Explaining the Predictions of Any Classifier (LIME)

LONGNEW·2023년 9월 1일
0

연구

목록 보기
8/10

컨셉

모든 AI 모델에 적용이 가능한 설명 기술로 LIME을 제안한다. 모델의 예측과 예측에 대한 설명이 동시에 나올 수 있도록 문제를 잡는 것이 중요하다.

해석이 가능한 모델들을 통해 원래는 복잡했던 모델을 이해가능하게 분해하겠다.

Introduction

  • 머신 러닝이 많은 분야에서 쓰이는데 종종 간과되는 부분이 모델을 믿을 수 있냐는 것이다.
    모델을 믿는 건 2가지 부분이 존재한다. 결과를 믿는 것, 모델의 행동 양식을 믿는 것

  • 위의 두 조건을 충족시켜야 Black Box인 지금 상태를 깰 수 있다.

  • 모델을 실제로 사용하기 전에 이 모델이 실 세계에서 해당 데이터들에 대한 예측을 잘 할 수 있는지 판단해야 한다. 그저 valid set에 대한 평가지표로는 나타낼 수 없는 경우가 많다.

왜 면접을 보나, 이력서만 봐도 되지 않냐? 라는 질문에 이력서만 봐도 된다는 모델의 성능만 따지면 되는 거고 면접을 보는 거는 내부를 살피는 거라고 생각이 든다. 따지고 보면 이력서 쓸 때 "~~했음" 이라고 쓰는 거보다는 "~를 이용해서 ~를 구현했고, ~에서 어떤 인사이트를 얻어 진행했다"와 같은 부연 설명 제작을 위한 것이라고 본다.

The case for explanations

  • 예측에 대한 설명 : 입력 데이터 객체를 이루는 component 간의 연관성을 말하는 것이다. (csv 데이터라면 각 feature value 간의, image라면 각 patch 간의 등)
    ex. 특정 모델이 환자가 "감기"라고 예측을 했다면 이에 대해서 feature들이 sneeze, weight, headache,... 등이 있는데 LIME이 여기서 sneeze, headache는 관련이 있다라고 의사에게 말해주는 것.

  • 모델을 제작할 때 데이터의 labeling을 우선 하는데 이러한 과정 또한 해당 제작자가 수행을 한다. validation set 또한 거기서 부터 나올 텐데 실세계의 데이터와는 이미 차이가 있는 것이 아닌가? 그러므로 논문에서 제안 하는 것은 모델의 여러 예측에 대한 모든 설명을 제공하여 전체적인 모델의 행동양식을 설명한다는 것.

  • 모델이 잘 행동이 안 될 조건은 여러 가지가 있다. 그중 예시로 결과 예측에 영향을 줄만한 feature의 누락, 데이터 셋의 shift 등이 있다. 이러한 것부터 우선적으로 제거되어야 한다.

Desired Characteristics for Explainers

이건 설명을 하려는 툴의 요구사항인 걸로

  • Interpretable : 아무리 선형 모델이어도 feature를 몇 천개를 사용하면, weight의 비율을 알 수 있다 해도 모두에게 설명이 되진 않을 거다. => 설명은 쉽게 되어야 한다. LIME에서 사용되는 입력 데이터는 실제 모델의 feature와는 다를 수도 있다.
  • local fidelity : 모든 모델이 완벽하게 신뢰가 될 순 없어도 이건 있어야 한다. 예측 값들에 대한 통일성이 있어야 한다는 의미인 것 같음.
  • model-agnostic : 존재 자체로도 설명이 가능한 AI 모델도 black box 형태라고 여겨야 한다.
  • global perspective

Local interpretable model-agnostic explanation

  • LIME의 목적은 해석가능한 예측에 대해서 interpretable한 model인지를 판별하는 것으로 대략적인 신뢰도를 주려는 것이다. 현재 대상이 되는 model에 대한 추가 설명사항이 없기에 모델에 독립적이라는 model-agnostic 이 붙어있다.

  • 모델의 목표는 해석용 모델의 복잡도를 줄인다. 그리고, 결과의 통일성 (지역성)을 높이는 것이다.

  • 주된 수행방식은 데이터셋에서 샘플을 추출하여서 f(실제 모델), g(설명 모델)의 지역적인 성향을 확인해서 서로간의 차이를 줄이는 것이다.

  • 실제 모델을 전체적으로 설명하는 것은 어렵다. 그러나, 특정 데이터에 대해서 주변 지역에 있는 것들을 샘플링, 멀리 있는 것을 샘플링 해서 나오는 결과는 이해하기 쉬울수 있다. 마치 (XOR 데이터를 구분 지어서 설명이 가능케 만들듯이)

  • 단어 분류의 경우 K개의 다른 단어들을 통해 해석이 가능한 표현을, 이미지 분류의 경우 K개의 super pixel을 통해 해석이 가능한 표현을 주겠다.

Submodular pick for explaining models

  • 부분적인 클래스들에 대한 설명으로는 전체적인 모델에 대한 설명이 되지 못할 것이다. 독립적인 예제들의 집합을 설명함으로써 이를 얻을 수 있도록 하겠다.

  • pick step : 클래스의 결과를 잘 나타내는 데이터를 선별하는 과정으로 이미 있는 설명과 데이터를 연관시켜야 한다. raw 데이터로는 이것이 어렵기에 설명을 확인한다.

  • explanation matrix : 선정된 데이터들을 row, 사용하는 feature들을 col으로 하는 행렬이다. 이를 통해 어떤 feature가 다양한 결과를 얻어내는데 많이 사용되었는지를 알 수 있다.
    비슷한 설명을 나타내는 예제들로 구성을 하고 싶지 않기에 그런 값은 1개만 남긴다.
    => 진짜 독립적인 feature 들만 사용해서 추론하는 거를 원한다.

Simulated user experiments

Evaluation with human subjects

생각

모델을 평가하는 AI, 모델의 관여점을 찾는 AI 인 것 같다.
어떤 dataset은 특정 결과를 얻어냈는데 그럼 이런 데이터와 비슷하면 이런 결과를 가져오지 않을까? 에서 시작된 연구라고 본다. 그리고 맞는 얘기기도 하다.

사진에서 특정 부분을 보았기에 이를 반영하여 결과를 내는게 사람도 그러하니까?
근데 뭐가 부족한거 같다. 설명을 위한, 설명을 위한, 설명을 위한 AI... 좀 글치 않나?

만들어 놓은 feature들의 값을 이식하는 것이 가능할까? 그러면 임의의 노드와 여러 레이어 이렇게 하지말고 딱 필요한 개수를 지정할 수 있지 않을까? 그러면 모델 크기도 되게 줄어 들 거 같은데

0개의 댓글