華人博士卷積網絡可視化項目火了:點滑鼠就能看懂的掃盲神器

2020-12-06 機器之心Pro

機器之心報導

參與:Racoon、蛋醬、張倩

終於等到了這個交互式學習神器,把 CNN 的工作過程畫得明明白白,幫助萌新輕鬆入門。

什麼是 CNN?Convolutional Neural Network,中文譯為「卷積神經網絡」。

這個常見但有些深奧的詞彙,只可意會,不能言傳。如果打開教材,會看到這樣一些解釋:

卷積層是深度神經網絡在處理圖像時十分常用的一種層。當一個深度神經網絡以卷積層為主體時,我們也稱之為卷積神經網絡。神經網絡中的卷積層就是用卷積運算對原始圖像或者上一層的特徵進行變換的層……

說得很有道理,但如果將一張圖片作為輸入,這張圖片究竟會在卷積神經網絡中經歷什麼?這可真是太考驗想像力了。

最近,來自喬治亞理工學院與俄勒岡州立大學的研究者們,考慮到初學者和非專業人士的學習痛點,合作開發出了一款卷積神經網絡交互式可視化工具——CNN 解釋器(CNN Explainer)。這個解釋器展示了一個 10 層的神經網絡,包含卷積層、激活函數、池化層等多個 CNN 初學者無論如何也繞不開的概念。

這個工具到底把 CNN 展示得有多明白?簡單來說,項目作者已經給你做好了一個可以交互的界面,各種層、激活函數都鋪在眼前。你只需要打開瀏覽器加載出這個界面,移動滑鼠點來點去就可以了。

CNN Explainer 使用 TensorFlow.js 加載預訓練模型進行可視化效果,交互方面則使用 Svelte 作為框架並使用 D3.js 進行可視化。最終的成品即使對於完全不懂的新手來說,也沒有使用門檻。下面我們來看一下具體的效果。

卷積層

既然是卷積網絡,我們就先來看一下卷積層是怎麼工作的。卷積層包含學習的卷積核,可以提取出每張圖像獨有的特徵,因此是 CNN 的基礎。

當你與卷積層進行交互的時候,前面的層與卷積層之間會出現很多連線,其中的每條線都代表一個獨特的卷積核。這些卷積核用於卷積運算,以生成當前卷積神經元的輸出或激活圖。

以交互圖中的 Tiny VGG 架構為例。可以看到,它的第一個卷積層有 10 個神經元,但前一層只有 3 個神經元。聚焦於第一個卷積層頂端卷積神經元的輸出,如果我們將滑鼠懸停在激活圖上,就可以看到這裡有 3 個獨特的卷積核。

圖 1:如果將滑鼠懸停在第一個卷積層最前面的激活圖上,就可以看到此處應用了 3 個卷積核來得到此激活圖。點擊此激活圖,可以看到每個卷積核都進行了卷積運算。

圖 2:用來生成上述激活圖頂端中間結果的卷積核。

激活函數

ReLU

ReLu 是 CNN 中的非常常用的一種非線性激活函數,可以加快 CNN 的訓練速度。它是一種一對一的數學運算:

點擊交互圖中的 ReLU 神經元就能觀察到這個激活函數是如何工作的:

Softmax

在卷積神經網絡中,Softmax 函數通常用於分類模型輸出。在這個 CNN 解釋器裡,點擊最後一層,即可顯示網絡中的 Softmax 運算過程:

在 Softmax 的這部分視圖中,用戶可以體驗不同顏色的 logit 和公式交互,從而了解在 Flatten 層之後,預測分數是如何歸一化從而產生分類結果的。

池化層

不同的 CNN 架構有很多不同類型的池化層,但它們的目的都是逐漸縮小網絡的空間範圍,從而降低網絡的參數量和整體計算量。

這個交互圖裡使用的池化類型是 Max-Pooling,其過程可以通過點擊圖中的池化神經元來觀察:

Flatten 層

這一層將網絡中一個三維的層轉變為一個一維向量,之後將其輸入到全連接層用於分類。因為用於分類的 softmax 函數需要一維向量作為輸入(此處不包括 batch 維),因此需要用到 Flatten 層。

通過點擊任意一個輸出類別可查看該層是如何工作的。

作者簡介

這個貼心的項目出自喬治亞理工和俄勒岡州立大學的研究者之手。其中,一作是該校的機器學習博士生 Zijie Wang。他的研究興趣是機器學習的可解釋性、公平性、安全性和可視化分析。

目前,該項目已經登上了 GitHub 熱榜,感興趣的同學可以點擊文末連結了解詳情。

項目地址:https://github.com/poloclub/cnn-explainer網頁地址:https://poloclub.github.io/cnn-explainer/arXiv 地址:https://arxiv.org/abs/2004.15004

