오늘은 Generating Visual Explanations(2016) 이라는 XAI 분야의 논문을 리뷰하겠습니다. 원본은 이 곳에서 찾아보실 수 있습니다.
흔히 딥러닝을 '블랙박스'라고 칭하곤 합니다. 그 이유는 머신러닝과는 달리 어떤 feature를 통해 특정 class로 분류했는지, 또는 어떤 feature가 중요한 분류 기준으로 작용했는지 알기 어렵기 때문인데요. 물론 CNN 필터들을 출력해볼 수도 있고, 여러가지를 통해 진단할 수 있는 방법이 많습니다. 하지만 가시적인 특징으로는 확실히 설명력이 필요할 경우가 많죠.
따라서 이 논문의 가장 큰 contribution은 이미지 분류에 대한 explanations를 출력한다는 것입니다. 본 논문은 특정 class를 왜 그 class로 분류했는지, 그 근거를 생성해 출력하는 모델을 제안합니다. 특히 이 <설명>에는 이미지를 묘사하는 내용과 이미지 class 별로 discriminative 한 특성이 동시에 녹아있도록 하는 것이 저자의 목표였습니다. 따라서 이러한 목표 달성을 위해 저자는 두가지 loss를 도입하는데요, 우선 간단한 Introduction 부터 차근차근 알아보도록 하죠.
Introduction
논의에 앞서 여러분들은 이 새를 어떻게 묘사하실건가요? 이 새는 Western Grebe 라는 Cub(Water birds) dataset 의 그림 중 하나입니다. 그리고 아마 흔히 이 그림을 보고 이렇게 묘사하실 겁니다.
" 하얀색 목을 가지고 있고, 검정색 등을 가지고 있는 새인 것 같아. 그리고 물에 떠있네! "
하지만 이러한 설명은 단순히 이미지에서 보이는 새의 특성을 묘사한 것이지, 'Western Grebe' 라는 class만의 구별되는 특성이라고 말할 수 없을 수도 있습니다. 예를 들어 하얀색 목을 가진 새는 'Western Grebe' 라는 새에 국한되지 않을 수도 있으니까요. 따라서 우리가 이미지를 묘사하는 설명은 Image에 대해 relevance는 높지만, 정작 class 에는 relevance가 낮을 수도 있습니다. 그 특성이 특히 "흔한" 요소이면 말이죠. 이러한 설명은 당연히 classification에는 도움이 되지 않는 정보일 확률이 높겠죠?
따라서 저자는 우선 Image에 대한 description과 class에 대한 definition을 구분합니다. 그리고 진정한 Visual Explanation이란 이 두가지의 특성을 모두 지닌 explanation이어야 한다고 역설합니다. 다음 그림을 보시죠.
위 그래프는 이러한 차이를 잘 나타내는 시각화입니다. 이러한 각각의 요소가 실제로 위에서 예를 들었던 Western Grebe 새에 대해 어떻게 적용되는지 살펴보면 다음과 같습니다.
확실히 Image description은 이미지에 대한 묘사만 하고 있지만, class definition은 Western Grebe 만이 지닌 특성에 대해 더 자세히 묘사하고 있는 모습입니다. 따라서 저자는 이 두 요소를 합한, Western Grebe라고 모델이 분류하는 feature의 기준이나 요소 등에 대한 설명을 출력해 주는 것을 목표로 삼습니다. 즉, Class에 discriminative 하고, Image instance를 정확히 묘사하는 설명인 것이죠.
그럼 이제 이미지로부터 어떻게 이러한 설명을 형성하는지, 모델 아키텍처를 살펴보도록 하겠습니다.
Visual Explanation Model
전반적인 모델 아키텍처는 다음과 같습니다. 우선 아래 그림을 보시죠.
우선 전반적인 아키텍처는 fine-grained classifier 와 language generation model 이 합쳐져 있는 형태입니다. 우선 fine-grained classifier (VGG, ResNet 등) 으로 이미지에 대한 feature를 추출하고, 이를 label 과 함께 언어 생성모델에 input으로 넣습니다. 이 언어 생성모델은 LSTM 기반이므로, 당연히 이전 타임스텝 (이전 단어) 도 input으로 들어오게 되겠죠? 따라서 이런식으로 이미지에 대한 설명을 생성하는 것이 이 아키텍처의 목적입니다.
그럼 더 자세히 들여다 보겠습니다.
앞서 제가 이 논문의 저자는 이미지의 묘사와 Class 별로 구별되는 설명을 동시에 할 수 있는 Explanation을 목적으로 두었다고 말씀드렸습니다. 따라서 이러한 두마리의 토끼를 모두 잡기 위해 본 고는 두가지의 loss를 제안합니다. 하나는 Relevance loss이고, 다른 하나는 Discriminative loss 입니다. 직관적으로 Relevance loss는 이미지의 묘사에, Discriminative loss는 class별로 구별되는 이미지의 생성에 영향을 주는 loss라고 짐작할 수 있는데요, 각각의 loss를 조금 더 깊이 살펴보겠습니다.
Relevance loss
눈치 채신 분들도 있으시겠지만, 이 모델은 LRCN (LSTM + CNN) model을 기반으로 하고있습니다. 하지만 본 고에서는 image와 text의 relevance를 높이기 위해 LRCN을 조금 수정하는데요, 특히 category prediction을 두번째 LSTM layer의 additional input으로 추가합니다. category 정보가 문장의 생성과 제어에 영향을 줄 수 있다고 판단하였기 때문입니다.
따라서 Relevance loss는 다음과 같습니다.
여기서 각각 I는 image features, C는 category prediction, N은 batch size를 나타냅니다. 그리고 w_t 는 ground truth word를 나타냅니다. 논문에서는 이 loss 함수가 ground truth의 log likelihood 함수의 역할을 한다고 말합니다.
하지만 이러한 Relevance loss는 class마다 구별되는 문장을 생성하는 것을 보장하지는 않습니다. 따라서 본 고에서는 Discriminative loss를 추가합니다.
Discriminative Loss
이 loss function은 강화학습의 패러다임을 이용해 만들어진 loss 라고 할 수 있습니다. 강화학습은 공통적으로 reward (보상)를 maximize 한다는 특징을 가지고 있는데요, 이러한 기본 강화학습의 아이디어를 실현시키는 loss라고 할 수 있습니다.
References
[0] https://arxiv.org/pdf/1603.08507.pdf
'Computer Vision💖 > Vision + Language' 카테고리의 다른 글
[Multimodal] 멀티모달 러닝 (Multimodal Learning)에 대한 아주 기초적인 이해 (1) | 2024.01.18 |
---|---|
[VQA] Zero-shot VQA + Domain Adaptation VQA 분야 개괄 (0) | 2023.08.01 |
[XAI] OpenAI CLIP 논문 리뷰[3] - Domain Generalization (2) | 2021.07.19 |
[XAI] OpenAI CLIP 논문 리뷰[2] - Zero shot & Representation learning (0) | 2021.07.17 |
[XAI] OpenAI CLIP 논문 리뷰[1] - 전반적인 아키텍처 (1) | 2021.07.15 |