Bamboo is coming

Explainable AI(XAI) - Grad-CAM, LIME, disconvolution 본문

인공지능 개념

Explainable AI(XAI) - Grad-CAM, LIME, disconvolution

twenty 2023. 8. 6. 18:29

논문이나 연구 분야에서 자주 언급되는 용어 중 하나인 Explainable AI에 대해 정리해보려고 한다.

 

배경

Neural Network는 서로 복잡하게 연결된 수백만개 이상의 parameter가 비선형으로 상호작용하는 구조로, 사람이 그 많은 parameter를 직접 계산하고 의미를 파악하기는 불가능하고 back propagation 덕에 간신히 parameter update만 가능한 구조이다. 복잡한 구조 덕에 성능은 기존 기계학습보다도 월등히 높아졌지만 Neural Network가 왜 그런 결과를 도출했는지는 알 수 없다. 그래서 흔히 Neural Network를 Black Box라고 부르기도 한다.

 

XAI는 사람이 AI의 동작과 최종결과를 이해하고 올바르게 해석할 수 있고, 결과물이 생성되는 과정을 설명 가능하도록 해주는 기술을 의미한다. 즉, 도출 근거를 설명하는 기술을 의미한다.

 

모델의 복잡성(Complexity)와 설명가능성(Explainability)에 의한 해석 기법

모델이 복잡할수록 사람이 해석하기 더 어려워지고, 반대로 모델이 단순할수록 사람이 해석하기는 더 용이하다. 그러나 어려운 문제를 해결하기 위해서는 복잡한 구조가 유리하기 때문에 모델의 복잡성과 해석력은 서로 trade-off 관계에 있다.설명이 굳이 필요하지 않은 분야는 복잡하고 정확한 모델을 사용하여 인공지능을 빠르게 도입하고 있다.

 

Intrinsic 모델

애초에 해석 가능한 구조로 고안된 것으로 의사결정 나무(Decision Tree), Linear Model등이 있다. 구조가 단순한 모델은 그 자체로 이미 해석력을 갖추고 있다고 보아서 instrinsic(본래 갖추어진)이라는 이름이 분었다. 또는 투명성(Transparency)를 갖췄다고 표현하기도 한다. Intricsic model의 장점은 XAI 모델이지만, trade-off 관계 탓에 instrinsic model은 정확도가 낮다

 

Decision Tree

Post-hoc 모델

모델 자체가 설명가능성이 낮을 경우 모델의 예측 결과는 사후에(post-hoc)에 해석할 수 밖에 없다. 현재 기계 학습 및 딥러닝 분야에서 해석 가능한 기법인 대부분 post-hoc에 속한다. 모델의 정확도가 높으면서 설명가능성을 내재하고 있으면 좋겠지만, 현실적으로 존재하기 힘들다. 성능이 좋은 복잡한 모델을 사용하고 해석은 post-hoc으로 하는 방법이 보편적이다. 

 

설명 범위(Scope)에 의한 해석 기법

 

설명하는 범위에 따라서 해석 기법을 분류할 수 있다. 모든 예측 결과에 대해서 항상 설명력을 갖는 전역적인(Global) 기법과 하나 또는 일부 예측 결과만 설명 가능한 국소적인(Local) 기법으로 나뉜다.

 

Global

  • Global 기법은 모델의 로직과 관련된 이해를 바탕으로, 모델이 예측하는 모든 결과를 설명한다. 또는 모듈 레벨에서 모델의 한 모듈이 예측 결과에 어떻게 영향을 미치는지 설명하는 범위도 포함한다.
  • Intrinsic 모델은 모델의 구조로부터 모든 예측 결과에 대한 설명이 가능하므로 태생적으로 Global 기법에 속한다. (Decision Tree, Falling Rule List 등)
  • Global은 이상적인 설명 기법이지만 Post-hoc을 Global로 구현하기는 현실적으로 까다롭다. 설명 측면에서, 모든 예측에 대해서는 일정한 설명력을 갖출 수 있더라도, 개별 예측 결과의 특징을 설명하는 능력은 다소 떨어질 수 있다.

 

Local

  • Local 기법은 특정한 의사 결정 또는 하나의 예측 결과만 설명한다. 몇몇 개의 예측 결과를 묶어 예측 그룹에 대하여 설명하는 범위도 Local 기법에 포함한다. Global 기법에 대비해서 Local 기법은 설명할 범위가 적어서 비교적 실현성 있고 비용이 적게 든다. 또한, 전반적인 예측 성향은 설명하지 못하더라도 하나 또는 소수의 예측 결과는 완벽에 가깝게 설명할 수 있다.
  • 현실적으로 매번 예측할 때마다 설명을 요구하지는 않는다. 이슈가 발생한 예측만 설명하는 것이 현실적이다. 설명이 필요할 때, 적어도 해당 이슈에 대해서는 잘 설명할 수 있다는 점에서 Global 기법보다 실용적이다.

 

 

