여태까지는 Local explanation에 해당하는 XAI 기법들만 다뤄보았다. Activation Maximization, Saliency Map Visualization, Layer-wise Relevance BackPropagation, LIME(Local Interpretable model-Agnostic Explanations), SHAP(SHapley Additive exPlanations) 모두 Local explanation 기법이다.
지금부터는 Global explanation에 해당하는 XAI 기법들을 다뤄볼 건데, 그 시작은 바로 TCAV(Testing with Concept Activation Vectors)이다.
참고로, Local explanation 기법들은 하나의 데이터 포인트에 집중한다. 예를 들어, 어떤 모델이 하나의 이미지를 "개" 라고 분류한다면, local explanation 기법들은 그 이미지가 "개"라고 분류되도록 만든 특정 픽셀들이나 feature들을 설명 근거로 들 것이다.
Global explanation 기법들은 전체 데이터셋에 적용되는 트렌드나 feature importance에 집중한다. 예를 들어, 훈련을 마친 어떤 모델이 있을 경우, "그 모델의 결과에 가장 영향을 크게 미치는 feature는 무엇인가?" 등과 같은 질문에 좀 더 적합한 설명 방식이라고 할 수 있다.
논문 원문은 다음과 같다. https://arxiv.org/abs/1711.11279
Interpretability Beyond Feature Attribution: Quantitative Testing with Concept Activation Vectors (TCAV)
The interpretation of deep learning models is a challenge due to their size, complexity, and often opaque internal state. In addition, many systems, such as image classifiers, operate on low-level features rather than high-level concepts. To address these
arxiv.org
TCAV에 대한 간략한 소개
여태까지 본 방법론들 중에서는 low-level feature들을 사용하여 모델의 결과를 설명하는 경우들이 있었다. 예를 들면, 그냥 픽셀값이라던지, 아니면 개별적인 feature들이라던지 등등이다. 하지만 TCAV는 조금 더 "인간친화적" 인 concept를 이용하여 high-level concept에 대해 모델의 예측이 얼마나 민감한지를 측정하려 하는 기법이다.
인간친화적인 high-level concept이란 예를 들어, 지브라 사진들에 존재하는 "줄무늬 패턴" 이런 것을 뜻한다. 인간 눈에 친숙하고 인간이 알아보는 concept들이다.
TCAV는 linear classifier인 CAV를 학습시키고, CAV를 통해 학습된 directional derivative를 통해 특정 concept이 모델에 어떤 영향을 끼치는지 알아낸다. 이때, CAV는 우리가 원하는 특정 concept이 들어가 있는 이미지와 다른 이미지들을 구분하도록 학습된다.
이것이 TCAV의 매우 간단한 요약이다.
TCAV 과정 with 논문의 figure
다음은 저자들이 수록한 TCAV의 과정에 대한 figure이다.
일단 준비물은 a, b, c이다.
a: 사용자가 정의한 "줄무늬"와 같은 특정 concept의 이미지 / 랜덤 이미지들
b: 내가 알고싶은 특정 class들에 대한 labeled된 training data 이미지들
c: 훈련된 뉴럴 네트워크
이렇게 준비하면 된다.
그림이 약간 헷갈리는 부분이 있는데, 네트워크가 f, h로 나뉘어져 있다. f까지가 이미지를 받아서 representation으로 만드는 부분이고, h가 이 representation을 logit으로 변환해주는 부분이다. 그래서 사진에 대한 설명으로 "any layer"에서나 가능하다고 적혀있지만, 당연히 h부분에서는 안된다. CNN 구조라고 생각하면, f는 convolutional 파트이고, h는 fully connected layer 파트이다.
그래서 위의 준비물들이 다 되었으면, 이제 d 부분을 수행한다.
준비물 a에서 두 가지의 이미지가 있었다.
1. 사용자가 정의한 "줄무늬"와 같은 특정 concept의 이미지
2. 랜덤 이미지들
이거 둘 다 모델에 넣어본다. 그리고 여기서 CAV가 나오는데, 1번과 2번을 구분할 수 있는 linear classifier를 학습시킨다. 그러면 위의 d의 그림처럼 회색 점선이 나오는데, 저기에 수직인 (orthogonal vector) 벡터가 바로 CAV (Concept Activation Vector)이다.
왜 이렇게 하냐면, 아까 말했던 우리의 "줄무늬" 같은 concept을 layer의 activation space에서의 single direction 이라고 생각할 수 있기 때문이다. 실제로 줄무늬가 들어간 activation vector(모델에 들어가서 activation 함수까지 지나온 뭔가의 벡터 결과물) 쪽을 가리키는 벡터라고 우리가 정의해놨기 때문이다 (linear classifier에 수직이 되도록 정의해놓음).
그 다음에 e 부분으로 넘어간다. 어떤 모델이 특정 class k를 예측하는 데에 "줄무늬"가 얼마나 영향을 끼치는 지 알고 싶으면, "아까 본 CAV를 이용해서 layer activation들을 조금 더 줄무늬 activation 쪽으로 밀어주면 어떨까? 얼마나 변화가 생길까?" 이런 식으로 접근하는 것이다. "밀어준다" 는 것은 수학적으로 저 concept vector인 CAV를 layer-l activation에 더해주는 것이고, 그 결과 얘네를 이용한 모델의 class k에 대한 output이 얼마나 바뀌는지 보는 것이다.
TCAV 과정 with Math
그럼 개괄인 쉬운 말로 얘기는 끝났고, 수식도 한 번 들여다 봐야한다. 일단 준비물 준비까지는 이해가 되었을 것이다. d 부분부터 보도록 하자.
우리에게는 binary classification task가 주어진다. "줄무늬" 이미지들을 모델에 넣고 돌린 representation과 나머지들을 구분하는 task이다.
이걸 위해 logistic regression이나 SVM 같은 simple model을 사용해본다.
여기의 w가 바로 CAV이다. w는 normal vector이며, decision boundary(hyperplane) 위에 있는 모든 activation vector에 대해 수직이다.
이제 아까 말로 했던 것처럼, linear activation들을 줄무늬 쪽으로 조금 "밀어" 줄 것이다. 뒤에 엡실론 term과 CAV가 섞인 term을 더하는 과정으로 이루어진다.
그 다음, directional derivative를 계산해줄 것이다.
위에 글에도 적혀있듯이, 줄무늬 쪽으로 조금 "밀어주었을" 때 class k에 대한 output이 얼마나 변하는지 알아보려면 directional derivative를 구하면 된다. 양수일 경우 "줄무늬"가 class k에 긍정적인 것이고, 음수일 경우 아닌 것이다.
최종 TCAV Score는 다음과 같이 산출된다. 위의 S는 per-example 값이기 때문에, per-class 통계량이 갖고 싶은 우리는,
그 class 안에 들어가 있는 모든 x들에 대해 S를 계산하고 다 aggregate 해주는 것이다. 그래서 S까지만 했을 땐 local explanation이고, 싹 다 합쳐서 TCAV score까지 나올 경우 global explanation이라고 할 수 있다.
Results
논문의 결과부분과 Appendix에 결과를 보여주는 figure들이 좀 있는데,
이렇게 labcoat라는 concept이 잘 들어간 top-3를 뽑는 것을 볼 수 있고, 맨 마지막 줄에 보면 labcoat와 가장 다른 보스 이미지들을 뽑은 것을 볼 수 있는데, labcoat가 실험실 가운, 즉 하얀색이기 때문에 검은색 코트를 입은 사람들을 뽑은게 아닐까 싶다. 이런 식으로 concept을 활용해서 설명가능한 AI의 기법을 구성했다는 점에서 의의가 있는 것 같다.
Limitations
- Dependence on quality and representativeness of concept examples
- TCAV는 사용자가 제공한 "concept examples"의 품질과 대표성에 크게 의존한다.
- 만약 concept examples가 노이즈가 많거나 원하는 개념을 충분히 대표하지 못하면, 학습된 CAV가 의도한 concept를 제대로 캡처하지 못할 수 있다.
- Assumption of linearity in the activation space
- TCAV는 개념이 고차원 activation space에서 선형적으로 분리 가능하다는 가정에 기반한다.
- 복잡하거나 비선형적인 개념의 경우, 이 선형성 가정이 성립하지 않을 수 있으며, 그 결과 설명이 부정확하거나 제한적일 수 있다.
- Difficulty in selecting the appropriate layer
- 네트워크 내 어느 레이어의 activation을 사용할지 결정하는 것이 어려워, 잘못된 레이어 선택은 TCAV 분석 결과에 부정적인 영향을 줄 수 있다.
- 각 레이어는 서로 다른 수준의 representation을 캡처하므로, concept을 잘 표현하는 activation이 선택되지 않으면 TCAV score의 신뢰성이 떨어질 수 있다.
- Computational overhead due to multiple retrainings and statistical testing
- TCAV는 학습된 CAV의 안정성과 유의성을 확인하기 위해 보통 500번 정도의 retraining과 두 쪽 t-test, Bonferroni correction 등의 통계적 검증을 수행한다.
- 이 과정은 계산 비용과 시간이 크게 증가할 수 있다.
- Interpretational ambiguity of the TCAV score
- TCAV score는 주어진 클래스에 대해 directional derivative가 양수인 예제의 비율을 나타내지만, 이는 단순한 상관관계(correlation)를 보여줄 뿐 인과관계(causality)를 반드시 보장하지 않는다.
- 또한, directional derivative의 부호만 사용하므로, 그 크기(magnitude)에 따른 미묘한 영향은 반영하지 못할 수 있다.
- Sensitivity to network architecture and training data
- 네트워크 구조나 training procedure에 따라 activation space가 크게 달라질 수 있으며, 이는 동일한 개념에 대해 학습되는 CAV에 영향을 준다.
- 따라서, 같은 concept에 대한 TCAV 결과가 서로 다른 모델에서 다르게 나타날 수 있어 해석의 일반화에 한계가 있을 수 있다.
- Limitation to predefined concepts
- TCAV는 분석자가 사전에 정의한 concept에 대해서만 동작한다.
- 즉, 자동으로 새로운(concept discovery) 또는 예상치 못한 concept를 탐지하지 않고, 미리 정의된 concept에 한정된 해석을 제공한다.