back to index
Explainable ML (1/8)

link |
各位同學大家早,那我們來開始上課吧。
link |
那今天我們要講的呢,是Explainable的Machine Learning。
link |
那我們要期待做到的事情就是機器它不只是知道,而且要告訴我們它為什麼知道。
link |
舉例來說呢,現在大家在座位裡面都已經做過classification這樣的任務,我們都知道怎麼train一個classifier。
link |
那你可以給機器一張圖片,然後它告訴你說這張圖片裡面有什麼,比如說這張圖片裡面有一隻貓。
link |
但是我們今天不只要機器告訴我們這張圖片裡面有一隻貓,我們還要它告訴我們它判斷你圖片裡面有一隻貓的理由。
link |
那這個就是Explainable的Machine Learning,它不只是給我們答案,它還要提供解釋。
link |
那這個Explanation分成兩大類,一類是Local的Explanation,那另外一個是Global的Explanation。
link |
那所謂Local Explanation的意思是說,今天我們已經給機器一張圖片,它要告訴我們說為什麼它覺得這張圖片裡面有一隻貓,那這是Local的Explanation。
link |
那Global Explanation的意思是說,機器不是針對某一張圖片來進行解釋,而是我們要它告訴我們說,在它的心裡一隻貓長的是什麼樣子。
link |
舉例來說,現在很多公司都會想要用機器來協助做履歷的判讀,但是如果我們今天用機器來做履歷的判讀的時候,我們就期待機器是公平的。
link |
那怎麼讓人類知道說機器是不是公平的呢?也許我們就需要機器一邊判讀履歷的時候,一邊告訴我們它篩選履歷的理由。
link |
這樣我們就可以知道說機器到底是真的看一個人的能力,它會有Machine Learning,它會寫程式來決定要不要錄取這個人,還是只是看他的性別就決定要不要錄取這個人。
link |
或者是說,未來我們可能用機器來把機器用在法律的應用上,舉例來說,讓機器來協助判斷說一個罪犯是否可以假釋。
link |
那我們會需要知道說機器到底是真的有具體的事證來判斷一個罪犯是否可以假釋,還是說看他的膚色就判斷他是不是可以假釋了。
link |
另外呢,有時候某一些決策,尤其是金融相關的決策,你在做決策的時候,依照法律的規定,你是需要顧上決策的理由。
link |
舉例來說,銀行要拒絕給某個人貸款,它不能夠只是說我不想要給你貸款,它需要顧上拒絕貸款的理由。
link |
那假設未來銀行判斷是否要給某一個人貸款,他都是使用Machine Learning的技術的話,那我們就需要Machine Learning的Model,它具有可以提供理由的能力。
link |
再來有了這個機器可以有這個Explainable的Machine Learning以後,我們就可以做模型的診斷,讓我們知道說機器他今天到底學到了些什麼。
link |
那有同學可能會問說,為什麼我們不能夠只看正確率就知道機器學到什麼了呢?難道不是正確率高就代表學到很多東西,就代表它是一個很強的模型嗎?
link |
那不一定是這個樣子,那我們在第一堂課的時候就跟大家講過了神馬漢斯的故事,一個機器學習的模型很有可能正確率很高,但實際上它什麼都沒有學到。
link |
那假設我們今天可以做模型的診斷以後,那未來我們也許就可以更進一步根據診斷的結果來提供我們如何繼續去精進機器學習模型的方向。
link |
那以下這個漫畫,我想很多人可能都看過,左邊那個人就問說,這個就是你的機器學習的系統嗎?右邊那個人他站在一大堆的數學上,站在一大堆的矩陣上就說,對,這就是我的機器學習系統。我把我的data倒進去,然後裡面有很多的矩陣,有很多的線性代數,然後不知道怎麼回事呢?答案就跑出來了。
link |
那左邊這個人就說,那如果答案是錯的,那怎麼辦呢?那各位知道要怎麼辦嗎?我想你都已經做過一些機器學習相關的作業了,所以我想你的答案就是,倒調一波參數,對不對?
link |
所以右邊那個人就說,那我就把這堆東西胡亂再搞一搞,看看它是不是就會動起來了。假設是沒有做過機器學習相關應用的人,他聽了就會大吃一驚,原來你們都是這樣搞的。
link |
其實今天底部的能力就是這麼搞的,如果缺一個model,結果不太好,你就倒調一下參數,調一下人名銳,調一下內容的架構,看看結果會不會比較好一點。那但是我們期待說,未來假設我們讓機器有解釋的能力,它可以自動做模型的診斷,它可以告訴我們說,它今天到底哪裡學得好,哪裡學得不好,也許藉由模型診斷的結果可以給我們一些指示,給我們一些guideline,知道未來怎麼真的繼續去improve我們的model。
link |
這邊有一些我個人的觀點,這個不一定是對的,這是我個人的觀點提供給大家參考。
link |
那有些人覺得說,所謂的explainable machine,意思就是說我們要做到說可以完全了解一個machine learning的model,它是如何做判斷的,完全了解一個machine learning的model,它到底做了些什麼事情。那在我看來呢,explainable machine learning並不等於我們完全了解了一個模型,甚至我認為完全了解一個模型其實未必是必要的。
link |
怎麼說呢?很多人會覺得說,這個deep learning就是,雖然說它很powerful,但是我們不可以相信它,為什麼?大家都知道說,deep learning,我們被詬病的一點就是它是一個黑盒子,我們不知道裡面到底發生了什麼事,你輸入進去,答案不知道怎麼回事,就跑出來了,不知道它在做什麼事,所以我們不可以相信這樣子的一個black box的model。
link |
你覺得說deep learning,因為它是一個black box,所以你就不能相信,但是你有沒有想過,人類其實也是black box,你有這麼多的black box在路上走來走去,但是你一點都不覺得緊張這樣子,你可以覺得很comfortable。
link |
在我看來,machine explanation它的目標其實就是讓人高興,它所謂的人指的就是這些machine learning技術的被服務者,舉例來說,你的客戶、你的老闆或者是你自己。
link |
這個explainable machine learning它存在的目的,其實就是為了人而存在的,它是解釋,就是為了提供出來,然後讓人覺得看了以後,你就覺得很有道理,我相信這個machine learning的model,它真的有學到東西,我可以放心,它就是要讓人覺得高興的一個手段。
link |
講得更直白一點,它就是要讓人覺得爽的。那到底什麼是正確的explanation?我覺得並沒有所謂的正確的explanation這種東西,而是針對不同的人,也許我們應該要有不同的explanation。
link |
所以我相信在未來,這個explanable machine learning它會是personalized,也就是最終machine,也許最終要做到針對不同的人,它就要提供給他不同的解釋,不同的explanation的解讀。
link |
這就讓我想到說,政府現在要大力推廣AI了,現在不只是大學,每個科系都有AI的課,高中也要教AI,也在研擬國中國小也要教AI,等等等等。
link |
我之前看了科技部拍的一個短片,是部長跟一個五歲小孩的對話,那小孩一邊玩球一邊跟部長講話,那具體的內容我其實幾乎都忘記了。
link |
我只記得說他的結尾是這樣,小孩問部長說,部長你覺得我們應該幾歲開始學AI的?然後部長說,越早越好,相信你現在就應該開始學AI了。
link |
以後我們是要想辦法教國小的小朋友學AI的,但是你知道,如果你在國小小朋友問你說,這個什麼是machine,你為什麼機器會學習呢?你其實沒辦法跟他講太多,你只能說,因為機器跟你要很聰明,所以他會學習,因為機器只能夠講什麼,但是這樣子對大學生來說顯然是不夠的。
link |
所以我們今天在不同的對象,我們應該要有不同的解釋。其實有一些model它本質上就是很容易被解釋的,所以對那些model而言,我們並不需要提出什麼新的machine explanation的技術,因為它本質上就可以一眼被看穿,它非常的單純,它一眼就可以被看穿。
link |
舉例來說,一個linear的model,它一眼就可以被看穿,對不對?我們知道linear model裡面就是一組weight,每一個weight會成團成feature,所以你根據那些weight的大小還有它的正負號,你就會知道說一個feature它是不是重要的。
link |
當然如果你今天的feature很多,那你的weight都會很多,它會比較難解釋一遍,不過相較於deep learning,一個linear的model是比較容易被了解的,但是我們知道說一個linear的model它就不如deep learning那麼的曝光。
link |
那反過來說,我們知道說deep learning的model它就是一個黑盒子,它很難被解釋說今天模型裡面到底發生了什麼樣的事情,它有太多的參數,那些參數又是一層一層的疊起來互相的影響,所以我們不知道說一個deep neural裡面到底做了些什麼樣的事情。
link |
那所以有人就說,因為deep learning是一個黑盒子,所以我們不該去使用它。但是另外一方面,你又知道說其實deep learning相較於linear的model,它是一個比較好過的model,所以我覺得我們對於deep learning沒有辦法解釋這件事情的態度應該是說,我們要想辦法讓deep的model變得可以解釋。
link |
光是因為deep的model是黑盒子,我們就覺得說我們不應該用它,這個根本是血濁勢力,我們應該是要想辦法讓deep的model能夠解釋。
link |
最後讓我想到一個故事,就是我聽楊瓦頓的演講的時候他說的,楊瓦頓就是propose CNN的那個人,楊瓦頓他這樣說,他說我來分享一個大家都聽過的老梗的笑話,這個老梗的笑話是什麼樣子?
link |
有一個人他在路燈下找他的車鑰匙,然後旁邊的人問他說,你車鑰匙掉在路燈下嗎?他說不是,我的車鑰匙掉在那個陰暗的角落。那為什麼你在路燈下找呢?因為這裡有光。
link |
所以這個隱身是什麼?隱身就是這個路燈就是interpretable的model,你明明知道interpretable的model它不是人工智慧最終的選擇,它不是一個特別powerful的model,你只是因為它interpretable,你就一直要堅持要用它而不願意做比較powerful的model,這個就跟堅持要在路光上找車鑰匙,明明鑰匙就沒有掉在那邊一樣,你應該是要拿著手電筒去按相照。
link |
所以我們今天要做的事情就是希望一個本來沒有辦法解釋的fairbox的model,它可以被解釋,至少它可以提供我們一些理由知道它是怎麼做判斷的。
link |
有人找,然後這邊又會問說,那有沒有一些model它是可以被解釋,同時又非常powerful的呢?那也許這個decision tree是一個可能的candidate。大家都知道說,在打這種cardinal的機器學生比賽的時候,往往最強的就是那種decision tree based的方法,random forest或差距boost等等是最強的方法。
link |
那decision tree是很容易被解釋的model,舉例來說,你可以開一個decision tree,馬上就知道我們是怎麼判斷的。舉例來說,這邊有一個生物分類的decision tree,那機器怎麼知道說某一個生物是被分類成鳥呢?
link |
那你就看這個數說,因為這個生物它可以在空氣中呼吸,然後它要下蛋,所以它就是鳥。所以這邊告訴我們說,我們應該改用decision tree了,這就是在浪費時間。
link |
但是事實上並不完全是這個樣子,decision tree它可以是很難被解釋的。剛才那個例子讓你覺得decision tree很容易被解釋,是因為那個tree很簡單。一個tree,如果你今天要解的是很困難的問題,一個tree它是可以很複雜的,你完全看不懂那個tree在做什麼。
link |
舉例來說,我這樣就看到在網路上有人就發問,問了一個問題說,啊,我有一顆這麼複雜的decision tree,然後有沒有人可以告訴我有什麼方法可以讓它變得比較interpretable呢?然後半年來都沒有人回答了。
link |
而且你再進一步想想看,我們從來不是用單一個decision tree得到很好的結果,單一個decision tree根本沒有辦法得到很好的結果。
link |
你可能需要500顆tree做random polling,500顆tree做差距boosting才會得到好的結果。所以我們手上有的並不是一棵樹,而是一片森林,然後當它還是一片森林的時候,它就是黑暗森林,它是很黑暗的,所以我們其實並沒有辦法完全解釋它,並不能完全了解一片森林裡面發生了什麼事情。