終于等到了這個交互式學(xué)習(xí)神器,把 CNN 的工作過程畫得明明白白,幫助萌新輕松入門。
什么是 CNN?Convolutional Neural Network,中文譯為「卷積神經(jīng)網(wǎng)絡(luò)」。 這個常見但有些深奧的詞匯,只可意會,不能言傳。如果打開教材,會看到這樣一些解釋:
卷積層是深度神經(jīng)網(wǎng)絡(luò)在處理圖像時十分常用的一種層。當(dāng)一個深度神經(jīng)網(wǎng)絡(luò)以卷積層為主體時,我們也稱之為卷積神經(jīng)網(wǎng)絡(luò)。
神經(jīng)網(wǎng)絡(luò)中的卷積層就是用卷積運(yùn)算對原始圖像或者上一層的特征進(jìn)行變換的層……
說得很有道理,但如果將一張圖片作為輸入,這張圖片究竟會在卷積神經(jīng)網(wǎng)絡(luò)中經(jīng)歷什么?這可真是太考驗(yàn)想象力了。 最近,來自佐治亞理工學(xué)院與俄勒岡州立大學(xué)的研究者們,考慮到初學(xué)者和非專業(yè)人士的學(xué)習(xí)痛點(diǎn),合作開發(fā)出了一款卷積神經(jīng)網(wǎng)絡(luò)交互式可視化工具——CNN 解釋器(CNN Explainer)。這個解釋器展示了一個 10 層的神經(jīng)網(wǎng)絡(luò),包含卷積層、激活函數(shù)、池化層等多個 CNN 初學(xué)者無論如何也繞不開的概念。
這個工具到底把 CNN 展示得有多明白?簡單來說,項(xiàng)目作者已經(jīng)給你做好了一個可以交互的界面,各種層、激活函數(shù)都鋪在眼前。你只需要打開瀏覽器加載出這個界面,移動鼠標(biāo)點(diǎn)來點(diǎn)去就可以了。
CNN Explainer 使用 TensorFlow.js 加載預(yù)訓(xùn)練模型進(jìn)行可視化效果,交互方面則使用 Svelte 作為框架并使用 D3.js 進(jìn)行可視化。最終的成品即使對于完全不懂的新手來說,也沒有使用門檻。下面我們來看一下具體的效果。 卷積層 既然是卷積網(wǎng)絡(luò),我們就先來看一下卷積層是怎么工作的。卷積層包含學(xué)習(xí)的卷積核,可以提取出每張圖像獨(dú)有的特征,因此是 CNN 的基礎(chǔ)。 當(dāng)你與卷積層進(jìn)行交互的時候,前面的層與卷積層之間會出現(xiàn)很多連線,其中的每條線都代表一個獨(dú)特的卷積核。這些卷積核用于卷積運(yùn)算,以生成當(dāng)前卷積神經(jīng)元的輸出或激活圖。 以交互圖中的 Tiny VGG 架構(gòu)為例??梢钥吹?,它的第一個卷積層有 10 個神經(jīng)元,但前一層只有 3 個神經(jīng)元。聚焦于第一個卷積層頂端卷積神經(jīng)元的輸出,如果我們將鼠標(biāo)懸停在激活圖上,就可以看到這里有 3 個獨(dú)特的卷積核。
圖 1:如果將鼠標(biāo)懸停在第一個卷積層最前面的激活圖上,就可以看到此處應(yīng)用了 3 個卷積核來得到此激活圖。點(diǎn)擊此激活圖,可以看到每個卷積核都進(jìn)行了卷積運(yùn)算。
圖 2:用來生成上述激活圖頂端中間結(jié)果的卷積核。 激活函數(shù)ReLU ReLu 是 CNN 中的非常常用的一種非線性激活函數(shù),可以加快 CNN 的訓(xùn)練速度。它是一種一對一的數(shù)學(xué)運(yùn)算:
點(diǎn)擊交互圖中的 ReLU 神經(jīng)元就能觀察到這個激活函數(shù)是如何工作的:
Softmax 在卷積神經(jīng)網(wǎng)絡(luò)中,Softmax 函數(shù)通常用于分類模型輸出。在這個 CNN 解釋器里,點(diǎn)擊最后一層,即可顯示網(wǎng)絡(luò)中的 Softmax 運(yùn)算過程:
在 Softmax 的這部分視圖中,用戶可以體驗(yàn)不同顏色的 logit 和公式交互,從而了解在 Flatten 層之后,預(yù)測分?jǐn)?shù)是如何歸一化從而產(chǎn)生分類結(jié)果的。 池化層 不同的 CNN 架構(gòu)有很多不同類型的池化層,但它們的目的都是逐漸縮小網(wǎng)絡(luò)的空間范圍,從而降低網(wǎng)絡(luò)的參數(shù)量和整體計(jì)算量。 這個交互圖里使用的池化類型是 Max-Pooling,其過程可以通過點(diǎn)擊圖中的池化神經(jīng)元來觀察:
Flatten 層 這一層將網(wǎng)絡(luò)中一個三維的層轉(zhuǎn)變?yōu)橐粋€一維向量,之后將其輸入到全連接層用于分類。因?yàn)橛糜诜诸惖?softmax 函數(shù)需要一維向量作為輸入(此處不包括 batch 維),因此需要用到 Flatten 層。 通過點(diǎn)擊任意一個輸出類別可查看該層是如何工作的。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4777瀏覽量
100995 -
卷積網(wǎng)絡(luò)
+關(guān)注
關(guān)注
0文章
42瀏覽量
2188
原文標(biāo)題:一個像素的旅行,華人博士卷積網(wǎng)絡(luò)可視化項(xiàng)目火了:點(diǎn)點(diǎn)鼠標(biāo)就能看懂的掃盲神器
文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論