郭一璞 發自 雲凹非寺
量子位 報道 | 公衆號 QbitAI
CNN是什麼?美國有線電視新聞網嗎?
每一個對AI抱有憧憬的小白,在開始的時候都會遇到CNN(卷積神經網絡)這個詞。
但每次,當小白們想了解CNN到底是怎麼回事,爲什麼就能聰明的識別人臉、聽辨聲音的時候,就懵了,只好理解爲玄學:
好吧,維基百科解決不了的問題,有人給解決了。
這個名叫CNN解釋器在線交互可視化工具,把CNN拆開了揉碎了,告訴小白們CNN究竟是怎麼一回事,爲什麼可以辨識物品。
它用TensorFlow.js加載了一個10層的預訓練模型,相當於在你的瀏覽器上跑一個CNN模型,只需要打開電腦,就能瞭解CNN究竟是怎麼回事。
而且,這個網頁工具還可以實現交互,只要點擊其中任何一個格子——就是CNN中的“神經元”,就能顯示它的輸入是哪些、經過了怎樣細微的變化。
甚至,連每一次卷積運算都能看得清。
看清卷積
這個CNN解釋器的使用方式也非常簡單:鼠標戳戳戳就好了。
單擊神經元,進入彈性解釋視圖,就可以看到卷積核滑動的過程的動畫模擬:
點擊一個正在卷積的過程圖,就可以看到更具體的過程:
可以看到底層的卷積運算過程,3×3的卷積核是如何經過運算被變成1個數字的。
看清ReLU和最大池化層
點擊一個ReLU層的神經元,可以看具體過程,ReLU函數是這樣工作的:
點擊一個池化神經元,也可以看具體最大池化層是怎樣工作的:
看清CNN是怎麼輸出預測的
點擊最右側的輸出神經元,進入彈性解釋視圖:
可以查看Softmax函數的詳情:
識別「狸克」試試?
CNN解釋器默認有10張圖片,你也可以增加自己的自定義圖片。
比如這個:
芝士焗燈籠椒?燈籠椒披薩?還是什麼鬼?
複製圖片鏈接或者上傳圖片之後,它經過了10層處理,得出結論:
是燈籠椒,但也可能是臭蟲。
但是,只能歸類於右側原有的10個品類裏,比如放一隻狸克:
就會被識別成espresso。
佐治亞理工中國博士出品
最後,這個CNN解釋器的作者是一位中國小哥,佐治亞理工的Zijie Wang,去年剛開始讀機器學習博士,本科畢業於威斯康星大學麥迪遜分校,是一位GPA 3.95/4.00的大學霸。
他也曾經做過一些其他有趣的數據可視化項目,比如威斯康星大學麥迪遜分校的中國本科生都來自哪裏:
傳送門
CNN解釋器
https://poloclub.github.io/cnn-explainer/
GitHub
https://github.com/poloclub/cnn-explainer
論文
https://arxiv.org/abs/2004.15004