終于要開 CNN(卷積神經(jīng)網(wǎng)絡(luò))這個神坑了。不過之所以說它神坑,是因為這里面牽扯到的數(shù)學(xué)概念相當相當多、導(dǎo)致如果只用 Numpy、從頭來實現(xiàn)的話會非常繁瑣。然而,如果只是理解它的直觀并且單純地實現(xiàn)它的話,由于有偉大的 tensorflow 框架、CNN 被極大地簡化成了一個平凡的東西
我打算在不帶星號的章節(jié)中說明如何運用 tensorflow 框架將 CNN 整合進我們之前實現(xiàn)的神經(jīng)網(wǎng)絡(luò)框架中、并在帶星號的章節(jié)中說明如何使用純 Numpy 從頭實現(xiàn)一個 CNN 框架。CNN 坑就坑在帶星號的章節(jié),所以觀眾老爺們大可帶著輕松愉悅的心情食用不帶星號的章節(jié) ( σ'ω')σ
這一章主要講 CNN 的一些非?;镜母拍睢J紫任蚁胫赋龅氖牵簭慕Y(jié)構(gòu)上來說,樸素的 CNN 和樸素的 NN 沒有任何區(qū)別(當然,復(fù)雜的 CNN 會和 NN 有著比較大的區(qū)別)。這意味著樸素的 CNN 包含且只包含下列兩個東西:
單獨的層級結(jié)構(gòu) Layer
將 Layer 整合在一起的網(wǎng)絡(luò)結(jié)構(gòu)
所以在實現(xiàn)算法時我們要做的、無非就是把之前實現(xiàn)的 NN 相應(yīng)的部分進行分情況討論
知道了結(jié)構(gòu)后,我們就要來看 CNN 的思想了。總的來說可以把它概括成以下兩點:
局部連接(Sparse Connectivity)
權(quán)值共享(Shared Weights)
它們有很好直觀。舉個栗子,我們平時四處看風(fēng)景時,都是“一塊一塊”來看的、信息也都是“一塊一塊”地接收的(所謂的【局部感受野】)。在這個過程中,我們的思想在看的過程中通常是不怎么變的、而在看完后可能會發(fā)出“啊這風(fēng)景好美”的感慨、然后可能會根據(jù)這個感慨來調(diào)整我們的思想。在這個栗子中,那“一塊一塊”的風(fēng)景就是局部連接,我們的思想就是權(quán)值。我們在看風(fēng)景時用的都是自己的思想,這就是權(quán)值共享的生物學(xué)意義(注:這個栗子是我開腦洞開出來的、完全不能保證其學(xué)術(shù)嚴謹性、還請各位觀眾老爺們帶著批判的眼光去看待它……如果有這方面專長的觀眾老爺發(fā)現(xiàn)我完全就在瞎扯淡、還望不吝指出 ( σ'ω')σ)
光用文字敘述可能還是有些懵懂,我來畫張圖(參考了一張被引用爛了的圖;但由于原圖有一定的誤導(dǎo)性、所以還是打算自己畫一個)(雖然很丑):

這張圖比較了 NN 和 CNN 的思想差別。左圖為 NN,可以看到它在處理輸入時是全連接的、亦即它采用的是全局感受野,同時各個神經(jīng)元又是相對獨立的、這直接導(dǎo)致它難以將原數(shù)據(jù)樣本翻譯成一個“視野”。而正如上面所說,CNN 采用的是局部感受野 + 共享權(quán)值,這在右圖中的表現(xiàn)為它的神經(jīng)元可以看成是“一整塊”的“視野”,這塊視野的每一個組成部分都是共享的權(quán)值(右圖中那些又粗又長的綠線)在原數(shù)據(jù)樣本的某一個局部上“看到”的東西
接下來就粗略地講講怎么實現(xiàn)這種思想、亦即如何實現(xiàn) CNN 里面的前傳算法。具體的定義會在數(shù)學(xué)系列里面進行說明,這里就只放代碼核心了(Again,tensorflow 大法好?。?/p>
def _conv(self, x, w): return tf.nn.conv2d(x, w, strides=[self._stride] * 4, padding=self._pad_flag)def _activate(self, x, w, bias, predict): res = self._conv(x, w) + bias return layer._activate(self, res, predict)
這里面涉及到一些以后會說明的東西,但如果知道概念的話、代碼應(yīng)該還是相當可讀的
-
cnn
+關(guān)注
關(guān)注
3文章
355瀏覽量
23421 -
Layer
+關(guān)注
關(guān)注
0文章
17瀏覽量
6976
原文標題:從零開始學(xué)人工智能(8)--Python · 神經(jīng)網(wǎng)絡(luò)(七)· CNN
文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
時序分析中的一些基本概念
介紹藍牙的一些概念
一文詳解CNN
關(guān)于單片機的一些基本概念
時序分析中的一些基本概念
邏輯電平的一些基本概念詳細說明
模電基礎(chǔ):概念和一些電路原理資料下載
阻抗控制相關(guān)的一些基本概念資料下載
CNN的一些基本的概念解讀
評論