모델 의존(Dependency)에 의한 해석 기법

설명 기법이 특정 종류의 모델에만 적용할 수 있도록 특화되었는지(Model-spcific), 혹은 모델에 관계 없이 범용적으로 적용할 수 있는지(Model-agnostic)에 따라 분류할 수 있다.

 

Model-specific

특정 종류의 모델만 적용할 수 있는 설명 기법을 Model-specific(모델 특정적)이라 한다. Intrinsic 기법은 모델 자체가 가지고 있는 특성을 이용하므로 타 모델에서 적용할 수 없는 전형적인 Model-specific이다. 특정 모델만 적용할 수 있다는 점에서 모델을 고를 때 선택권이 줄어드는 단점이 있다. CNN 계열에서만 쓸 수 있는 시각화 해석 기법은 모두 Model-specific에 해당한다.

○ Activation

CNN 계열의 모델에서 활성 함수를 거쳐 활성화(Activation)된 feature map 또는 weight 자체를 시각화함으로써 모델을 설명하려는 시도이다. 특정 예측 결과를 설명하는 것이 아니라 Convolution Layer의 weight를 통해서 전역적인 예측 결과를 설명하고자 하므로 Model-specific인 동시에 Global 기법이며, 모델이 만들어진 후에 설명하므로 Post-hoc 기법이기도 하다.

○ Weight Visualization

Convolution layer가 보유한 weight(또는 filter)는 2차원 구조를 하고 있으므로 이미지처럼 그 자체로 시각화할 수 있는 특징이 있다. 그러나 위의 그림처럼 각 weight가 어떤 시각적 특징을 추출하는지 사람이 직관적으로 이해하기 어렵다. 학습 중인 CNN 모델의 상태를 점검하는 용도로 사용되는 경우가 많고, 그 이상의 설명을 얻기는 현실적으로 어렵다.

CAM(Class Activation Map)

○ Deconvolution

Convolution network를 그대로 반대 방향으로 만들어 이어 붙임으로써 AI의 판단 근거를 역추적하는 개념이다. Convolution 연산을 반대로 수행할 때에 deconvolution 계산을 이용하였다. 단, pooling은 역으로 계산할 수 없기 때문에 pooling 하기 전 위치 정보를 저장해두었다가 다시 사용한다. 위 그림은 Deconvnet의 구조를 표현한 것으로, VGG16 모델을 기반으로 하였다.

(a)는 원본 이미지이다. (b)는 마지막 14x14 deconv layer, (c)는 28x28 unpooling layer에서의 activation 결과이다. 이후 (d) ~ (j)는 계속해서 deconv layer와 unpooling layer를 통과한 결과이다. 레이어를 통과할수록 더욱 세밀해지고 있다. 최종적으로 (i)에 이르러서는 자전거의 형상을 거의 완벽하게 묘사한다.

○ CAM(Class Activation Map)

논문 Learning Deep Features for Discriminative Localization, CAM, 2016 CVPR

CAM은 이미지 분류 모델에서 이미지의 어느 부분을 보고 class를 예측했는지를 시각한다. 기존의 CNN 계열 이미지 분류 모델은 마지막 feature map을 flatten해서 FC(Fully Connected) layer로 변환한 후 classification을 학습한다. 그런데 flatten하게 되면 기존의 feature map이 가지고 있던 공간 정보를 잃게 된다. 그래서 CAM은 flatten 대신에 Global Average Pooling을 사용한다. 마지막 feature map의 각 채널은 1개의 값으로 변환되며 각각의 weight가 곱해져서 output layer에 입력된다. 이 때의 weight는 feature map의 채널에 대한 weight라고 볼 수 있다. 마지막 feature map을 꺼내와서 채널별로 대응하는 weight를 곱한 후 모두 더해주면 모델이 어느 부분을 보고 class를 분류 했는지 알 수 있다.

 

flatten - multi dimensional tensor를 one dimensinal tensor로 바꾸는 것, feature map의 size가 3*3, depth가 4면, 전체 맵을 모두 합쳐서 4*3*3 = 36, {36,1}의 사이즈를 가진 텐서 출력

Gloabl Average Pooling - multi dimensional tensor를 1개의 값으로 바꾸는 것, feauture map의 depth가 4면 총 4개의 값으로 이루어진 벡터를 얻음.

○ Grad-CAM(Gradient Class Activation Map)

논문 VIsual Explanation from Depp Networks via Gradient based Localization, Grad-CAM, 2017 CVPR

 

