視訊連結:
https://www.bilibili.com/video/BV1Wv411h7kN/?p=96&vd_source=7259e29498a413d91ab48c04f9329855
課件連結:
https://view.officeapps.live.com/op/view.aspx?src=https%3A%2F%2Fspeech.ee.ntu.edu.tw%2F~hylee%2Fml%2Fml2021-course-data%2Fxai_v4.pptx&wdOrigin=BROWSELINK
作業連結:
https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/hw/HW09/HW09.pdf
https://colab.research.google.com/github/ga642381/ML2021-Spring/blob/main/HW09/HW09.ipynb
目錄
Interpretable與explainable的差異
Explainable的目标
解釋的類别
Local
解釋的方法
1.輸入的哪些部分重要
2.網絡如何處理輸入
Global
1.以網絡輸出最大為優化目标訓練輸入
2. Generator
替代模型
Interpretable與explainable的差異
Interpretable本身就可解釋的(線性模型, 單顆淺層決策樹)
explainable本身不可解釋的模型賦予其解釋(深層決策樹/随機森林)
Explainable的目标
什麼是好的解釋結果
人能接受的理由(讓人高興)
解釋的類别
Local:對單個樣本做出判斷的理由(哪些組成部分components像貓)
Global:對任意的輸入, 什麼樣的輸入能獲得肯定的判斷(什麼樣的圖檔可以看作貓)
Local
解釋的方法
1.輸入的哪些部分重要
2.網絡如何處理輸入
1.輸入的哪些部分重要
1.看梯度
(1)逐部分mask特征/或者對單個特征進行微小變化
(2)然後觀察輸出/計算梯度:
變化大/梯度大的為重要特征, 由此可畫出Saliency Map(主要在CV中使用)
2. Integrated gradient (IG)--擴充了解的方法
SmoothGrad
避免雜訊影響: 在圖檔上加入不同雜訊, 所有的Saliency Map疊加後, 就是SmoothGrad的結果
草對分辨圖檔可能重要, 但老闆會喜歡機器根據貓的本體判斷, 讓老闆高興的解釋才是好的解釋
梯度≠特征重要度
當大象鼻子長到一定程度的時候, 再變長對判斷就沒有幫助了, 此時長度發生變化的梯度為0.
2.網絡如何處理輸入
降維+可視化
對網絡某一層(或Attention)的輸出進行降維+可視化, 輸出圖檔給人眼看是否有聯系
Attention is not Explanation
Probing
1.Probing(探針)=分類器
基于這一層的輸出, 訓練判斷詞性(或其它特性)的分類器, 來确定這一層是否學到了詞性方面的資訊.
但是要小心可能單純是分類器沒有訓練好/或訓練太好, 導緻無法分别.
2. Probing(探針)=生成器
利用某一層的輸出, 複現網絡的輸入
看出網絡抹去了哪些特征, 學到了哪些特征
Global
不是對單個樣本為什麼選擇
而是根據整個模型參數, 找出模型想象中的貓
1.以網絡輸出最大為優化目标訓練輸入
創造一張圖檔, 其中包含filter (網絡)想要偵測的像素
把像素值當作訓練的參數, 使得某層輸出的feature map值(整個網絡輸出)大.
找出的值用X*表示, 觀察X*的特征
其中aij是feature map中的元素
其中yi是整個網絡的輸出.
尋找的方法不是梯度下降而是梯度上升(gradient ascent).
如果尋找的時候不加限制, 輸出的圖檔是雜訊:
加限制--圖檔要像數字. 此處的限制R()是有筆畫的地方越少越好
此時得到的圖檔:
要得到很像人類的圖檔其實很難, 要根據對影像的了解下非常多的限制, 對超參數微調.
2. Generator
将生成器與分類器接在一起
此時不是找分類器的輸入X, 而是生成器的輸入Z
找到能使y最大的z, 記為z*, 再把z*輸入生成器.
替代模型
用簡單的模型模仿複雜模型的行為
再分析簡單的可解釋的模型
Local Interpretable Model-Agnostic Explanations (LIME)
線性模型無法模仿網絡的所有行為, 隻模仿一小區域的行為.