Hello Potato World
[포테이토 스터디] Detecting Concepts 본문
⋆ 。 ˚ ☁︎ ˚ 。 ⋆ 。 ˚ ☽ ˚ 。 ⋆
[XAI study_ Interpretable Machine Learning]
7.3 Detecting Concepts
- Black-box 모델을 설명하는 방법의 두 가지 관점
- Feature-based approach
- Concept-based approach
- 지금까지 본 Feature-based approach 방법들의 단점
- Feature들이 Interpretability 관점에서 전부 유용하지 않다.
(ex) image에서 각각의 pixel의 중요도가 의미있는 해석을 만들진 않음 - 도출되는 explanation의 표현이 feature의 갯수에 의해 제약을 받는다.
- Concept-based Approach
- concepts : 어떠한 추상적인 것들도 가능(color, object, even an idea)
- Concept-based Approach : Neural network에 의해 학습된 latent space내에 embedded된 concept을 찾는 것
NN이 주어진 concept에 대해 명확하게 학습되지 않아도 잘 찾아낼 수 있다.
=> NN의 feature space에 의해 제약받지 않는 explanation을 생성할 수 있다.
7.3.1 TCAV : Testing with Concept Activation Vectors
NN의 global explanation을 만들기 위해 제안된 방법
어떠한 concept이 특정 class에 대한 모델의 prediction에 주는 영향을 측정
(ex) TCAV는 모델이 이미지를 "zebra"라고 classify하는데에 "striped"라는 concept이 주는 영향 측정
single prediction을 설명하는 것이 아니라 해당 concept과 class 사이의 관계를 설명(global)
7.3.1.1 CAV: Concept Activation Vector
CAV : NN의 하나의 layer내의 activation space에서 특정 concept에 대한 수치적인 표현
$v^C_l$ : Neural network layer 𝑙에서 concept 𝐶의 CAV (𝑙 : bottleneck of the model)
- concept 𝐶의 CAV 계산
1. 2개의 데이터셋 준비
(1) 𝐶를 표현하는 concept 데이터셋 : concept "striped"를 표현하는, striped objects의 데이터셋
(2) random 데이터셋 : stripe가 없는 group의 random 데이터셋
2. Hidden layer중 하나인 𝑙을 타겟으로 Binary classifier를 학습시킨다.
Binary classifier : 1번의 두 개의 데이터셋 분리(SVM, logistic regression...)
CAV $v^C_l$ : Trained binary classifier의 coefficient vector
3. input x에 대한 Conceptual sensitivity 계산 (추가적)
Conceptual Sensitivity : CAV를 활용하여 계산한 해당 concept에 대한 민감도
- Conceptual Sensitivity
하나의 CAV의 direction으로의 prediction에 대한 directional derivative 계산

- 수식에서의 내적값을 통한 의미 파악
gradient of $h_{l,k}(f_l(x))$와 $v^C_l$사이의 각
- Greater than 90 degrees : $v^C_l$값은 양수
- less than 90 degrees : $S_{C,k,l}$값은 음수
conceptual sensitivity : $v^C_l$이 $h_{l,k}$를 최대화할 수 있는 방향과 같은 방향을 가리키고 있는지 표현
따라서, $v^C_l$>0이라는 것은 Concept C가, 모델이 input 𝑥를 class 𝑘로 구분하도록 encourage한다는 뜻
7.3.1.2 TCAV : Testing with CAVs
앞서 본 CAV는 단일 input 𝑥에 대한 conceptual sensitivity 계산
모든 class에 대한 conceptual sensitivity를 설명하는 Global explanation을 만드는 것이 목표
- TCAV
전체 input중에서 양수의 conceptual sensitivity를 가지는 input의 비율 계산

(ex) 모델이 이미지들을 "zebra"로 classify하는데에 concept "striped" 얼마나 영향을 주는지 파악하고자 할 때,
"zebra"로 레이블된 data를 수집한 후에 각각의 input에 대한 conceptual sensitivity 계산
TCAV score : 양수의 conceptual sensitivity를 가지는 "zebra"이미지의 개수 / 전체 "zebra"이미지의 개수
=> $TCAV_{Q_{"striped","zebra",l}}=0.8$ 이라면, "zebra" class로 predict된 이미지의 80%가 "striped"라는 concept에 긍정적인(positive) 영향을 받고있다는 뜻
- TCAV의 계산
1. 𝑁개의 random 데이터셋 수집 (𝑁>=10 권장)
2. concept 데이터셋을 고정하고 𝑁개의 데이터를 사용하여 각각의 TCAV score계산
3. random CAV에 의해 생성된 다른 𝑁개의 TCAV에 반대되는 𝑁개의 TCAV score의 양측 t검정을
적용한다.
(random CAV는 random 데이터셋을 concept 데이터셋으로 선택하여 얻을 수 있다.)
여러가지 hypotheses가 있다면 multiple testing correction을 적용할 수 있다.
hypothesis의 개수=test하고자 하는 concept의 개수
7.3.2 Example
"striped", "zigzagged", "dotted"라는 concept에 대한 TCAV scores의 결과
(Image classifier : InceptionV3, convolutional neural network trained using ImageNet data
Targeted bottleneck : "mixed4c"라고 불리는 layer
Concept 데이터셋 50개, Random 데이터셋 50개
0.05의 유위수준으로, 10개의 random 데이터셋을 사용하여 test검정)

"dotted" : 유위수준 0.05보다 p-value가 높아서 test검정을 통과하지 못함
"striped", "zigzagged" : 둘 다 test검정을 통과하고, TCAV에 따르면 모델이 이미지들을 "zebra"라고 식별하는데 매우 유용한 concept들
7.3.3 Advantages
- TCAV를 사용하기 위해서는 관심있는 concept를 학습할 수 있는 데이터셋만 수집하면 되기 때문에, 비전문가가 사용하기 쉽다
- Feature attribution의 단점을 보완하여 Customize 가능
concept 데이터셋으로 정의될 수 있는 어떠한 concept도 조사할 수 있다. - 어떠한 class에 연관해서도 사용 가능한 Glabal explanation을 생성한다.
7.3.4 Diasdvantages
- Neural Network가 깊을수록 잘 동작하기 때문에, 얕은 모델에 잘 동작하지 못한다.
- Concept dataset을 만들기 위해서 추가적인 annotation이 필요해서, 라벨링이 잘 되어있지 않는 경우 매우 귀찮은 작업이 될 수 있다.
- 너무 추상적이거나 너무 일반적인 concept에 대해서는 잘 동작하지 않을 수 있다.
- TCAV는 image data에 많이 적용되고 있어서, Text data나 Tabular data에 대한 application은 상대적으로 한정적이다.
References
[1] Interpretable Machine Learning, Christoph Molnar
'Study > XAI' 카테고리의 다른 글
| [포테이토 스터디] LRP: Layer-wise Relevance Propagation (0) | 2021.08.02 |
|---|---|
| [포테이토 스터디] Pixel Attribution (Saliency Maps) (0) | 2021.06.28 |
| [포테이토 스터디] Influential Instances (0) | 2021.06.22 |
| [포테이토 스터디] Prototypes and Criticisms (0) | 2021.06.22 |
| [포테이토 스터디] Local Surrogate(LIME) (0) | 2021.05.24 |