Grad-Cam은 CAM의 단점을 보완하고 발전한 알고리즘이다. CAM은 FC layer 대신에 GAP를 써야만 했기 때문에 모델의 구조를 바꿔야만 하는 단점이 있었다. Grad-CAM은 GAP로 FC layer를 만들고 feature map channel에 대한 weight를 직접 구하는 대신에, 모델 구조는 그대로 두고 feature map channel에 대한 gradient를 구해서 channel별 가중치를 구한다.

(1) 마지막 convolution layer를 통과한 feature map을 {A^{k} \in R^{\mu  \times v }} (A:feature map, k:feature, u:width, v:height) 이라고 하고 summation으로 GAP한 것과 같은 값을 구할 수 있다. 모델이 분류했을 때 예측한 확률 값을 y로 하고 feature map {A^k} 에 대하여 미분하면 {A^k}의 가중치를 알 수 있다.

(2) 가중치가 음수일 경우는 모델이 최종 예측한 class가 아닌 다른 class라고 예측하는데 중요한 정보임을 의미한다. 다른 class를 예측하는데 중요한 정보에는 관심이 없으므로 기울기가 양수일 때만 시각화할 수 있도록 ReLU를 이용해서 Class Activation Map을 완성한다.

위는 Visual Question Answering에 Grad-CAM을 적용한 결과이다. CAM과 마찬가지로 모델이 예측할때 집중한 부분을 heatmap 형식으로 시각화한다.

 

 

Grad-CAM, 코드 구현 및 수식 설명 (pytorch)

제목1 1 2 3 제목2 정답인 셀, 즉 양수인 값만 취해서 class map을 다시 만듦. 참고 https://cumulu-s.tistory.com/41 9. Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization - code review 안녕하세요. 오늘

2ndyoung.tistory.com

 

Model-agnostic

○ LIME(Local Interpretable Model-agnostic Explanation)

LIME은 Scope 관점에서는 Local, Dependency 관점에서는 Model-agnostic, Complexity 관점에서는 Post-hoc으로 분류할 수 있다.입력값을 교란(perturb)해 예측이 어떻게 바뀌는지를 확인함으로써 중요한 입력 변수를 찾을 수 있다는 비교적 쉬운 아이디어다. Model에 대해 영향을 받지 않기 때문에 어떤 알고리즘에도 사용할 수 있는 장점이 있다. 또한 모델의 내부구조가 아무리 복잡하더라도 사람이 직관적으로 해석할 수 있다.

https://realblack0.github.io/2020/04/27/explainable-ai.html

LIME을 이용한 이미지 예측 해석 예시를 보자. 원본 이미지를 해석 가능한 요소로 잘게 쪼갠다. 그리고 일부 요소를 off 하여 교란된 인스턴스 데이터셋을 생성한다. 이미지 예시에서는 아래 그림과 같이 요소를 회색으로 칠하는 것으로 off를 표현한다.

https://realblack0.github.io/2020/04/27/explainable-ai.html

교란된 인스턴스 데이터셋에 청개구리가 있는지 예측 확률을 구한다. 그런 다음 인스턴스 데이터세트에 가중치를 적용한 단순 선형회귀 모델을 학습한다. 가중치가 높은, 다시 말해 설명하는 양이 큰 인스턴스를 제외한 나머지를 회색을 칠하고 해석 결과로 제시한다.

 

 

 

 

 

 

 

참고

https://realblack0.github.io/2020/04/27/explainable-ai.html

 

[딥러닝] 설명가능 인공지능이란? (A Survey on XAI)

1. 등장배경 요즘 가장 각광받고 있는 AI(인공지능)은 단연 Neural Network(신경망)이다. 원래는 AI가 더 큰 의미를 지닌 단어이지만 근래에는 인기에 힘입어 AI가 Neural Network라는 뜻으로 통용되기도 한

realblack0.github.io

https://wikidocs.net/135873

 

(4) 설명 가능한 AI

Neural Network는 서로 복잡하게 연결된 수백만개 이상의 parameter가 비선형으로 상호작용하는 구조로, 사람이 그 많은 parameter를 직접 계산하고 의미를 파…

wikidocs.net

https://tyami.github.io/deep%20learning/CNN-visualization-Grad-CAM/

 

CNN visualization: CAM and Grad-CAM 설명

CNN 모델의 학습결과를 시각화하는 Weakly-supervised learning의 예시로 CAM과 Grad-CAM을 정리해봅니다

tyami.github.io

 

https://cumulu-s.tistory.com/41

 

9. Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization - code review

안녕하세요. 오늘은 Grad-CAM 논문의 code review를 진행해보려고 합니다. 해당 논문의 paper review는 다음 주소에서 확인하실 수 있습니다. https://cumulu-s.tistory.com/40 9. Grad-CAM: Visual Explanations from Deep Networ

cumulu-s.tistory.com

 

Comments