終于等到了這個交互式學習神器,把 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 層。 通過點擊任意一個輸出類別可查看該層是如何工作的。
-
神經網絡
+關注
關注
42文章
4779瀏覽量
101171 -
卷積網絡
+關注
關注
0文章
42瀏覽量
2208
原文標題:一個像素的旅行,華人博士卷積網絡可視化項目火了:點點鼠標就能看懂的掃盲神器
文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
SAR ADC的工作過程和關鍵指標
極化整流器的作用和工作過程
可調電源電路穩壓工作過程是什么
RC緩沖器的工作過程介紹
![RC緩沖器的<b class='flag-5'>工作過程</b>介紹](https://file1.elecfans.com/web2/M00/06/9E/wKgaombdXj2ANrVPAABaJH2FzVY423.png)
評論