ML_2021_9-2 機器心中的貓長什麼樣子?

Global explanation

  • 「What does a cat(specific class) look like」
  • 本課程以convolution network做圖片分類為例,講述各種global explainable approach

觀察各Convolution layer中,filter關注什麼pattern

  • 假設給定一張特定圖片,則我們每次捲積,都會出現一個feature map

    • 觀察這個feature map,如果有某個filter裡面的值偏大,可以判定這張圖有某些pattern是由該filter分析
  • 不過現在我們不會知道要輸入什麼圖片,要怎麼知道該filter是注意在什麼pattern呢? $\rightarrow$ 製造一張圖片X*

  • 我們把X做為要學習的參數,作為模型的輸入,目標是要maximize該input在經過convolution以後,對應的filter的feature map的各元素值,算式如下
    $$
    X^* = arg\ max_{X}\sum_i{\sum_j{a_{ij}}}
    $$
    其中,使右式最大的自訂圖片X稱為X* (gradient ascent)


以數字辨識為例,這是每個filter想觀察的重點,可以發現有些filter著重注意橫線,有些filter在意協直線等等,看起來非常合理

透過classifier output觀察

  • 找出一種輸入X,讓第i類別類別$y_i$的分數越高越好

    • 這種做法無用,只會看到一堆雜訊
  • 一種做法是,再加入一個分類器R,用於判定$X^*$到底有多像一個數字

$$
X^* = arg\ max_{X}\ y_i+R(X) \\\
R(X)=-\sum_{i,j}|X_{ij}|
$$

這種作法很多需要regularization terms(Constraint)、hyperparameter tuning,並不簡單
範例論文

Constraint from generator

  • train 一個image generator,輸入z以後輸出一個圖片,再把這個圖片丟入image classifier,找出能讓$y_i$最大的值$z^*$

    $$
    z^* = arg\ max_{z}\ y_i+R(X) \\\
    R(X)=-\sum_{i,j}|X_{ij}|
    $$

範例論文

找出z以後,則我們可以透過Generator來告訴大家,我們所產生的這些圖片會讓電腦容易辨認成這個class

電腦真實想法或許不重要,但希望有辦法可以讓解讀出來的東西可以說服人類

透過仿作一個類似成效的簡易model來解釋

問題是,簡易的模型如何能模仿neural network的決策?
$\rightarrow$ 只模仿一部分區域的行為