Info) 아래 포스팅은 LGAimers에서 제공하는 AI 전문가 과정 중 서울대학교 문태섭 교수님의 [Explainable AI(XAI)] 강의에 대한 요약과 생각들을 정리한 것입니다. 정리된 내용들은 강의를 토대로 작성되었으나 수강자인 저의 이해도에 따라 일부 틀린 부분이 있을 수 있다는 점 알려드립니다. 잘못된 점이 발견될 시에는 즉각 수정하도록 하겠습니다. 또한, 강의의 모든 내용을 정리하기는 어렵기 때문에 인상깊었던 내용을 중심으로 정리하였습니다. 따라서, 설명의 맥락이 끊길 수도 있다는 점 양해 부탁드립니다. 

0. Introduction

이번 2강에서는 지난 시간의 saliency map-based 기법에 대해 더 알아보고 perturbation-based 방식에 대해 새로 학습하였습니다. perturbation-based model들은 기본적으로 data에 noise를 주거나 변형을 주어 algorithm의 예측 확률이 떨어지는 정도를 비교하는 공통된 아이디어를 가지고 있습니다. 저는 이 점이 굉장히 흥미로웠고 놀라웠습니다. data에서 가장 중요한 포인트가 없어지거나 왜곡이 되면 예측 결과에 큰 변화가 생긴다는 점을 역으로 활용하여 설명을 해낸다는 것이 정말 천재적인 발상의 전환이 아닐 수 없습니다. 이전의 지도학습에서 kernel trick을 통해 2차원의 data를 3차원으로 mapping하여 linear seperable하게 만들 수 있다는 것을 배운적이 있는데 이 못지않게 간단하지만 훌륭한 아이디어라고 생각됩니다. 

1. Saliency map-based

1.1 Class Activation Map (CAM)

CAM에서의 핵심은 GAP(Global Average Pooling)이라는 layer을 만들어 이를 통해 설명을 제공한다는 점입니다. global average pooling은 cnn layer에서 출력된 각 activation map들의 평균 activation을 연산하게 됩니다. 그리고 평균 activation을 soft max layer을 통해 선형 결합하여 각 label에 대한 확률로 계산하게 됩니다. 각 activation map의 평균 activation과 이에 선형 결합되는 w가 크다는 것은 최종 class 분류에 큰 영향을 주기 때문에 설명력이 있는 부분이라는 것을 의미하게 됩니다.

출처: 문태섭 교수님 강의 자료

CNN의 최종 layer의 해상도는 다소 떨어지기 때문에 upsampling을 통해 최종 시각화를 진행하게 됩니다. 아래 식은 class C에 대한 cam 결과를 나타낸 것입니다. summation 안의 A값은 activation map에 대한 값을 말하며 w값은 선형 이에 선형 결합되는 가중치값입니다. 위의 gap layer을 표현한 식이라고 생각하면 됩니다. 

출처: 문태섭 교수님 강의자료

cam은 이미지의 class에 해당하는 부분을 잘 하이라이트하며 적절한 threshold를 통해 bounding box까지 얻을 수 있다고 합니다. 이러한 성능적인 우수성 덕분에 objection detection, semantic segmentation과 같은 응용 분야에 활용이 되며 이를 weakly supervised learning이라고 합니다. 하지만 cam 방식은 gap layer가 있는 모델들에만 적용이 가능하여 model-specific하다는 단점이 있으며 마지막 convolutional layer에서의 activation map에서만 값을 얻을 수 있기에 visualization의 해상도가 다소 떨어집니다. 

1.2 Grad-CAM

Grad-CAM은 CAM의 단점을 극복하여 gap이 없어도 적용이 가능한 방법입니다. 아래식을 비교해보면 grad-cam의 경우 cam과 달리 weight 값을 마지막 convolutional layer에서의 값을 사용하지 않습니다.

해당 activation들에서 구한 gradinet를 global average pooling 과정을 거쳐 W 값으로 사용한다.
즉, 어떤 W가 특정모델구조를 가지고 학습된 W를 사용하는 것이 아니라, 어느 activation map의 gradient를 구한 후, 그것의 global average pooling 값으로 W를 적용하는 것이다.

활용하고자 하는 layer의 activation map까지 backpropagation을 진행하여 gradinet를 구하고, gradient를 pooling해서 해당 activation map을 결합하는 W로 사용하여 최종 설명을 구한다.

출처: 문태섭 교수님 강의자료

grad-cam은 모델이 어떤 출력 구조를 가지고 있더라도 그에 관계없이 backpropagation을 통해 gradient를 구할 수만 있다면 다 적용이 가능하다는 장점이 있습니다. 하지만, 평균 gradient를 사용하는 것이 종종 정확성에 있어 아쉬움이 있을 때가 있습니다. gradient가 크다는 것은 해당 activation에 대한 출력 값의 민감도가 크다는 것을 의미하지만 최종 결과를 출력하는 데에 있어 중요도를 정확히 반영하지 않는다는 것입니다. 

