Pin-Jiun / Machine-Learing-NTU

0 stars 0 forks source link

12.2-Explainable AI: Global Explanation #69

Open Pin-Jiun opened 1 year ago

Pin-Jiun commented 1 year ago

Global Explanation 並不是針對特定某一張照片來進行分析 而是根據這個模型裡面的參數去檢查說 對這個 Network 而言到底一隻貓長什麼樣子 image

舉例來說假設 Train 好一個Convolutional 的 Neural Network

對 Filter 1 而言它想要看的 Pattern 到底長什麼樣子

我們要創造一張圖片X(不是 Database 裡面的圖片) 這張圖片它包含有 Filter 1 要 Detect 的 Pattern 我們假設 Filter 1這個 Feature Map裡面的每一個 Element 叫做 aij image

張圖片通過 Convolutional Layer的Filter 以後aij 的值越大越好 也就是 X讓 Filter 1 的 Feature Map的 Output它的值越大越好 ->THE BEST = X⋆

用Gradient ascent 的方法找出這個 X⋆ 我們就可以知道說 Filter 1它在 trace 什麼樣的 Pattern

實際操作的結果-Mnist image

把它的第二層的 Convolutional Layer裡面的 Filter 拿出來 然後找出每一個 Filter 對應的 X⋆

這邊是畫了 12 個 Filter 出來 這個第二層的 Convolutional它想要做的事情確實是去偵測一些基本的 Pattern

比如說類似筆畫的東西它想偵測橫線, 偵測斜直線等等

你知道數字就是有一堆筆畫所構成的 所以 Convolutiona Layer 裡面的每一個 Filter它的工作就是去偵測某一個筆畫這件事情是非常合理的

那假設我們不是看某一個 Filter而是去看最終這個 Image Classifier 的 Output image

這個 Digit Classifier 的 Output 你會發現說你觀察到的其實就是一堆雜訊 = 根本沒有辦法看到數字 在做 Adversarial Attack 的時候 對機器來說它不需要看到真的很像 0 那個數字的圖片它才說它看到數字 0

加上更多的限制使之更像是人想像的數字 image

我們已經知道數字可能是長什麼樣子 = 我們可以把我們要的這個限制加到這個 Optimization 的過程裡面

同時讓 yi 還有 R( X) 的分數都越大越好 R( X) 是要拿來衡量說這個 X 有多麼像是一個數字 舉例來說我們希望這個白色的點越少越好

你要根據你對影像的了解一個 Object 長什麼樣子的了解下非常多的限制再加上一大堆的 Hyperparameter Tuning image

如果你真的想要看到非常清晰的圖片的話-使用 Generator image

你就訓練一個 Image 的 Generator 比如說你可以用 GAN或VAE(沒教過)

訓練出一個 Image 的 Generator 用 G 來表示 輸入是一個 Low-dimensional 的 Vector 並且從 Gaussian distribution 裡面Sample 出來的低維度的向量叫做 z

輸出就是一張圖片 X image

現在有了 Image Generator 以後方法就不一樣了 我們現在不是去找 X而是去找一個 z

我們要找一個 z, 這個 z 通過 Image Generator 產生 X 再把這個 X 丟到 Image classifier去產生 y 以後 希望 y 裡面對應的某一個類別它的分數越大越好

那這個可以讓 yi 越大越好的 z 我們就叫它 z⋆ 找出這個 z⋆ 以後我們再把這個 z⋆ 丟到 G 裡面看看它產生出來的 Image X⋆ 長什麼樣子 image

你可能會覺得這整個想法聽起來有點強 但今天呢找出來的圖片如果跟你想像的東西不一樣 你就說這個 Explanation 的方法不好 然後你硬是要弄一些方法去找出來那個圖片 跟人想像的是一樣的 你才會說這個 Explanation 的方法是好的

那也許今天對機器來說它看到的圖片就是像是一些雜訊一樣 也許它心裡想像的某一個數字就是像是那些雜訊一樣 那我們卻不願意認同這個事實 而是硬要想一些方法讓機器產生出看起來比較像樣的圖片

那今天 Explainable AI 的技術往往就是有這個特性 我們其實沒有那麼在乎機器真正想的是什麼

其實 Explainable 的 Machine Learning還有很多的技術可以研究 image