back to index

Explainable ML (4/8)


link |
00:00.000
好,那剛才講的是local的explanation,接下來我們要講一下global的explanation
link |
00:06.600
也就是假設機器說他看到了貓,那對機器來說,他的心裡一隻typical的貓到底長的是什麼樣子
link |
00:17.000
那這個部分,其實我們在之前課堂的錄影裡面是有提過的,所以我假設說你其實是有看過這段錄影的部分,我們就可以稍微講快一點
link |
00:28.000
那在錄影裡面,我們提到了一個技術,這個技術是要找一張圖片讓某一個builder的output或者某一個neural的output可以被最大化
link |
00:40.000
這個技術叫做explanation的maximization,舉例來說,我們現在有一個手寫數字辨識的network,你把一張圖片丟進去,他告訴你說這個圖片是數字0到9的哪一個數字
link |
00:56.000
然後接下來呢,我說我們可以讓機器幫我們畫出一個數字,我們想要知道對機器來說,他心裡理想的1長什麼樣子,他心裡理想的2長什麼樣子
link |
01:10.000
那怎麼做呢?我們就把某一個neural拿出來,某一個open layer的neural拿出來,假設我們現在在意的是,想要知道說在機器心裡一個理想的,比如說理想的5長什麼樣子
link |
01:22.000
我們就把對應到5的那個neural,把open layer裡面,open layer裡面每個neural都對應到一個數字,把open layer裡面對應到5的那個neural,他的輸出把它拿出來
link |
01:33.000
我們假設對應到5的那個neural,他的輸出,我們寫做yi,那我們現在要找一張圖片,這個x代表一張輸入的圖片,我們要找一張輸入的圖片x
link |
01:45.000
然後呢,他可以使得yi的值呢,越大越好,我們找到一個x檔,他可以讓,他把這個x檔丟到這個neural裡面,他可以讓yi的值越大越好
link |
01:57.000
那我們期待說,藉此我們就可以看到機器對機器心理一個理想的這個5呢,長什麼樣子,假設yi呢,代表的是5的confident
link |
02:09.000
那我們在之前錄影片有說,畫出來的結果大概像是這樣,就跟壞掉的電視一樣,都是一堆雜訊
link |
02:16.000
但是因為我們之前已經講過adversarial attack,我們之前已經講過attack這件事,所以其實這個結果可能沒有讓你特別的意外,為什麼?
link |
02:25.000
你記不記得我們之前在講attack的時候,我們說我們可以加上一些人根本看不出來的雜訊,就讓機器說他看到了鍵盤,他看到了海星
link |
02:34.000
所以今天意思一樣,我們給機器看了一個雜訊,他很有可能會覺得這個雜訊就是0,他就是1,他就是2,他就是3,他就是4,他就是5等等
link |
02:43.000
所以今天如果我們光是說找一個圖片,然後呢,會讓機器覺得這張圖片是某一個test,並不能夠讓我們知道說機器今天他心理一個理想的這個數字到底長的是怎麼樣
link |
02:59.000
我們需要加一些額外的限制,舉例來說,我們本來是說我們要找一張圖片,這個圖片可以讓某一個test輸出的機率越大越好
link |
03:14.000
現在我們不只是要找一張圖片可以讓某一個test輸出的機率越大越好,同時我們希望那張圖片看起來像是一個數字
link |
03:26.000
所以我們現在定義一個function,這個function叫做Rx,這個Rx代表意思是說,我今天把x代到這個function裡面,這個function會吐出一個數值
link |
03:39.000
這個數值代表說現在這個x看起來有多像是一個digit,有多像是一個數字
link |
03:46.000
那這個Rx要怎麼定呢?你可以用各種不同的方法來定義這個Rx
link |
03:51.000
舉例來說,在之前上課的錄影裡面,我採取了一個非常簡單的方法,我把x裡面所有的pixel都加起來
link |
04:01.000
x裡面所有pixel的強度通通加起來,因為我們相信說今天在一張圖片裡面,在一個數字裡面,多數的區域都沒有數值
link |
04:13.000
比如說你在一個圖片上面畫一筆畫,寫個1,那只有畫的那一筆畫的地方有沾到墨水,只有畫的那一筆畫的地方會顯示出顏色,那其他地方應該都是黑的
link |
04:26.000
所以我們今天這個看起來像數字的東西,它不可能像左邊這個圖這樣子有這麼多白色的點點,它不可能有這麼多白色的花紋,它只能夠有很少數的pixel,它是有數值的
link |
04:41.000
所以我們今天可以根據所有pixel它的強度的總和,來判斷它像不像是,來判斷一張圖片看起來像不像是一個數字
link |
04:52.000
那如果我們加上這個限制的話,就我們不完全是找一張圖片,它可以讓yi的值越大越好
link |
04:58.000
我們同時找一張圖片,它要看起來根據我們這邊設計的這個function,它要看起來像是一個數字的話,那我們找到的結果看起來像是下面這個樣子
link |
05:09.000
我們可以知道說,比如說這張圖片看起來就有點像是6了,這張圖片看起來就有點像是8了
link |
05:17.000
那你可能會問說,為什麼是使用這樣子的function來判斷是不是一個數字呢?
link |
05:23.000
那也許這個function其實不是最好的function,你永遠可以自己想一想,看說有什麼樣的function可以幫助我們判斷說一張圖片看起來像不像是一個數字
link |
05:35.000
那同樣的技術,如果你把它用在更general的case,比如說不只是手寫數字辨識,而是一般的筆槍辨識
link |
05:43.000
比如說用image netcode turn出來的巨大那些level的話,如果你不加上這些限制,你不加上這些regulation的turn,你得到的結果也會像是雜訊的樣子
link |
05:56.000
那你可能會在文件上看到這種很漂亮的圖,就是你讓機器告訴你心裡的紅鶴長什麼樣子,又畫出很多紅鶴來
link |
06:05.000
你要得到這種圖,你要加上很多的regulation turn,你必須要加上很複雜的function,告訴機器說什麼樣的圖片看起來才像是一個正常的現實生活中會出現的圖片
link |
06:20.000
然後你要爆調一下那個參數量,就是我們如果有很多的turn,那每個turn前面當然有一個weight嘛
link |
06:28.000
那你要把每一個turn給不同的weight,爆調一波參數,你才能夠得到這樣子比較好的結果
link |
06:35.000
詳細你可以看一下這個paper,你並沒有那麼容易做出這麼好看的結果,這個是要爆調一波參數才能夠得到的結果
link |
06:42.000
不過這個作者他就做了很多很厲害的結果,比如說看到這個叫機器畫一些紅鶴出來,看起來真的像是紅鶴
link |
06:50.000
這個是撞球桌,這個是黑天鵝,這個是就算你不知道cobra是什麼,它其實就是眼鏡蛇,或者這個是甲蟲等等
link |
07:02.000
機器確實我們叫它畫出它心裡理想的某種物件的時候,某種看似圖的物件的時候,它是可以畫得出來的