2. Perturbation-based 

앞서 살펴본 saliency map-based 방식은 white-box 방식입니다. 하지만 모델의 정확한 구조나 계수를 모르는 상태에서 입출력에 대한 정보만 가지고 있는 상태에서는 perturbation-based 방식이 사용 가능합니다. 입력 데이터를 조금씩 바꾸면서 그에 대한 출력을 보고 그 변화에 기반해서 설명하는 방식입니다. 

2.1 LIME(Local Interpretable Model-agnostic Explanations)

lime은 매우 복잡한 비선형적인 특징을 보이는 classifier들이 local하게는 선형적인 모델로 근사화가 가능하다는 아이디어에서 착안되었습니다. 주어진 데이터를 조금씩 교란(perturbate)해가며 이를 모델에 여러번 통과시키며 나오는 출력을 보고 입출력 pair를 간단한 선형 모델로 근사하여 설명을 얻어내는 방법입니다.  model-agnostic하고 black-box한 설명이라는 특징을 가지고 있습니다. 가령, 이미지를 여러 super-pixel들로 나눈 다음 분리된 super-pixel들 중 random하게 선택하여 이미지를 교란시킵니다. 그리고 perturbed된 이미지를 모델을 통해 예측하고 예측된 결과에 대한 확률을 비교합니다. 아래 그림과 같이 각 perturbed된 이미지에 대한 확률들이 다르게 나타나는데 이미지와 확률의 pair을 통해 선형계수를 학습합니다. 선형계수들을 통해 개구리 class로 예측할 때 중요한 역할을 한 super pixel들을 최종적으로 설명해낼 수 있게 됩니다.

출처: 문태섭 교수님 강의자료

lime 방법은 black-box설명 방법으로서 딥러닝 모델 뿐 아니라 주어진 입력과 그에 대한 출력만 얻을 수 있으면 어떤 모델에 대해서도 다 적용할 수 있는 설명 방법입니다. 하지만, 계산 복잡도가 높고 local하게도 non-linear한 경우에는 모델이 잘 적용되지 않는 단점이 있습니다. 

2.2 RISE(Randomized Input Sampling for Explanation)

rise는 lime과 마찬가지로 교란을 통해 설명을 진행하는 방식입니다. 아래 그림과 같이 랜덤한 mask를 씌운 input 이미지들을 모델에 입력하여 얼마나 확률이 떨어지는지 비교하여 하이라이트하게 됩니다.

출처: 문태섭 교수님 강의자료

rise 방식은 lime에 비해 더 좋은 성능을 보이지만 여러개의 mask를 만들어야 하기 때문에 계산 복잡도가 증가하고 mask들을 몇번 만드느냐에 따라 다른 결과들(noise)이 나올 수 있다는 단점이 있습니다. 

3. Influence function-based

black-box model에 대한 설명을 도출하는 방법 중 하나로 influence function-based 방식이 있습니다. 각 test image를 분류하는데 가장 큰 영향을 미친 train image가 해당 분류에 대한 설명이라고 보는 아이디어에서 시작된 XAI 방법입니다. 말로서는 조금 어려울 수 도 있으니 아래 그림을 통해 이해해보도록 하겠습니다.

하나의 예시로 RBF 커널을 사용한 SVM model과 cnn기반의 Inception model을 가지고 니모 물고기(test image)를 분류하는 작업을 진행했다고 가정해보겠습니다. 이 두 모델이 test image를 분류하는 데 사용한 기준은 서로 상이합니다. RBF SVM model의 경우 단지 색깔이 비슷한 이미지들을 가지고 test image에 대한 예측을 진행하였습니다. 니모 물고기와는 전혀 다른 종의 물고기이지만 색깔은 같은 엉뚱한 이미지를 기준으로 분류를 한 것입니다. 반면, Inception 모델의 경우 test image와 같은 종인 니모 물고기를 기준으로 분류 결과를 예측해냈습니다. 이처럼 분류 작업에 큰 영향을 미친 data를 통해 모델의 예측을 설명해낼 수 있고 그것이 합리적인지를 확인하여 model이 잘 학습되었는지 판단할 수 있습니다. 

출처: 문태섭 교수님 강의자료

 

'LGAimers' 카테고리의 다른 글

[XAI] 3강 정리 및 소감  (0) 2022.07.29
[XAI] 1강 정리 및 소감  (0) 2022.07.29
[품질과 신뢰성] Part5 & 6 정리  (0) 2022.07.28
[품질과 신뢰성] Part3 & 4 정리  (0) 2022.07.27
[품질과 신뢰성] Part1 & 2 정리  (0) 2022.07.26

+ Recent posts