back to index
Explainable ML (3/8)

link |
這邊呢,舉一個實際的例子,來看看Standard Using Map可以帶給我們什麼樣的幫助。
link |
這個實際的例子呢,是我想用那一個Image的Classify,它可以分辨說現在輸入進來一張圖片,它是神奇寶貝還是數碼寶貝。
link |
我不知道大家知不知道什麼是數碼寶貝啦,所以我來解釋一下數碼寶貝跟神奇寶貝的差別。
link |
數碼寶貝跟神奇寶貝其實它們都非常類似,它們都是一些奇怪的生物,而這些奇怪的生物它們都會有多段進化,都會進化。
link |
但是數碼寶貝跟神奇寶貝還是不太一樣的,左邊是神奇寶貝,神奇寶貝基本上它們都是野生動物,就是它們跟我們人類是存在於同一個時空,
link |
然後你在路上走一走就會碰到它,你就要把它抓起來,把它關在寶貝球裡面,然後這個數碼寶貝就不太一樣。
link |
數碼寶貝跟人類存活的是不同的時空,那在這個數碼寶貝裡面是有一群小孩,或是被神選造的孩子,
link |
它是被選造的孩子,然後不知道怎麼就被吸進數碼的世界裡面,然後就遇到很多數碼寶貝就這樣子。
link |
然後其實數碼寶貝也是可以到人類的世界來的,所以其實我也不懂它是數碼的東西為什麼它可以到人類世界來的,這實在是非常令我困惑。
link |
你可能不太懂我在說什麼,其實我也不知道自己在說什麼,總之它們就是有兩群不同的生物,我們先到那個classifier來判斷兩群不同的生物就對了。
link |
在網路上是有database的,就是有神奇寶貝的圖片的database,也有數碼寶貝的圖片的database,
link |
然後我們就切一下training set跟testing set,然後就給機器看很多的神奇寶貝,就教它說這些東西都是神奇寶貝。
link |
或者說現在我們應該叫它寶可夢啦,我們不要叫它神奇寶貝,不要暴露我的年齡,它是寶可夢,這邊有很多的寶可夢。
link |
然後這邊有很多的數碼寶貝,然後到機器能在一個classifier判斷說它是寶可夢還是數碼寶貝。
link |
好,這個我有切training set跟testing set,那我們倒幾張testing set圖片出來看看說人類有沒有辦法判斷它到底是寶可夢還是數碼寶貝。
link |
舉例來說,你覺得這一隻是寶可夢還是數碼寶貝呢?
link |
你覺得它是寶可夢,覺得它是寶可夢的同學舉手一下,然後手放下,覺得它是數碼寶貝的同學舉手一下。
link |
還有一些人手放下大概一半一半這樣子,好像覺得是寶可夢的人稍微多一點,它不像它,它是寶可夢,它是寶可夢,這隻是寶可夢。
link |
如果今天是拿一些什麼琵琶丘雷丘你都認得啊,但是這個奇奇怪怪的東西你是沒有辦法認得的。
link |
哦,這樣子啊,你可以看它的邊界嗎?那如果我們看這一隻呢?你覺得它是寶可夢還是數碼寶貝呢?你覺得它是寶可夢的同學舉手一下,然後手放下,覺得它是數碼寶貝的同學舉手一下。
link |
多數人都覺得它是數碼寶貝,為什麼呢?畫的風格你覺得它是數碼寶貝,你覺得太厲害了,那這一隻呢?甜甜圈,覺得它是寶可夢的同學舉手一下,然後手放下,覺得它是數碼寶貝的同學舉手一下。
link |
然後手放下,覺得它是寶可夢的人比較多,所以確實這隻是數碼寶貝,這隻是寶可夢。
link |
所以這證明說這個人類還蠻強的,雖然你只看了一些example,但你好像就可以判斷它是數碼寶貝還是寶可夢。
link |
那機器能不能夠做到一樣的事情呢?機器能不能做到一樣的事情呢?所以我就真的train了一個model,就用keras胡亂疊了一幾層CNN那樣,胡亂疊一下。
link |
然後我胡亂疊一下,跑一下跑三個APA,然後正確率98.9%,在training set上,你不用高興得太早,因為在training set上得到這麼高的正確率,搞不好overbeat,因為圖片沒有很多張,才幾千張而已。
link |
可能就是一倍的training set的圖片而已,但是training set上是98.4%的正確率。
link |
所以機器它完全可以判斷說到底這張圖片是寶可夢還是數碼寶貝,這個我覺得真的是太神了,怎麼可以做到這麼厲害的事情。
link |
所以我就要用cdncmap來分析一下,機器到底是不是真的可以認出寶可夢或者是數碼寶貝,它到底是憑藉著什麼樣的理由判出一張一個動物它是神奇寶貝還是數碼寶貝。
link |
我就畫了一下cdncmap,這邊我就隨便sample了一些數碼寶貝,然後看看他們的cdncmap長什麼樣子,看起來是這個樣子。
link |
這個讓我微微的覺得不安,因為我發現對機器來說重要的pixel並沒有落在那些生物的本體上,而是落在生物的邊緣,感覺好像有點怪怪的。
link |
然後我再拿一些寶可夢出來拍一下,這個更明顯機器真正在意的是邊緣的部分,而不是寶可夢的本體。
link |
為什麼呢?因為我發現其實這些寶可夢都是png檔啦,數碼寶貝都是jpeg檔啦,png檔都是透明背景啦,讀不到讀到背景是黑的啦,所以機器它就看背景根本不知道它是寶可夢還是數碼寶貝啊,所以它其實什麼都沒有覺到。
link |
所以這樣告訴我們什麼呢?這樣告訴我們Explainable Machine Learning的重要性。