Notice
Recent Posts
Recent Comments
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Hello Potato World

[포테이토 논문 리뷰] (TCAV) Interpretability Beyond Feature Attribution:Quantitative Testing with Concept Activation Vectors 본문

Paper Review/XAI

[포테이토 논문 리뷰] (TCAV) Interpretability Beyond Feature Attribution:Quantitative Testing with Concept Activation Vectors

Heosuab 2021. 8. 29. 21:01

 

⋆ 。 ˚ ☁︎ ˚ 。 ⋆ 。 ˚ ☽ ˚ 。 ⋆ 

[XAI paper review]

 

 

 


 Concepts


 CNN은 Input으로부터 layer가 깊어질주록 high-level의 feature를 추출한다. 낮은 layer에서는 Edge, Comer, Color와 같은 구체적인 정보들(Low-level Features)을 추출하고, 깊은 layer에서는 Object의 일부분이나 전체 Object처럼 사람이 직관적으로 볼 수 있는 정보들(High-level Features)를 추출한다. 

 Image classifier와 같은 많은 시스템에서 high-level feature보다는 low-level feature를 사용하는데, 이 논문에서는 사람이 직관적으로 이해할 수 있는 특징 또는 사용자가 직접 정의한 특징을 Concept이라고 정의하고 이 Concept을 기반으로 이미지를 이해하는 법(CAV: Concept Activation Vector)을 소개한다.

 

 

  • Model Interpretability를 위한 기존 접근 방법

 모델의 예측을 Input feature의 관점에서 이해한다. 예를 들어, Logistic regression classifier에서는 coefficient weights가 모델 해석에 사용될 수 있고, Saliency Maps에서는 각각의 pixel에 대한 일차 미분 weights를 사용할 수 있다. 이러한 정보는 사람이 직관적으로 이해하기 힘들다.

  •  Concept을 사용한 접근 방법

 위에서 언급했듯이, 이 논문에서는 사람이 바로 이해하기 쉬운 개념(=Concept)을 통해 모델을 이해하고자 한다. Concept은 Object, Color, 또는 어떠한 Idea를 포괄하여 어떤것이든 될 수 있는데, "얼룩말"을 분류하는 classifier에서는 "Dotted", "Zigzagged", "Striped"와 같은 concept이 사용될 수 있고, 색깔의 관점에서는 "Red", "Yellow", "Green"등 어떠한 것도 concept으로 정의될 수 있다.

 

 


 CAV: Concept Activation Vector


 여기서 CAV(Concept Activation Vector)란, 모델이 이미지를 해석할 때 사용하는 low-level(예를 들면 pixel values)의 feature를 concept으로 변환하는 과정을 말한다. 

  • $e_m$ : input features, neural activation과 같은 data에 관련된 벡터
  • $E_m$ : $e_m$ 벡터들에 의해 만들어지는 벡터공간
  • $e_h$ : human-interpretable concept에 관련된 벡터
  • $E_h$ : $e_h$ 벡터들에 의해 만들어지는 벡터공간

 다음과 같이 정의되었을 때, CAV는 아래와 같은 함수 g로 표현되고, g가 linear할 때 linear Interpretability라고 부른다.

 함수의 예로, 이미지에서 color 또는 texture, edge정보들을 사용하여 zebra의 "Striped" concept을 정의할 수 있다. 이 때 concept $E_h$는 input feature나 training data에 의해 제한되지 않아도 되고, 기존 features에 관련이 없는 새로운 개념을 사용할 수 있다.

 

 CAV를 정의하기 위해서는 특정 layer $l$에서 사용자가 관심있는 concept에 관련된 data example들의 activation을 사용해야 하고, 다음과 같은 단계를 거친다.

  1. Input으로 주어진 example중에서 concept $C$에 관련된 데이터들(concept set)과 그 데이터들에 반대되는 데이터들(random examples)를 정의한다.(ⓐ: "striped"에 대한 concept set과 random examples)
    • $P_C$: concept set
    • $N$: random examples
  2. 모델을 학습시킨다. (ⓑ: "zebra" class를 classify하기 위한 training data, ⓒ: 학습된 Network)
  3. 특정 layer $l$에서, $P_C$과 $N$ 각각에 의해 생성되는 activation을 계산하고, 이 두 activation space를 분리하는 linear classifier를 학습한다. (ⓓ: 각각의 activation space와 linear classifier)
    • {$f_l(x): x \in P_C$} vs {$f_l(x): x \in N$}
  4. 구해진 linear classifier에 직교하는 벡터를 통해 CAV($v^l_C$)를 정의할 수 있다. 
    • $v^l_C \in \Re^m$ : concept $C$의 linear CAV. input $x \in \Re^n$이고 layer $l$의 neuron의 개수가 m개일 때, $f_l : \Re^n \rightarrow \Re^m$

 

 


 TCAV: Testing with CAV


 이 논문에서 제시하는, CAV를 사용한 새로운 linear interpretability 방법을 TCAV라고 한다. TCAV는 방향도함수를 사용하며 CAV에 의해 학습된 high level concept에 대한 모델의 prediction의 민감도를 측정한다. 예를 들어 "zebra"를 분류해내는 모델이 있다고 하면, TCAV는 새로 정의된 "striped"라는 concept이 "zebra"라는 prediction에 어떤 영향을 미치는지 분석할 수 있다. 즉, TCAV는 특정 Concept이 해당 Class와 얼마나 궁합이 잘 맞는지 분석한다. 

 TCAV의 4가지 Goal은 다음과 같다. (또는 장점이라고 할 수 있겠다.)

  1. Accessibility : Machine Learning 전문가가 아니여도 분석할 수 있다.
  2. Customization : 어떠한 Concept이든 제한 없이 사용 가능하다.
  3. Plug-in readiness : 이미 학습된 ML 모델을 재학습하거나 수정할 필요가 없다.
  4. Global quantification : Input data의 각각에 대한 해석 뿐만 아니라 전체 data, 또는 전체 class에 대한 해석을 제시할 수 있다. 

 

 

 Saliency map으로 예시로 계산법을 살펴보면, 특정 class $k$에 대한 하나의 data $x$의 logit값을 $h_k(x)$라고 하고, 해당 data $x$의 (a,b)좌표에서의 pixel을 $x_{a,b}$라고 하면,

 pixel (a,b)의 값이 변했을 때 class $k$에 대한 모델의 민감도는 아래와 같은 미분을 통해 구할 수 있다.

 

 같은 방식으로 CAV와 방향 도함수를 사용하면, 모델의 민감도를 의미하는 $S_{C,k,l}(x)$ (Conceptual Sensitivity라고 한다.) 를 구할 수 있다. 즉, (Activation의 변화량) * (Concept $C$의 CAV의 변화량 logit)으로 계산된다. 이 때 h는 $h_{l,k} : \Re^m \rightarrow \Re$.

 

 TCAV는 최종적으로 위에서 구한 Conceptual Sensitivity값을 사용한다. Supervised task에서 $k$가 class label을 의미한다고 할 때, $X_k$는 주어진 label에 관련된 모든 input data를 나타낸다. 이 $X_k$ 데이터 중에서 concept $C$에 관련된 Conceptual Sensitivity의 data의 비율을 구하면, 해당 label에 대한 concept $C$의 global한 영향력을 계산할 수 있다.

 분자는 $X_k$데이터 중 positive(양수)한 Conceptual Sensitivity를 가지는 data의 집합이 되고, 따라서 $TCVA_{Q_{C,K,l}}$은 [0,1]의 범위를 가지게 된다.

 

 

 

 


 Results


  • GoogleNet의 모든 layer에 대한 Relative TCAV의 결과값과, Inception V3의 마지막 세 개의 layer의 Relativa TCAV결과값이다. 최종 "Fire engine" class에는 "Red" Concept이 중요한 영향을 미치고, "Zebra" class에는 "Striped" Concept이 중요한 영향을 미치는 등의 결론을 확인할 수 있다. 

 

  • CAV를 사용하여 특정 Concept에 관련된 이미지들을 분류하는 작업을 할 수도 있다.
    • 아래 예시 중 왼쪽 그림은 더 추상적인 "CEO"라는 Concept으로 학습된 CAV를 통해 "Stripes" Concept을 분류한 결과인데, 가장 Most similar(Top 3)의 결과로 나온 Stripes가 CEO가 더 자주 입을만한 수트 또는 넥타이에 어울리는 Striped 디자인으로 해석되고, least similar로 나온 결과는 CEO에 어울리지 않는 Striped 디자인으로 해석될 수 있다. 
    • 오른쪽 그림은 "Model Women"으로 학습된 CAV를 통해 "Neckties"라는 class에 매칭되는 데이터 이미지들을 분류한 결과인데, Most similar(Top 3)의 결과가 "Neckties"를 한 "Women"의 이미지가 나온 것을 볼 수 있다.

 

 

  • 또 다른 CAV의 활용 방법으로 Empirical Deep Dream을 볼 수 있다. Empirical Deep Dream은 CAV를 최대한 활성화하는 패턴에 최적화하고 해당 Concept의 Semantic한 개념과 비교하는 방식이다. 즉, 특정 Neuron 또는 Neuron의 집합을 최대한으로 활성화하는 패턴을 Visualize할 수 있다. 다음 결과는 "Knitted Texture", "Corgis", "Siberian Huskey"로 학습된 CAV를 반영한 Deep Dreamed 패턴을 시각화한 것이다. 이 결과를 통해 TCAV가 특정 layer에서 학습되는 direction이나 패턴을 정의하고 시각화할 수 있음을 알 수 있다.

 

 

 


  References


[1] Kim, Been, et al. "Interpretability beyond feature attribution: Quantitative testing with concept activation vectors (tcav)." International conference on machine learning. PMLR, 2018.

 

 

 

 

 

 

Comments