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$ 只模仿一部分區域的行為