back to index
Explainable ML (6/8)

link |
我想跟大家分享的是,用一個Machine Learning的Model去解釋另外一個Machine Learning的Model。
link |
因為我們剛才其實在這堂課開頭的時候,我們就有說過說,有某一些Model,它其實是比較容易被解釋的。
link |
比如說Linear的Model,比如說This is a trick。
link |
所以我們能不能用一個可以被解釋的Model去解釋另外一個不能被解釋的Model呢?
link |
那這邊的概念是說,我們用一個可解釋的Model去模擬、模仿那個不可解釋的Model的行為。
link |
然後我們就假設說,現在那個有解釋能力的Model,它跟那個不可解釋的Model他們做的事情是一樣的。
link |
但是因為那個Model是可解釋的,所以我們就可以直接分析那個Model,知道那個不可解釋的Model做的事情是什麼。
link |
我們用一個具有解釋能力的Model去模仿一個沒有解釋能力的Model。
link |
假設我們現在有一個Blackbox,這個Blackbox可能是一個Neural Network,或者是其他的方法,比如說Random Forest,比如說差距Boost等等。
link |
那我們現在要訓練另外一個Model,它跟這個Blackbox的這個Model,它有同樣的行為。
link |
那怎麼做呢?你就把一堆X1到Xn丟到這個Blackbox裡面,丟到這個黑盒子裡面,看看它會Output什麼樣的Y1到Yn。
link |
接下來你把同樣的X1到Xn丟到你現在想要訓練的那個具有解釋性的Model裡面。
link |
然後你今天訓練這個具有解釋性的Model的時候,你的訓練的目標是希望它的輸出Y1到Yn跟這個黑盒子的輸出越接近越好。
link |
你希望訓練這個藍色的具有解釋性的Model,它今天跟這個黑盒子是一樣的輸入的時候,它們應該要有越接近的輸出越好。
link |
比如我們用這個藍色的Model去模仿那個黑盒子的行為。
link |
那假設藍色的Model可以完全模仿黑盒子的行為以後,我們再去分析這個藍色的盒子,假設藍色的盒子是相較於黑色的盒子是比較容易分析的,我們再去分析藍色的盒子,看看今天Machine到底學到了什麼樣的東西。
link |
那今天這個藍色的盒子它可以是什麼呢?舉例來說我們剛剛講過Linear的Model是比較容易被分析的,那我們假設這個藍色的Model藍色的盒子是Linear的Model,那會發生什麼樣的事情呢?
link |
我們會發現說因為Linear的Model相較於Thick的Level,它的能力可能相差太大,所以Linear的Model沒有辦法做到跟黑盒子一樣的行為。
link |
我們在之前的課堂有講過說Linear的Model有很多的限制,有很多的Data它是沒有辦法處理的,我們才會引入了Deep Learning這樣子的概念。
link |
所以其實今天假設你有一個Thick的Model,假設你的黑盒子是一個Thick的Model,你的Linear的Model非常有可能沒有辦法跟它做到一模一樣的事情。
link |
那如果Linear的Model沒辦法跟黑盒子做到一樣的事,那我們分析Linear的Model就沒有什麼意義了。
link |
但是Linear的Model有一個用途是,我們如果不分析這個黑盒子的全貌,而只專注在這個黑盒子的其中一小塊的話,我們還是很有可能可以用Linear的Model來分析這個黑盒子的其中一部分的。
link |
什麼意思呢?我們這邊跟大家介紹一個叫做Line的技術,那等一下在這個作業室裡面,我們其實有一集是要大家實作一下Line的技術,假設其實Linear的技術有現成的Python的Package,那其實就是跑一下那個Python的Package而已。
link |
那現在假設我們要分析的對象是一個黑盒子,那這個黑盒子我們假設它的輸入就是一維的,輸出就是一維的,輸入是一維的X,輸出是一維的Y,那X跟Y之間有一個比較複雜的關係。
link |
好,那我們剛才說我們顯然無法用一個Linear的Model來完全模擬這個黑盒子的行為,但是我們可能可以用這個Linear的Model來模仿這個黑盒子一部分的區域的行為。
link |
舉例來說,這個Line的步驟是這個樣子,首先你要決定你想要分析的Datapoint,假設我們現在想要分析的Datapoint是落在這個位置,那接下來你在你想要分析的Datapoint的附近做一下Sample,在這個想要分析的藍色這個點附近再Sample出更多藍色的點。
link |
假設你去計算一下把這些藍色的點帶到黑盒子裡面,你會得到什麼樣的輸出Y。
link |
好,那你現在有了這些點以後,你去訓練一個Linear的Model,或者上面不一定要是Linear的Model,只要是其他比較能夠解釋的Model都可以,你去訓練一個Linear的Model,用這個Linear的Model來模仿這個黑盒子在這個區域內的行為。
link |
那接下來你在分析這個Linear的Model,你就可以知道說在這個區域附近,這個X的值變大,Y的值是會變小的,這個就是Linear的基本概念。
link |
那剛才在這個Linear的第二步,我們有講說我們要進行Sample,我們是要在我們感興趣的要分析的這個點的附近進行Sample,但是什麼叫做附近呢?你對附近的定義不同,你得到的結果就會不一樣,你對附近的定義不同,你得到的分析結果就會不同。
link |
像我們剛才一開始的時候講過說,你可以在圖上面放一個黑色的方塊,然後看看今天辨識的結果會受到黑色的方塊的影響有多大,然後藉由這個影響,你可以知道說Image上每個區域有什麼樣的重要性,讓我們說那個方塊大小對你interpret的結果,對你解釋的結果是會有很大的影響的。
link |
Linear也是一樣,你今天所謂的nearby的區域取的大小不同,你得到的結果其實是會非常不一樣的。
link |
那有人可能會覺得說Linear這個方法聽起來感覺好像是在計算歸點,但它跟計算歸點又有一些不同,因為假設在這個例子裡面,你選擇的點是這個點,你在這邊計算歸點,你可能會得到說,歸點是0,所以X對Y沒有影響。
link |
那如果你是用Linear的方法,你並不是單純在這個點去計算歸點,而是在這個點的周圍去做一些sample,再用一條linear的線去beat這些sample,那你得到的結論會跟直接算歸點得到的結論會是不一樣的。
link |
像我剛才講說,到底什麼叫做附近,會影響你最後interpret的結果。所以假設你今天所謂的附近其實非常的寬是這樣,那你得到interpret的結果就會截然不同。所以使用這樣的技術的時候,你也是要小心的,有很多參數你可以調,然後就可以得到不同的解釋的結果,那你在做作業的時候是需要調一下參數,可以自己體驗一下,你怎麼調出你覺得自己比較滿意的結果就是了。