back to index
Explainable ML (5/8)

link |
好,那剛才呢,我們是用人想的一些人想的一些function來告訴機器說
link |
什麼樣的東西看起來像是一張正常的image
link |
那事實上我們現在可以做得更好,因為我們知道說現在有一些generated model
link |
我們可以訓練比如說image的generator
link |
你只要先事先收集好一大堆圖片,你就可以教機器怎麼去產生圖片
link |
我們可以訓練這個image的generator,那些image的generator他做的事情是
link |
給他看一個low dimensional的像量,給他看一個低維度的像量
link |
然後他就會把這個低維度的像量,通過這個image的generator以後
link |
變成一張圖片,那通常這個低維度的像量就是從某一個定好的
link |
事先定好的distribution裡面sample出來的
link |
比如說他這個Z可能是從一個Gaussian distribution
link |
或從一個Normal distribution裡面sample出來的
link |
那你把這個Z丟到image的generator裡面,他就會畫一張圖片出來
link |
那怎麼根據這些訓練的資料,訓練出這個image的generator呢?
link |
你可以用GAN或者是VAE的方法,那這堂課裡面我們還沒有講到GAN或者是VAE
link |
沒有關係,你就知道說反正有一些方法可以讓我們訓練出一個generator
link |
這個generator他吃一個random的像量,他輸出又是一張圖片
link |
那我這個generator可以想成就是一個function G
link |
那他的輸出的image X呢,他就是G
link |
輸入的這個low dimensional低維度的像量Z
link |
那怎麼把這個image的generator用來限制我們要機器畫出來的圖片呢?
link |
你可以這麼做,你把image的generator吃一個Z,他就會output一個image X
link |
你把這個image X丟到image的classifier裡面,他就會輸出一個Y
link |
原來如果我們想要知道對機器來說,某一個class I呢
link |
對機器來說某一個class I理想的圖片長什麼樣子的時候
link |
我們是去找一張image,這個image可以讓YI的值越大越好
link |
我們找一個image,他可以讓YI的值越來越好,這是我們原來的做法
link |
如果再加上一個generator以後,我們其實可以這麼做
link |
如果再加上一個generator以後,我們本來是要找一個最好的X
link |
現在我們變成不是找一個最好的X,而是找一個最好的Z
link |
我們希望找到某一個Z,這個Z呢,通過image的generator產生一張圖片
link |
再把這張圖片丟到image的classifier以後
link |
把Z丟到image的generator產生image,再把image丟到classifier以後
link |
會得到一個Y,然後我們希望能夠讓Y裡面的某一個class
link |
那我們就可以,其實這個方法也是用過一些decent解的
link |
因為你可以想像說image的generator跟image的classifier都串在一起
link |
你可以把這個image的generator跟image的classifier串在一起
link |
這個Z就變成這個很深的聯網的input
link |
所以你可以用gradient descent的方法,或其實是gradient ascent的方法
link |
因為我們是到next賣這個東西,所以是gradient ascent
link |
你可以去調這個Z,讓你得到一個你理想中的Y
link |
這個最好的Z star呢,丟到generator裡面,畫出你的X star
link |
所以本來我們是直接找一個X star,它可以讓YI呢越大越好
link |
現在我們變成找一個Z star,它可以讓YI越大越好
link |
再把這個Z star丟到generator裡面產生一個image X star
link |
把Z star丟到generator裡面產生image X star
link |
你可以想想看這個generator,其實就提供我們一個限制
link |
因為這個generator畫出來的,看起來
link |
這個generator畫出來的東西,看起來都像是正常的圖片
link |
如果我們今天讓機器自己去隨便找一個X
link |
它找出來的X star可能完全不像是我們人可以解釋的人看得懂的image
link |
但是因為這個generator,它產生出來的都是人看得懂的image
link |
看起來都像是一般我們會出現的image
link |
所以你現在把你的這個搜尋的範圍縮減在
link |
你可以找各式各樣不同的Z,但是你只能找一個Z
link |
這個Z丟到generator,它一定會產生一張好的
link |
你把你搜尋的範圍限制在找一個最好的Z
link |
你就可以確保說你現在找出來的image的X star
link |
那用這樣的方法你可以得到什麼樣的結果呢?
link |
在文獻上我看到最好的結果大概可以做出來像這個樣子
link |
實際上的方法我就把這個reference
link |
那這個就是有關global explanation的部分
link |
你可以解釋成說我們一個generator
link |
那本來generator你沒有辦法控制它生成的東西
link |
但是你現在要求generator生成一張圖片
link |
丟到那個pressure pipe以後
link |
pressure pipe覺得說那張圖片是個火山
link |
你控制generator要生成什麼樣的類別的圖片
link |
但是這個image classifier
link |
它的discriminator是不一樣的
link |
discriminator它是判斷好或壞
link |
然後這個image classifier
link |
這個image classifier是固定住的
link |
它並沒有跟著generator train
link |
而這個generator其實也是固定住的
link |
這個generator不一定要用gain的方法train出來
link |
不管它是用gain train出來的
link |
因為image classifier是4.1序列好
link |
但是我們現在加這個classifier
link |
但是加上這個classifier以後
link |
我們會去假設這個classifier
link |
你現在只要說這個classifier
link |
這個Z丟到image generator裡頭
link |
其實你也可以用conditional gate
link |
但是我們重點並不是要做generation