TCAV를 받아들이기 위한 노력

해석가능한 인공지능(XAI 또는 Interpretability) 계열은 Been Kim님( https://beenkim.github.io/ )의 TCAV 페이퍼가 최신인 것으로 보인다. 이번 책에서는 수록되지 않겠지만 그래도 최신 동향을 알아두는 일은 필요하다. 지금이 2019년이고, 이 논문은 2017년에 발표됐으니 완전 최신이라고는 말할 수 없겠지만.


2017년 튜토리얼

이 튜토리얼은 Towards A Rigorous Science of Interpretable Machine Learning( https://arxiv.org/abs/1702.08608 )을 기반으로 제작됐다.

해석가능한 머신 러닝 페이버는 점점 증가하고 있다.

  • Decision tree는 직관적이지만 어떤 내용이 ‘중요’한지에 대해서, 또는 앞으로 ‘중요해질지’에 대해서는 알 수 없다. 게다가 데이터 피처가 많아지면 트리 깊이는 기하급수적으로 증가하기 때문에 이 방식으로 XAI를 하기에는 비효율적이다.
  • 룰 세트(Rule sets)도 직관적이지만 이 역시도 큰 데이터에 대해서 길이가 길어지고 해독성이 떨어진다.
  • 와이어드 기사: https://www.wired.com/story/our-machines-now-have-knowledge-well-never-understand/

해독가능성은 ‘인간이’ 기계를 이해하는 것. XAI는 one-fits-all이 아니다.

그렇자면 설명가능성(Interpretability)이란 무엇인가.

Interpretation is the process of giving explanations to humans다. 이때 why와 when. How, 그리고 어떻게 이것이 ‘good explanations’인지 측정해야 한다.

Why Interpretability?

더 많은 데이터, 더 현명한(좋은) 알고리즘이 해석가능성을 올려주지 않기 때문이다. 해석가능성은 그 자체로 안전하지 않지만, 안전에 이상이 있음을 탐지할 수 있다. 버그를 찾고 고치는 것도 가능하다. 또한 윤리/법 문제에도 해석가능성이 필요하다.

Examples of underspecification
• Safety: We want to make sure the system is making sound decisions.
• Debugging: We want to understand why a system doesn’t work, so we can fix it.
• Science: We want to understand something new.
• Mismatched Objectives and multi-objectives trade-offs: The system may not be optimizing the true objective.
• Legal/Ethics: We’re legally required to provide an explanation and/or we don’t want to discriminate against particular groups.

Type of Interpretable models

모델 만들기 전

  1. Visualization
  2. EDA(Exploratory Data Analysis, [Tukey 77])

모델 만드는 중

  1. Rule-based, per-feature-based
    1. Decision Trees, Rule Lists, Rule Sets Linear model, Generalized linear model, …
  2. Case-based
    1. 클러스터링, Bayesian Case Model
  1. Sparsity
  1. Sparsity Based model의 경우 subtree간 correlation이 발생할 수 있다.
    1. “Sparsity is good, but not enough, but just because it is sparse, doesn’t mean it’s interpretable.” [Freitas ’10]
  2. Monotonicity
    1. 단조 증가 모형(고도화된다거나 하는)

모델 만든 후

  1. Sensitivity Analysis / Gradient-Based models
    1. x에 x+e라는 e 변형을 주어서 결과가 어떻게 달라지는지 관찰
  1. Sensitivity / Gradient model의 단점
    1. 신뢰도가 떨어질 수 있다
    2. 두 로컬 집중(two local explanations)이 충돌할 수 있다
    3. x가 우리의 데이터 분포에 포함되어있지 않을 수 있다
  2. Mimic / Surrogate models
    1. 대리분석
    2. Model compression or distillation [Bucila et al. ’06, Ba et al. ’14, Hinton et al. ’15]
    3. Visual explanations [Hendricks et al. ’16]
    4. 단점
      1. 간단한 모델이 복잡한 모델을 대신 설명하기 어렵다(성능을 따라가기 어려움)
      2. 유사 모델을 생성하기 어려움
  3. Investigation on hidden layers
  1. 단점
    1. 직접 실천할만한(수정할만한) 인사이트를 얻기 어렵다
    2. 다른 XAI 기법보다 비주얼라이즈만으로 어떤 정보를 얻어낼 수 있을지 불확실하다
    3. 실전에서 golden dataset을 얻기 매우 어렵다

어떻게 설명이 ‘잘’ 됐는지 측정가능할까?

적절한 일반화가 필요하다. Does providing interpretability assist with a down-stream task, such as increasing fairness, safety, scientific discovery, or productivity?

  1. Function based evaluation
    1. Can we use some proxy such as sparsity monotonicity or non-negativity?
    2. It’s easy to formalize, optimize, and evaluate… but may not solve a real need. e.g., 5 unit sparsity will save more patients than 10 unit sparsity?
  1. 결국 cognition-based 를 추천한다. 그러나 이것은 추상적일 수 있기 때문에 다음과 같은 요인을 고려해야 한다.
  2. Problem-related Factors
    1. Global vs. Local
    2. Time budget
    3. Severity of underspecification Method-related factors
    4. Cognitive chunks
    5. Audience training

끝. TCAV에 대한 소개보다는 말씀하신대로 Tutorials다. 감 잡기엔 아주 좋은 자료.

2018년 튜토리얼

반복되는 말이지만 너무 좋은 말: Common misunderstanding: More data or more clever algorithm will solve interpretability.

모델 해석가능성이 필요없는 경우

  1. 머신러닝 결과값이 큰 파장을 일으키지 않을 때
  2. 충분히 많이 알려진, 해결이 잘 된 문제일 때(Sufficiently well-studied problem)
  3. 머신 러닝 예측 결과 자체가 틀렸을 때

감상:

  1. 툴과 관련된 자료가 강화됐다.
  2. 모델에 대한 설명이 간략해졌다(가독성이 올라갔고, 이해하기 쉬워졌다).
  3. saliency maps에 대한 자료가 강화됐다.
  1. 논문 레퍼런스가 강화됐다.
  2. CAV(Concept Activation Vector) 개념이 추가됐다.

CAV(Concept Activation vcetor)

[Smilkov ’17, Bolukbasi ’16 , Schmidt ’15]

컨셉과 랜덤 이미지를 주고, 특정 패턴과 랜덤 이미지를 확실하게 분리할 수 있는 Vector(CAV)를 만든다.

TCAV는 무엇인가. 특정 패턴과 클래스를 함께 결합하는 스코어를 만드는 과정. 아래 슬라이드를 자세히 살펴보자.

스트라이프 백터(C)와 스트라이프 벡터가 추출된 레이어(l), 그리고 입력 데이터(X_k)를 결합하여 스코어 S_{c,k,l}(X)를 구한다. 이 스코어 기준은 CAV를 사용해서 Directional derivative 점수가 된다. 따라서 TCAV는 CAV를 활용해서 점수를 내는 방법이라고 해석할 수 있다( TCAV [K, Wattenberg, Gilmer, Cai, Wexler, Viegas, Sayres] ICML18 ).

An example of ground-truth experiment setup in TCAV

image와 caption을 첨가해서 classification을 높이려고 하는 시도. 이때 CAV는 caption이 될 것. 만약 여기에 noisy caption을 추가하면 어떻게 될까?

일단 실험의 목표는 예측에 중요한 것(대상)이 무엇일까 발견하는 일.

Test accuracy with no caption image는 Importance of image concept에 비례해서 증가했다. 즉, no caption일 수록 이미지에서 말하고자 하는 concept이 명확하다는 것.

만약 이미지가 가리키는 것이 불투명하다면 caption이 유리했다.

위 이미지에 비교하면 cucumber의 경우에는 concept이 명확하기 대문에 caption이 있더라도(100% noisy) 참고하지 않고, nocaptions와 같은 성능을 발휘한다(무시한다).

그런데 제대로 된 캡션이라면 TCAV caption그래프(붉은색)는 컨셉이 명확하지 않더라도 캡션을 명확하게 인식한다. 즉 CAV요소가 이미지 인식에 대단히 도움을 준다.

cab이라는 이미지가 제대로됐다면, gradient analysis에서도 caption을 중점적으로 파악하는 것을 확인할 수 있음.

결론은 ground-truth(캡션이나 컨셉 이미지 같은)를 잘 구축해놓고 실험을 했을 때 인공지능에게도 도움이 되고, 인간이 이해하는데에도 도움이 된다. TCAV는 좋은 보조장치임을 증명했음( Human experiment and ground-truth experiment ).

페이퍼 리딩

간단한 인트로 영상. Abstract를 평어로 풀어주신다. 유튜브는 잠깐 보시고, 발표자료를 추천.

TCAV는 Testing with Concept Activation Vectors의 약자다.

이걸 봐도 실은 머신에 초점이 가있는지, 뭘 보고있는지 모른다. 심지어 sliding door로 예측했음에도 ATM을 보고 있다. 명시적이지 않다.

Goal of TCAV: Testing with Concept Activation Vectors

concept이 있을때 이것과 함께 있는 정보가 얼마나 prediction에 도움이 될까? 심지어 그 concept이 잘못되었더라도.

일반적인 머신러닝 모델은 상단 줄에만 해당된다. 이미지를 입력하면 머신러닝 모델은 Doctor-ness(의사스러움)를 확률로 표현한다.

만약 여기에 gender concept이 들어가면 doctor classifier에 어떤 영향을 미칠까?

TCAV는 \frac{classifier}{CAV} 가 들어간다( TCAV provides quantitative importance of a concept if and only if your network learned about it).

이제 질문. 어떻게 Concepts를 정할 수 있는가? 그리고 이것이 어떻게 유용하게 작동하는지 알 수 있을까?

간단하게는 Concepts를 모아두고 TCAV score를 계산하는 방법이 있다.

혹시 내가 만든 CAV가 그저 운이 좋아서 좋은 스코어가 나온 것은 아닐까 하는 의심이 있을 수 있다( Did my CAVs returned high sensitivity by chance? )

  1. 다양한 이미지를 가지고 실험해본다
  2. Check the distribution of TCAV is statistically different from random using t-test

TCAV의 목적은 Human이 적절한 Domain Concept를 골랐을 때 해당 이미지가 머신러닝 분류에 도움이 됐는지(스코어가 높은지) 확인할 수 있다는 것이다.

따라서 이것은 Interpretable하다.

보통 Zebras 말고 Concept Importance를 보자.

Doctors 말고 Concept Importance를 보자. Concept Importance는 모델이 이 분류를 수행하는데 이것이 어떤 요소로 해석되는지 잘 보여준다.

실제 페이퍼 리딩

개괄적인 발표자료를 읽었으므로 잘 이해가 되지 않는 부분을 발췌독한다.

This work introduces the notion of a Concept Activation Vector (CAV)

as a way of translating between Em and Eh. A CAV for a concept is simply a vector in the direction of the values (e.g., activations) of that concept’s set of examples. In this paper, we derive CAVs by training a linear classifier between a concept’s examples and random counterexamples and then taking the vector orthogonal to the decision boundary.

여기서 Em은 basis vectors다. such as features and neural activations. 그리고 Eh는 human-interpretable concepts다. 예를 들면 식별가능한 형태 같은 것들.

CAV는 Em과 Eh를 연결하는 방법론이다. CAV(Concept Activation Vectors)는 컨셉과 model의 activation을 구분짓는 하이퍼플레인이다( as the normal to a hyperplane separating examples without a concept and examples with a concept in the model’s activations ).

layer이 달라지면 models activation이 달라지고 concepts이 된다.

3.3.에 의하면 Saliency maps는 logit value로 계산된다. 그리고 그렇게 계산된 Saliency maps는 다시 gradients로 계산되는데(이것을 directional derivates라고 함), h_k(x)는 x 포인트에서 k클래스에 속할 logit(0 또는 1)이다. 따라서 gradients는 pixed (a, b)에서 k class에 속할 가능성이 얼마나 변하는지를 표시한다.

CAV와 directional derivates를 활용하면 민감도 분석이 가능해진다(S_{C, k, l}  ). neural activation layer를 l이라고 하고, CAV vector for a concept C, f_{l}(x) 는 activations for input x at layer l이라고 하자. 이때 민감도는 activation 변형량 * CAV concept C 변형량 logit이다(h_k는 logit for data point x for class k). 이때 S_{C, k, l}conceptual sensitivity라고 한다.

conceptual sensitivity는 정량적(quantitatively measure)다.

이때 TCAV는 모든 입력 데이터세트 X_k (k 라벨)에 대하여 Concept CAV * activation 변형량을 계산한다. 따라서 해당 컨셉이 특정 클래스와 얼마나 잘 궁합이 맞는지 계산한다.

4.2.1. TCAV로 인사이트 얻기

이렇게 Concept으로 TCAV를 결합했을때 예측 점수가 막 올라가는 것이 보인다. 이것은 Concept이 설명적이라고 해석 가능하다.

4.3. A Controlled experiment with ground truth

ground truth는 accuracy. 그러니까 TCAV가 accuracy(ground truth)와 근접하거나 그 이상이길 기대한다.

튜토리얼 자료보다 설명이 잘 적혀있어서 이해하기 수월했다.

끝.

소고

장미라는 이름을 바꾸어 불러도 향기는 그대로 남는다

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중