相關焦點

  • 一位中國博士把整個CNN都給可視化了,可交互有細節,每次卷積ReLU...
    每一個對AI抱有憧憬的小白,在開始的時候都會遇到CNN(卷積神經網絡)這個詞。但每次,當小白們想了解CNN到底是怎麼回事,為什麼就能聰明的識別人臉、聽辨聲音的時候,就懵了,只好理解為玄學:好吧,維基百科解決不了的問題,有人給解決了。
  • 一位中國博士把整個CNN都給可視化了,每次卷積池化都清清楚楚
    每一個對AI抱有憧憬的小白,在開始的時候都會遇到CNN(卷積神經網絡)這個詞。但每次,當小白們想了解CNN到底是怎麼回事,為什麼就能聰明的識別人臉、聽辨聲音的時候,就懵了,只好理解為玄學:好吧,維基百科解決不了的問題,有人給解決了。
  • PyTorch可視化理解卷積神經網絡
    造就機器能夠獲得在這些視覺方面取得優異性能可能是源於一種特定類型的神經網絡——卷積神經網絡(CNN)。如果你是一個深度學習愛好者,你可能早已聽說過這種神經網絡,並且可能已經使用一些深度學習框架比如caffe、TensorFlow、pytorch實現了一些圖像分類器。然而,這仍然存在一個問題:數據是如何在人工神經網絡傳送以及計算機是如何從中學習的。
  • AI入門:卷積神經網絡
    第三步:全連接,把第一、二步的結果,輸入到全連接的神經網絡中,最後輸出結果。1. 卷積(Convolution)首先,把圖片轉化成機器可以識別的樣子,把每一個像素點的色值用矩陣來表示。這裡為了方便說明,我們就簡化,用6*6像素來表示,且取只RGB圖片一層。
  • 梯度上升可視化卷積神經網絡
    對,我們搞神經網絡的就喜歡這些噁心的圖片。越噁心特徵越明顯。通過梯度上升獲得可視化卷積圖假設人工合成的可視化卷積核圖為 x,我們希望這張合成圖 x 能夠使其對應的神經元(卷積核)具有最高的激活值。所得到的這張合成圖像就是該卷基層的卷積核「想要看到的」或者「正在尋找的紋理特徵」。
  • 谷歌用β-LASSO武裝MLP,縮小與卷積網絡的差距
    該研究表明,使用 β-lasso 算法學得的網絡比其局部連接版本使用的參數更少。通過可視化濾波器,研究者發現 β-lasso 算法確實學習了局部連接。它還學會了在局部鄰域中更稀疏地採樣,以增加感受野(receptive field),同時保證參數數量較少。
  • 40行Python代碼,實現卷積特徵可視化
    本文將向你解釋如何僅使用 40 行 Python 代碼將卷積特徵可視化。最近在閱讀 Jeremy Rifkin 的書《The End of Work》時,我讀到一個有趣的關於 AI 的定義。在本文中我將向你解釋如何僅用 40 行 Python 代碼來實現隨機圖像的像素值優化(如下圖),從而生成卷積神經網絡的特徵可視化。
  • 深入理解卷積網絡的卷積
    卷積神經網絡是一種特殊的神經網絡結構,是自動駕駛汽車、人臉識別系統等計算機視覺應用的基礎,其中基本的矩陣乘法運算被卷積運算取代。它們專門處理具有網格狀拓撲結構的數據。例如,時間序列數據和圖像數據可以看作是一個二維像素網格。
  • 創新 地獄火PC+樹脂合成滑鼠墊評測
    2009年末,地獄火再度出擊,推出了一款採用樹脂合成材質設計的滑鼠墊產品即地獄火PC+樹脂合成滑鼠墊。近日這款地獄火PC+樹脂合成滑鼠墊已經抵達ZOL評測室,今天我們來評測一下這款產品。  首先從包裝方面來看,地獄火PC+樹脂合成滑鼠墊一改了之前的圓筒式包裝設計,而是採用了可攜式的雙面紙包裝設計。
  • 這一次,西京醫院藥劑科的「神器」火了
    點擊查看 4月25日,在中華醫學會臨床藥學分會2015年全國學術會議上,原本平淡的學術會突然走樣,西京醫院藥劑科火了——藥劑科女博士的演講不僅令所有人感到驚奇,連三尺見方的小展示桌也被圍了個水洩不通,甚至登記表都被爭奪撕破。那麼,究竟發生了什麼?
  • 一圖抵千言:帶你了解最直觀的神經網絡架構可視化
    神經網絡是複雜、多維、非線性的數組運算。如何在避免過於複雜或重複的情況下呈現深度學習模型架構的重要特徵呢?又該以何種方式清晰直觀、啟發性地呈現它們呢?(好看也是加分項!)無論研究還是教學項目對此都沒有固定標準。本文我們就來了解一下可視化整個神經網絡架構和特定模塊的工具和技巧。
  • 人工智慧之卷積神經網絡(CNN)
    同一個卷積核在所有圖像內是共享的,圖像通過卷積操作後仍然保留原先的位置關係。卷積網絡執行的是有導師訓練,所以其樣本集是由形如:(輸入向量,理想輸出向量)的向量對構成的。所有這些向量對,都應該是來源於網絡即將模擬的系統的實際「運行」結果。它們可以是從實際運行系統中採集來的。在開始訓練前,所有的權都應該用一些不同的小隨機數進行初始化。「小隨機數」用來保證網絡不會因權值過大而進入飽和狀態而導致訓練失敗;「不同」用來保證網絡可以正常地學習。
  • 看懂這篇指南,包你掌握神經網絡的「黑匣子」
    全文共4327字,預計學習時長20分鐘或更長「人類的神經網絡是如何運行的?」這個問題讓很多數據科學家感到困惑。解釋某個簡單神經網絡的工作機制非常容易,但是當某個計算機視覺項目中的層數增加1000倍時,該怎麼辦呢?終端用戶想要了解模型是如何得到最終結果時,僅用紙和筆來解釋深度神經網絡的工作機制是行不通的。
  • 上古神器滑鼠盤點你認識幾個(全文)_羅技滑鼠_鍵鼠導購...
    相比於「上古滑鼠神器」來說,如今的滑鼠無論是從滑鼠的造型、硬體以及軟體上,都已經達到了巔峰,雖然依舊有著進步的可能,但是能夠帶給玩家的震撼就十分的有限了。MX系列的成熟作-羅技MX518滑鼠    MX500遊戲滑鼠在手感也是存在一點小小的瑕疵,滑鼠的側鍵按鍵分布不是十分合理,不過這點對於整體表現爆表的MX500來說並不是什麼大問題。
  • 大話卷積神經網絡CNN,小白也能看懂的深度學習算法教程,全程乾貨...
    來源 | 程式設計師管小亮本文創作的主要目的,是對時下最火最流行的深度學習算法的基礎知識做一個簡介,作者看過許多教程,感覺對小白不是特別友好,尤其是在踩過好多坑之後,於是便有了寫這篇文章的想法。類似的,在機器識別圖像時也沒有必要把整張圖像按像素全部都連接到神經網絡中,局部範圍內的像素之間聯繫較為緊密,而距離較遠的像素則相關性較弱。因而,每個神經元其實沒有必要對全局圖像進行感知,只需要對局部進行感知,然後在更高層將局部的信息綜合起來就得到了全局的信息。這種模式就是卷積神經網絡中降低參數數目的重要神器:局部感受野,節省了內存。
  • 刷臉背後:卷積神經網絡的數學原理
    計算機視覺技術在日常生活中有著非常普遍的應用:發朋友圈之前自動修圖、網上購物時刷臉支付……在這一系列成功的應用背後,卷積神經網絡功不可沒。本文將介紹卷積神經網絡背後的數學原理。
  • 知識普及:卷積神經網絡模型是怎樣工作的?可以做些什麼?
    知識普及:卷積神經網絡模型是怎樣工作的?可以做些什麼? 眾所周知,在過去的幾年裡,卷積神經網絡(CNN或ConvNet)在深度學習領域取得了許多重大突破,但對於大多數人而言,這個描述是相當不直觀的。因此,要了解模型取得了怎樣大的突破,我們應該先了解卷積神經網絡是怎樣工作的。 卷積神經網絡可以做些什麼? 卷積神經網絡用於在圖像中尋找特徵。在CNN的前幾層中,神經網絡可以進行簡單的「線條」和「角」的識別。
  • 卷積神經網絡的卷積到底是什麼
    打開APP 卷積神經網絡的卷積到底是什麼 人工智慧遇見磐創 發表於 2020-05-05 08:40:00 卷積神經網絡是一種特殊的神經網絡結構,是自動駕駛汽車、人臉識別系統等計算機視覺應用的基礎,其中基本的矩陣乘法運算被卷積運算取代。
  • CVPR 2019 | PointConv:在點雲上高效實現卷積操作
    3D 點雲是一種不規則且無序的數據類型,傳統的卷積神經網絡難以處理點雲數據。來自俄勒岡州立大學機器人技術與智能系統(CoRIS)研究所的研究者提出了 PointConv,可以高效的對非均勻採樣的 3D 點雲數據進行卷積操作,該方法在多個數據集上實現了優秀的性能。
  • 如何可視化卷積網絡分類圖像時關注的焦點
    Grad-CAM 利用卷積網絡最後一個特徵圖的信息,並加權對應的梯度而構建模型分類的熱力圖,通過該熱力圖,我們可以清楚地了解哪一塊區域對於類別是最重要的。你在訓練神經網絡進行圖片分類時,有沒有想過網絡是否就是像人類感知信息一樣去理解圖像?這個問題很難回答,因為多數情況下深度神經網絡都被視作黑箱。我們餵給它輸入數據進而得到輸出。整個流程如果出現問題很難去調試。