ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Restricting the Flow: Information Bottlenecks for Attribution 논문 리뷰
    논문 리딩 2022. 6. 3. 16:01

    1. Introduction

    XAI 분야에서 Attrubution method는 각각의 인풋에 대해 relevance score를 주는 것을 목표로 하는데, 이미지가 인풋인 경우에는 heatmap의 형식으로 score를 시각화할 수 있다. 이 heatmap에서 두드러지는 부분이 모델의 decision의 크게 관여한 부분인 것이다.

     

    <그림 1> Heatmap의 예시

    이 원숭이 사진을 예로 보면, 모델이 이 사진을 '원숭이'라고 예측할 때 붉게 표시된 원숭이의 얼굴 부분을 근거로 삼았음을 알 수 있다. 반면에 원숭이가 매달려 있는 줄이나 나무에는 픽셀 당 비트 수가 0에 가깝다.

     

    2. Related Work

    Attribution을 만드는 기존의 방식에는 Occlusion, Grad-cam 등이 있다. 이 논문은 기존 방식의 문제점을 지적하진 않는다. 오히려 옳은 방법이나 standard한 평가 벤치마크가 없음을 설명하면서 정보 이론에 기반을 둔 IBA 방법론을 소개한다.

    Information Bottleneck은 Deep convolution neural networks 분야에서 일반화나 robustness 성능을 높이거나 영역 추출 등으로 사용된 전례가 있지만, 이들은 모두 네트워크 자체를 학습하는데 쓰였고 explanation에서는 쓰이지 않았다고 한다. 반대로 이 논문에서는 기존 모델의 패러미터는 고정하고 IBA 부분만 학습함을 기억하고 가자.

     

    3. Information Bottlenecks for Attribution

     

    <그림 2> IBA Architecture

    3.1. 왜 Information Bottleneck 일까?

    그렇다면 heatmap을 만들어내는데에 어떻게 Information bottleneck을 활용했을까. 이 논문은 네트워크 중간 단계의 피쳐맵 하나를 선택한 다음, 이 피쳐맵의 정보가 모두 다음으로 흘러가지 못하도록 특정 부분을 차단한다. 위 그림에서 R이 특정 레이어에서의 피쳐맵인데, R의 원소마다 λ만큼은 그대로 남지만, 1-λ 만큼은 ε이 되어 더해지는 것을 볼 수 있다.

    여기서 ε은 noise이기에 이 과정을 거치면 결국 R의 몇몇 정보만 네트워크에서 다음 단계로 갈 수 있다. 따라서 병목, 즉 Information bottleneck이 발생하는 것이다.

     

    3.2. Optimization

    Information Bottleneck이 추구하는 방향을 생각해보자. 정답을 예측하는 데에 있어 critical한 픽셀들은 최대한 남기고 정답을 맞추는 데에 필요하지 않은 픽셀들은 최대한 버리는 것이 바로 그 방향이다. 이를 수식화하면 아래와 같다.

     

    <수식 1>

    여기서 X는 인풋, Y는 라벨, β는 조정가능한 변수이다. Z는 새로운 랜덤 변수로, 위에서 설명한 R에 노이즈를 주는 방법으로 Information bottleneck을 유도한다. I는 mutual information으로, 두 변수가 서로에게 얼마나 dependent한지를 수식화한 것이다.

    이제 다시 해석해보면 Y와 Z의 dependency는 최대화하고, X와 Z의 dependency는 최소화하는 방향임을 알 수 있다. Y를 맞추는 데 도움이 되는 Z는 최대한으로 남기고, X와 Z는 최대한 독립이 되게끔 하여 필요없는 인풋 정보는 배제하겠다는 것이다.

     

    이제 Z를 구체적으로 살펴보자. Z를 수식화하면 아래와 같다.

     

    <수식 2>

    앞서 3.1에서 설명했던 그 부분이다. 당연히 여기서 λ는 0에서 1사이의 값이다. 즉, λ가 1인 경우엔 Z=R이 되어 모든 정보가 그대로 들어가게 되고, λ가 0인 경우엔 Z=ε가 되어 노이즈만 남게 되는 것이다.

    ε의 경우, 노이즈이긴 하지만 아무 숫자나 넣으면 안 된다고 한다. 우리는 이미 학습된 모델의 파라미터를 사용할 것이므로, 다음 레이어에 들어가는 인풋의 분산을 최대한 보존해야 한다. 그렇기 때문에 R의 평균과 분산을 구해 아래와 같은 가우시안 분포를 따르도록 ε를 랜덤하게 설정한다. (이렇게 설정했음에도 λ와 R이 X에 depend 하기에 Z와 R의 분산이 일반적으로 같다고 하기는 힘들다고 한다.)

     

    <수식 3>

    이후 논문은 I[X,Z]를 구하는 대신 I[R,Z]를 구하는 것으로 방향을 살짝 전환한다. 이 부분에 대해 구체적인 설명은 없지만 <수식 1>에서와 방향적으로 차이는 없어 보인다. (내가 찾아본 IBA를 인용한 논문 중 하나는 아예 <수식 1>의 I[X,Z] 부분을 I[R,Z]로 바꿔서 설명하고 있기도 하다.) I[R,Z]를 수식화하면 아래와 같다.

     

    <수식 4>

    이 수식은 mutual information의 정의를 이용하여 유도 가능하다. 여기서 D_KL은 두 확률분포 간 쿨백-라이블러 발산을 의미한다. 

    이제 이 수식에서 문제가 되는 부분은 P(Z)인데, P(Z)를 구하기 위한 아래 식은 intractable한 integral이기 때문이다.

     

    <수식 5>

    따라서 P(Z)에 대한 대안으로 근사치인 Q(Z)를 도입한다.

     

    <수식 6>

    Q(Z)는 Z의 모든 차원이 정규분포를 따르고 독립임을 가정하는데, 정규 분포를 따른다는 가정은 linear 레이어나 conv 레이어를 통과한 activation이 가우시안 분포를 따르는 경향이 있다고 알려졌기 때문에 합당하다고 한다. 독립성이 보장되지 않는대도 가정하는 것에 대해서는 Q(Z)를 이용해 <수식 4>로 부터 유도한 아래의 수식을 단지 overestimate할 뿐이기 때문이라고 주장한다.

     

    <수식 7>

    이제 위 <수식 7>의 첫 번째 항만을 이용하여 Information loss function L_I를 정의하게 된다.

     

    <수식 8>

    또한, I[Y,Z]를 최대화하는 것은 결국 정답에 대한 분류를 잘하도록 남아있어야 한다는 뜻이므로 크로스 엔트로피로 설명할 수 있다. 따라서 최종 optimization 수식은 아래와 같이 표현할 수 있다.

     

    <수식 9>

    3.3. Per-Sample Bottleneck

    <그림 3> Per-Sample Bottleneck Architecture

    Per-Sample Bottleneck의 가장 큰 특징은 개별 샘플에 대하여 loss를 optimize하는 것이다. 한 개의 인풋 x에 대해 다른 인풋 정보는 사용하지 않고 그 x에 맞는 attribution을 생성하는 것이다.

    여기서 학습시키는 패러미터가 바로 α이며, 이 α는 아래와 같이 시그모이드와 가우시안 스무딩을 통한 블러 처리를 거쳐 λ로 사용된다.

     

    <수식 10>

    여기서 가우시안 스무딩을 거치는 이유는 무엇일까. 보폭이 1보다 큰 풀링 작업과 conv layer를 거치며 거치며 input에는 ignored part가 생기게 되는데, 이 ignored part가 Per-Sample Bottleneck으로 하여금 grid structure에 과적합되도록 한다고 한다. 따라서 robust함과 동시에 smooth한 attribution map을 얻기 위해 가우시안 스무딩을 적용한다고 한다. 아래 그림은 가우시안 스무딩 적용 유무를 비교한 결과이다.

     

    <그림 4> 위의 4개 그림은 가우시안 스무딩을 적용하지 않은 예시이고, 아래의 4개 그림은 표준편차(sigma_s)를 2로 두어 적용한 예시이다. 여기서 T는 iter횟수이다.

    Z 내의 각각의 피쳐의 중요성을 측정하기 위해서 P(Z|R)과 Q(Z)의 KL-divergence를 이용한다. 따라서 정보의 중요성을 담은 heatmap m[h,w]는 아래의 수식과 같이 각 h, w에 해당하는 채널들의 KL-divergence를 모두 더하여 계산할 수 있다. 

     

    <수식 11> heatmap m[h,w]의 계산

    cnn 구조는 채널 맵에서의 locality를 유지하므로 쌍선형 보간을 통해 원래 이미지 사이즈로 변환할 수 있다. 그런데 더 낮은 공간 해상도를 가진 later layer를 사용하게 된다면 이 쌍선형 보간으로 인해 피쳐 맵의 흐릿함이 증가할 수 있다. 아래 그림의 아랫줄에서 depth별 차이를 확인할 수 있다.

     

    <그림 5> 윗줄은 beta에 따른 attribution을, 아랫줄은 depth에 따른 attribution을 나타낸다.

    학습에 앞서, 모든 차원 i에 대하여 α_i = 5로 초기화한다. 이렇게 되면 λ_i는 대략 0.993의 값을 가지게 되어 학습 초기에는 거의 모든 정보가 병목 없이 들어감을 알 수 있다.

    이제 lr = 1, iter = 10으로 설정한 후 Adam optimizer를 통해 학습을 진행한다. 학습을 안정시키기 위해 매 iter별로 서로 다른 10개의 노이즈를 사용하게 된다. 따라서 모델은 총 100개의 샘플을 거쳐 heatmap을 형성하게 되는 것이다. 학습을 마치면 모델은 1에 가까운 확률로 타겟을 맞춘다고 한다.

     

    3.4. Readout Bottleneck

     

    <그림 6> Readout Bottleneck Architecture

    Readout Bottleneck은 모든 training set을 이용해 훈련된다는 점이 Per-Sample Bottleneck과 구분되는 가장 큰 특징이다.

    위의 그림처럼 서로 다른 depth의 피쳐 맵들이 추출된 후, 쌍선형 보간을 이용한 리사이징을 통해 크기를 같게 해준다. 이후 3개의 1x1 conv layers를 거쳐 이를 α로 사용한다. 이제 Per-Sample Bottleneck처럼 이 α에 sigmoid와 가우시안 스무딩을 걸어준다.

    여기서 주목할 점은 Per-Sample Bottleneck이 추론할 input을 이용해 α를 최적화하도록 학습했던 것과 달리, Readout Bottleneck은 미리 다른 데이터들을 이용해 3개의 1x1 conv layers를 학습하고 이를 이용해 α를 만들어내도록 한다는 점이다. 따라서 미리 학습하는 과정이 필요한 반면 input에 대응하는 inference 속도 자체는 빨라진다.

     

    4. Evaluation

    4.1. Experimental Setup

    • Model: ResNet-50, VGG-16
    • β = (1/k)*n, n은 0.001부터 300까지 실험, k = hwc (h = height, w = width, c = channels)

     

    4.2. Qualitative Assessment 

     

    <그림 7> Heatmaps of all implemented methods for the VGG-16

    GuidedBP와 PatternAttr는 주로 가장자리 선을 잘 따는 모습을 보이는 반면, 논문의 두 방법론은 영역 전체를 하이라이트한다. 사실 우리는 선을 잘 따는 것이 목표가 아니라 어떠한 '영역'이 모델의 추론의 기반이 됐는가를 알고 싶은 것이므로 옳은 방향임을 주장하고 있다.

    Grad-CAM과 비교하면 더 적은 픽셀이 하이라이트 됐으므로 I[X:Z]를 최소화하는 측면에서 더 좋은 성과를 보였음을 알 수 있다.

     

    4.3. Sanity Check

    좋은 Attribution이라면 네트워크의 패러미터가 인풋의 어느 부분에 집중하여 정답을 추론했는지를 잘 설명해야 할 것이다. 그렇기 때문에 Sanity check은 모델의 파라미터가 조금만 바뀌어도 민감하게 반응하여야 한다는 직관을 기반으로 성능을 측정한다.

    마지막 fc레이어부터 순차적으로 가장 첫 레이어까지 파라미터를 초기화하며 기존의 히트맵과 바뀐 히트맵 간의 이미지 유사도인 SSIM을 측정한다. 아래 그림의 윗 줄을 보면 fc레이어만 바뀌어도 실선으로 표시된 이 논문의 방법론들은 0.4~0.7 정도의 SSIM을 가지는 것을 확인할 수 있다.

     

    <그림 8> Sanity Check(상) & Sensitivity-N(하)

    4.4. Sensitivity-N

    Sensitivity-n의 경우 인풋 이미지의 일부를 마스킹하여 classification 로짓 값의 변동과 해당 픽셀의 attribution value의 피어슨 상관 계수를 측정한다. Attribution value가 높으면 모델의 추론에서 해당 픽셀이 중요한 역할을 한다는 것이므로 이를 마스킹하면 당연히 classification 로짓 값이 영향을 받을 것이라는 생각에 기반하였다.

     

    <수식 11>

    위 <수식 11>을 보자. T_n은 랜덤으로 선정한 마스킹할 픽셀들의 집합이다. S_c(x)는 클래스 c에 대한 로짓, x_[x_T_n = 0]: T_n에 속하는 픽셀이 모두 0인 인풋 x를 뜻하므로 우항은 T_n에 속하는 모든 픽셀이 0이 됐을 때의 로짓 값의 변동을 나타낼 것이다. R_i(x)는 픽셀 i에서의 relevance이며, attribution value로 생각하면 된다. 이에 시그마를 취해주므로 좌항은 T_n에 속하는 모든 픽셀의 attribution value의 합이 된다.

    그런데 픽셀 단위로 실험을 진행했더니 방법론별 차이가 그리 크지 않았다고 한다. 때문에 타일 단위, 즉 8X8 크기의 픽셀로 단위를 키워 실험을 하였고, 그 결과들이 위의 <그림 8>에 나와있다. 전반적으로 다른 방법론들에 비해 높은 수치를 보이며 최대 0.3 이상의 상관 계수를 가진다.

     

    4.5 Bounding Box

    이 논문은 ImageNet 데이터셋을 이용했는데, ImageNet 데이터셋에서 제공하는 Bounding box가 있다고 한다.

    이 Bounding box의 픽셀의 수를 n이라고 하면 이 방법론은 Attribution value가 높은 순으로 n개의 픽셀을 추린다. 그 후 이 top-n개 픽셀 중 Bounding box에 들어있는 픽셀의 수/n를 구한 것이다. 따라서 점수는 [0,1]의 범위에 들어가게 된다. 아래 표의 우측을 보면 IBA 쪽의 점수가 다른 방법론에 비해 크게 높다. 

     

    <표 1> Bounding Box(우) & Image Degragation(좌)

    4.6 Image Degradation

    이 평가 방법은 산출된 히트맵을 몇 개의 타일로 split한 후, tile별 attribution value가 높은 순서대로 하나씩 해당 부분을 constant로 바꿔주며 정답에 대한 probality를 산출한다. 이후 probality를 아래 수식과 같이 아무 타일도 건들지 않은 probality t_1과 모든 타일을 constant로 바꾼 probality b를 이용해 선형변환하여 다른 방법론들과의 comparability를 높인다.

     

    <수식 12>

    여기서 저자들은 추가로 attribution value가 낮은 순서대로 타일을 하나씩 빼는 실험도 진행한다. 높은 순서대로 빼는 것을 MoRF, 낮은 순서대로 뺀 것을 LeRF라고 한다. 좋은 방법론이라면 아래 그림처럼 모델의 추론에 가장 도움이 되는 타일을 우선적으로 제거한 MoRF는 점수가 초반에 급속도로 감소하다가 나중에 원만해질 것이며, 반대로 LeRF는 초반에는 원만했다가 나중에는 급해지는 반대의 양상을 보일 것이다.

     

    <그림 9> Mean MoRF and LeRF for the Per-Sample Bottleneck

    좋은 방법론일수록 MoRF와 LeRF 사이의 면적은 커질 것이라는 직관을 바탕으로 이를 적분하여 성능을 비교하는 스칼라 값으로 사용할 수 있다. 이 final degradation 스코어를 방법론 별로 비교한 것이 위의 <표 1>의 왼쪽 두 수치들이다. 대부분의 경우 가장 성능이 좋으며 resnet50 + 14X14 window size의 경우에도 최고 성능과 0.004점 밖에 차이가 나지 않는다.

     

    5. Conclusion

    논문에서는 Readout Bottleneck보다 Per-Sample Bottleneck을 추천한다. Per-Sample Bottleneck의 성능이 더 좋을 뿐 아니라, 피쳐 맵의 평균과 분산을 추정하기만 하면 되므로 더 유연하기 때문이다. 반면에 Readout Bottleneck은 한 번 훈련되면 single forward pass로 attribution을 생성할 수 있다는 장점을 가진다. 또한 Per-Sample Bottleneck의 경우 multiple class 문제에선 일부 클래스에 대한 정보를 버릴 가능성이 있으며, 단일 클래스 문제더라도 optimization 과정에서의 랜덤성 때문에 같은 샘플에 대해서도 히트맵이 조금씩 다르게 그려질 수 있다는 단점이 있음을 말하고 있다.

     

    6. Contributions

    • 정보 이론에서의 Information bottleneck 개념을 attribution method로 제시하였다. 이는 irrelevant score를 받은 영역이 네트워크 예측에 필요하지 않다는 보장을 제공한다.
    • Information bottleneck의 패러미터를 학습하는 두 가지 방법을 제시하였다.
    • Bounding box에 기반을 둔 새로운 평가 메트릭을 제시했으며, Image degradation을 개선하여 서로 다른 네트워크 아키텍처 간 메트릭의 comparability를 개선하였다. 

     

     

    질문이나 잘못 기재된 내용에 대한 피드백 언제든지 환영합니다. 함께 배워나가요!

     

     

    댓글

Designed by Tistory.