back to index
【機器學習2021】機器學習模型的可解釋性 (Explainable ML) (上) – 為什麼類神經網路可以正確分辨寶可夢和數碼寶貝呢?

link |
好,我們現在要來講Explainable的Machine Learning
link |
到目前為止,我們已經訓練了很多很多的模型
link |
我們訓練過影像辨識的模型,給他一張圖片,他會給你答案
link |
我們並不滿足於此,接下來我們要機器給我們他得到答案的理由
link |
這個就是Explainable的Machine Learning
link |
開始介紹技術之前,我們需要講一下為什麼Explainable的Machine Learning是一個重要的議題
link |
我覺得一個本質上的原因是,就算今天機器可以得到正確的答案,也不代表他一定非常聰明
link |
舉一個例子,過去有一匹馬,他很聰明,所以大家叫他神馬漢斯
link |
這個神馬漢斯可以做什麼事情呢?他會做數學問題
link |
舉例來說,你問他根號9是多少,然後他就會開始計算,得到答案
link |
他怎麼告訴你他的答案呢?他會用他的馬蹄去墮地板
link |
就停下來,代表他得到正確的答案,然後旁邊的人就會歡呼
link |
所以這個是神馬漢斯,然後一堆人在看他解數學問題
link |
後來有人就很懷疑說,為什麼漢斯可以解數學問題呢?
link |
他只是一匹馬,他為什麼能夠理解數學問題呢?
link |
後來有人發現說,只要沒有人圍觀的時候,漢斯就會答不出數學問題
link |
沒有人看他的時候,你問他一個數學的問題,他就會不斷地敲他的馬蹄,不知道什麼時候停下來
link |
所以他其實只是偵測到旁邊人類微妙的情感變化,知道他什麼時候要停下墮馬蹄
link |
他就可以用胡蘿蔔吃,他並不是真的學會解數學的問題
link |
而今天我們看到種種人工智慧的應用,有沒有可能跟神馬漢斯是一樣的狀況呢?
link |
而今天在很多真實的應用中,Explainable的Machine Learning,可解釋性的模型往往是必須的
link |
舉例來說,銀行今天可能會用機器學習的模型來判斷要不要貸款給某一個客戶
link |
但是根據法律的規定,銀行用機器學習的模型來做自動的判斷,他必須要給出一個理由
link |
所以這個時候我們不是只訓練機器學習的模型就好,我們還需要機器學習的模型是具有解釋力的
link |
或者是說機器學習未來也會被用在醫療診斷上,但醫療診斷人命關天的事情
link |
如果機器學習的模型只是一個黑箱,不會給出診斷的理由的話
link |
那我們又要怎麼相信他做出的是正確的判斷呢?
link |
今天也有人想把機器學習的模型用在法律上
link |
比如說幫助法官判案,幫助法官自動判案說一個犯人能不能夠被假釋
link |
但是我們怎麼知道機器學習的模型是公正的呢?
link |
我們怎麼知道他在做判斷的時候沒有種族歧視跟其他的問題呢?
link |
所以我們希望機器學習的模型不只得到答案,他還要給我們得到答案的理由
link |
再更進一步,今天自駕車未來可能會滿街砲
link |
當今天自駕車突然急煞的時候,甚至急煞導致車上的乘客受傷
link |
那這個自駕車到底有沒有問題呢?這也許取決於他急煞的理由
link |
如果他是看到有一個老太太在過馬路,所以急煞,那也許自駕車是對的
link |
但是假設他只是無緣無故就突然發狂要急煞,那這個模型就有問題了
link |
所以對自駕車他的種種的行為,種種的決策,我們希望知道決策背後的理由
link |
更進一步,也許機器學習的模型如果具有解釋力的話
link |
那未來我們可以憑藉著解釋的結果再去修正我們的模型
link |
今天在使用這些深度學習的技術的時候,往往狀況是這個樣子
link |
有某人說,這個就是你的機器學習的系統啊
link |
是啊,我就是把資料丟進去,裡面就是有很多矩陣的鑲塵
link |
怎麼樣呢?現在大家都知道,就幫我調一下參數對不對?
link |
改個learning rate對不對?調一下network的架構對不對?
link |
你更不知道自己在做什麼對不對?就調一下network的架構
link |
我就把這一堆數學,這一堆linear algebra再重新打亂一下
link |
那如果其他沒有做過deep learning的人,就會大吃一驚
link |
但實際上今天深度學習的模型,你往往要改進模型
link |
就是需要調一些hyperparameter
link |
deep learning的模型犯錯的時候,它是錯在什麼樣的地方?
link |
它為什麼犯錯?也許我們可以有更好的方法
link |
更有效率的方法來improve我的模型
link |
今天離用explainable的machine learning
link |
做到上述improve model的想法,還有很長的一段距離
link |
我們今天之所以這麼關注explainable machine learning的議題
link |
也許是因為deep的內部,它本身就是一個黑箱
link |
那我們能不能用其他的機器學習的模型呢?
link |
如果不要用深度學習的模型,改採用其他比較容易解釋的模型
link |
會不會就不需要研究explainable machine learning的呢?
link |
舉例來說,假設我們都採用linear的model
link |
linear的model,它的解釋的能力是比較強的
link |
我們很可以輕易的知道,根據一個linear model裡面的
link |
每一個feature的weight,知道linear的model在做什麼事
link |
所以你訓練完一個linear model以後
link |
你可以輕易的知道,它是怎麼得到它的結果的
link |
但是linear model的問題就是,它沒有非常的powerful
link |
linear的model有很巨大的限制
link |
所以我們才很快的進入了deep的model
link |
但是deep的model它的壞處就是,它不容易被解釋
link |
deep的network大家都知道,它就是一個黑盒子
link |
黑盒子裡面發生了什麼事情,我們很難知道
link |
雖然它比linear的model更好
link |
但是它的解釋的能力是遠比linear的model要差
link |
所以講到這邊,很多人就會得到一個結論
link |
我們就不應該用這種deep的model
link |
我們不該用這些比較powerful的model
link |
但是在我看來,這樣的想法其實就是血逐事履
link |
我們因為一個模型,它非常的powerful
link |
我們不是應該是想辦法讓它具有可以解釋的能力嗎
link |
我聽過Yann LeCun講了一個故事
link |
其實就好像是我們堅持一定要在路燈下面找鑰匙一樣
link |
我們堅持因為一個模型是比較interpretable的
link |
雖然它比較不好,但我們還是堅持要使用它
link |
不知道說真實的模型,真實powerful的模型
link |
而我們現在要做的事情,就是改變路燈的範圍
link |
看能不能夠讓這些比較powerful的模型
link |
比較interpretable,比較explainable
link |
其實interpretable跟explainable這兩個詞彙
link |
通常這個explainable指的是說
link |
我們想辦法賦予它解釋的能力叫做explainable
link |
那interpretable通常指的是
link |
explainable跟interpretable的差異
link |
那講到既interpretable又powerful的模型
link |
那decision tree會不會就是一個好的選擇呢
link |
decision tree相較於linear的model
link |
而decision tree的另外一個好處
link |
相較於deep learning它非常的interpretable
link |
你看那個decision tree的structure
link |
那decision tree不是我們這門課會講的東西
link |
但是就算是你沒有學過decision tree
link |
你其實也不難想像decision tree它是在做什麼
link |
decision tree它既強大又interpretable
link |
就是decision tree is all you need
link |
但是decision tree真的就是我們所需要的嗎
link |
decision tree也有可能是很複雜的
link |
他說他有一個這麼複雜的decision tree
link |
他完全看不懂這個decision tree在幹嘛
link |
explainable machine learning的方法
link |
可以把這個decision tree變得更簡單一點
link |
你是怎麼實際使用decision tree這個技術的呢
link |
deep learning不是最好用的
link |
decision tree那個才是最好用的
link |
當你在使用decision tree的技術的時候
link |
你是只用一顆decision tree嗎
link |
你真正用的技術叫做random forest對不對
link |
當你有500顆decision tree的時候
link |
你就很難知道說這500顆decision tree合起來
link |
所以decision tree也不是最終的答案
link |
我們就解決了explainable machine learning的問題
link |
好那在繼續深入講explainable machine learning的技術之前
link |
explainable machine learning的目標是什麼
link |
但是explainable的目標到底是什麼呢
link |
什麼才是最好的explanation的結果呢
link |
那explainable machine learning
link |
你才發現說explainable machine learning的作業
link |
那到底explainable machine learning
link |
什麼才是最好的explanation
link |
很多人對於explainable machine learning
link |
他覺得一個好的explanation
link |
我們今天說machine learning的model
link |
為什麼deep neural是一個黑盒子
link |
以下是一個跟machine learning
link |
所以會不會Explainable Machine Learning
link |
所以我們需要Explainable Machine Learning
link |
所以我覺得對什麼叫做好的Explanation
link |
Deep Network是一個黑盒子
link |
Deep Network是黑盒子就是不好的
link |
Deep Network是一個黑盒子
link |
就是讓人高興的Explanation
link |
就是讓人高興的Explanation
link |
所以Explainable Machine Learning
link |
那Explainable Machine Learning
link |
叫做Local的Explanation
link |
第二大類叫做Global的Explanation
link |
Local的Explanation是說
link |
假設我們有一個Image的Classifier
link |
這個叫做Local Explanation
link |
還有另外一類叫Global Explanation
link |
Global Explanation意思是說
link |
現在還沒有給我們的Classifier
link |
所以Explainable的Machine Learning
link |
可能每一個Component就是一個Pixel
link |
可能每一個Component就是一個詞彙
link |
那怎麼知道一個Component的重要性呢
link |
就是我們把Component都拿出來
link |
然後把每一個Component做改造
link |
如果我們改造或刪除某一個Component以後
link |
今天Network的輸出有了巨大的變化
link |
如果某一個Component被刪掉以後
link |
現在Network的輸出有了巨大的變化
link |
就代表這個Component沒他不行
link |
那這個Component就是一個重要的Component
link |
今天你的Network會Open不同的結果
link |
這些顏色代表今天Network輸出國美狗的機率
link |
今天你的Image Classifier
link |
這個小1是把這張圖片丟到你的模型裡面
link |
跟正確答案的Cross Entropy
link |
那我們可以用Delta1跟DeltaX的比值
link |
而事實上DeltaX分之Delta1
link |
反正就是DeltaX跟Delta1的比值
link |
每一個Pixel它的這個比值都算出來
link |
你會有很多機會畫各式各樣的Saliency Map
link |
然後有亮白色點的是Saliency Map
link |
那在這個Saliency Map上面呢
link |
不知道大家知不知道那個數碼寶貝是什麼
link |
不知道的同學反正就是另外一種動物就對了
link |
他訓練了一個數碼寶貝跟寶可夢的分類器
link |
胡亂train一個classify就結束了
link |
這個也許是overfitting而已
link |
也許machine只是把training的data
link |
所以我決定來畫一下salient z-map
link |
我就在這些圖片上畫salient z-map
link |
Explainable AI是一個很重要的技術
link |
但如果你畫saliency map的話
link |
這種Explainable Machine Learning
link |
把Explainable的Machine Learning
link |
剛才也有提到的這個Smooth Grain
link |
你今天去做Saliency Map的時候
link |
所以就有了Smooth Grain這個方法
link |
這個Saliency Map上面雜訊比較少
link |
那Smooth Grain這個方法是怎麼做呢
link |
就有100張Saliency Map
link |
平均起來就得到Smooth Grain的結果
link |
你怎麼知道說這個Smooth Grain
link |
Explainable Machine Learning
link |
這個Explainable Machine Learning的方法
link |
叫做Integrated Gradient
link |
第二個Layer也有100個Neural
link |
以前Thread Network多麼麻煩
link |
用的是Deep Belief Network
link |
Deep Belief Network
link |
是Deep Neural Network嗎
link |
就是Acoustic Feature
link |
那其實我們丟給這個Network的資料
link |
從Acoustic Feature上
link |
但是我們從Acoustic Feature上
link |
要求大家看了Burton的Attention
link |
但是當你使用Attention的時候
link |
Attention應該非常具有解釋力
link |
Attention is not explainable
link |
Attention並不是總是可以被解釋的
link |
Attention is not explainable
link |
Attention is not explanation
link |
就是你用探針去插入這個Network
link |
這個分類器是要根據一個Feature
link |
丟到POS的Classifier裡面去
link |
你就訓練一個POS的Classifier
link |
如果這個POS的Classifier
link |
Name Entity Recognizer的Classifier
link |
那你透過這個NER Classifier的正確率
link |
你的Classifier Train爛了
link |
你Classifier Train出來一定是好的
link |
那搞不好你訓練完一個Classifier
link |
單純就是你Learning Rate沒有調好
link |
只是因為你Classifier沒有Train好
link |
Probing不一定要是Classifier
link |
它是吃Neo Output的Embedding
link |
它是Neo Output的Embedding
link |
接下來訓練了一個Phoning的Classifier
link |
Bidirectional的LSTM
link |
Bidirectional的LSTM
link |
前面CNN似乎沒有起到濾掉雜訊的作用