CNN基础知识(1)
卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種前饋神經(jīng)網(wǎng)絡(luò),它的神經(jīng)元可以響應(yīng)一部分覆蓋范圍內(nèi)的周圍單元,因其特性被廣泛用于模式識(shí)別。由于該網(wǎng)絡(luò)避免了對(duì)圖像的復(fù)雜預(yù)處理,可以直接輸入原始圖像,因而得到了更多的應(yīng)用。
CNN的基礎(chǔ)結(jié)構(gòu)包括兩層。
第一層為特征提取層,每個(gè)神經(jīng)元的輸入與前一層的局部接受域相連并提取該局部的特征。一旦該局部特征被提取后,它與其他特征間的位置關(guān)系也隨之確定下來。
第二層為特征映射層。網(wǎng)絡(luò)的每個(gè)計(jì)算層由多個(gè)特征映射而成,每個(gè)特征映射是一個(gè)平面,平面上的所有神經(jīng)元的權(quán)值相等。
由于一個(gè)映射面上的神經(jīng)元權(quán)值共享,因而減少了網(wǎng)絡(luò)自由參數(shù)的個(gè)數(shù)。卷積神經(jīng)網(wǎng)絡(luò)中的每一個(gè)卷積層都緊跟著一個(gè)用來求局部平均與二次提取的計(jì)算層,這種特有的兩次特征提取結(jié)構(gòu)減小了特征分辨率。
1. 圖像識(shí)別
我們知道BP神經(jīng)網(wǎng)絡(luò)是一個(gè)多層的神經(jīng)網(wǎng)絡(luò)系統(tǒng)。在這樣一個(gè)神經(jīng)網(wǎng)絡(luò)中,每層的神經(jīng)節(jié)點(diǎn)都是共享前一層的所有輸入項(xiàng)的,也即是全連接。訓(xùn)練也是一次一次進(jìn)行迭代調(diào)整各個(gè)w的值。當(dāng)輸入項(xiàng) 的維度比較大時(shí),訓(xùn)練的時(shí)間都是幾何級(jí)數(shù)增長的,這就可能利用現(xiàn)在的計(jì)算資源就沒辦法訓(xùn)練了,這時(shí)可以用局部感知的知識(shí)。
1.1 設(shè)計(jì)卷積層
卷積神經(jīng)網(wǎng)絡(luò)最大的作用是降低參數(shù)數(shù)目。
第一種功能:局部感知
一般認(rèn)為人對(duì)外界的認(rèn)識(shí)是從局部到全局的,而圖像的空間聯(lián)系也是局部的像素聯(lián)系較為緊密,而距離較遠(yuǎn)的像素相關(guān)性較弱。因而每個(gè)神經(jīng)元并沒有必要對(duì)全局圖像進(jìn)行感知,只需要對(duì)局部進(jìn)行感知,然后在高層將局部的信息綜合起來就得到了全局的信息。
例如:對(duì)一個(gè)2048x1536像素的圖片處理過程中,本來需要建立一個(gè)3145728個(gè)輸入項(xiàng)的多節(jié)點(diǎn)網(wǎng)絡(luò)(每個(gè)節(jié)點(diǎn)也都是2048x1536個(gè)輸入項(xiàng)),也就是2048x1536個(gè)神經(jīng)元,每個(gè)神經(jīng)元的輸入又有參數(shù)2048x1536個(gè)。
但是做個(gè)局部處理后,就可以把節(jié)點(diǎn)的數(shù)目減少,同時(shí)也可以把節(jié)點(diǎn)的參數(shù)數(shù)量減少。這時(shí)可以設(shè)計(jì)一個(gè)節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)可以接收16x12,也就是192個(gè)參數(shù),就是說完整的像素圖中每16x12個(gè)像素點(diǎn)連接到一個(gè)神經(jīng)元,每個(gè)神經(jīng)元的接收范圍都和左右上下的神經(jīng)元各有一行是不同的。在這種情況下17x13個(gè)像素單位的圖片需要2x2個(gè)16x12的神經(jīng)元進(jìn)行連接,以此類推,2048x1536個(gè)像素單位需要2033x1525=3100325個(gè)16x12的神經(jīng)元來進(jìn)行連接。
現(xiàn)在和BP神經(jīng)網(wǎng)絡(luò)進(jìn)行對(duì)比,看一下參數(shù)減少了多少?
BP是3145728個(gè)輸入項(xiàng)就有3145728個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)需要3145728個(gè)權(quán)值,也就需要3145728x3145728=9895604649984個(gè)參數(shù)。而按照剛才的方法進(jìn)行的話就有2033x1525=3100325個(gè)神經(jīng)元,每個(gè)神經(jīng)元連接16x12個(gè)參數(shù),也就是2033x1525x16x12=595262400個(gè)參數(shù)就解決了,可以看到減少不止一點(diǎn)點(diǎn),理論上訓(xùn)練速度至少提高了5個(gè)數(shù)量級(jí)。而這樣的神經(jīng)元層就是卷積層,而這16x12個(gè)參數(shù)被一個(gè)神經(jīng)節(jié)點(diǎn)進(jìn)行處理和特征提取的過程操作就叫卷積操作。
第二種功能:參數(shù)共享
在卷積層設(shè)計(jì)后雖然參數(shù)減少了很多,但是參數(shù)的數(shù)量級(jí)還是很大,這時(shí)的參數(shù)共享可以對(duì)參數(shù)的數(shù)量進(jìn)一步減少。
在剛才的2033x1525=3100325個(gè)神經(jīng)元,而如果每個(gè)神經(jīng)元的192個(gè)參數(shù)都是相等的,那么實(shí)際上也就是訓(xùn)練192個(gè)參數(shù)就夠了。
權(quán)值共享只是減少參訓(xùn)練復(fù)雜度的一種技巧,或者是方案之一,并非必要方案,是強(qiáng)行設(shè)置的一種權(quán)值方式。可以把這192個(gè)參數(shù)看成是特征提取的方式。該方式與圖像捕捉的位置無關(guān)。解釋為:視覺神經(jīng)在捕捉外界的信號(hào)時(shí)是不加區(qū)分的,所有的神經(jīng)元對(duì)于映射的信號(hào)(16x12)是一視同仁的(權(quán)值一樣),不同的是映射的信號(hào)對(duì)象不同。
例如:當(dāng)從一個(gè)大尺寸的圖像中隨機(jī)選取一小塊,如16x12作為樣本,并且從這個(gè)小樣本學(xué)習(xí)到了一些特征,這時(shí)可以把學(xué)習(xí)到的特征作為探測(cè)器,應(yīng)用到這個(gè)圖像上的任何地方。可以從16x12的樣本中學(xué)習(xí)到的特征(卷積核)與原本的大尺寸圖像做卷積,從而從這個(gè)大尺寸的圖像上的任何一位置獲得一個(gè)不同特征的激活值。激活值越大越符和條件。
1.2 設(shè)計(jì)池化層
采樣層也叫池化層,它的目的是將卷積層輸出的特征提取值進(jìn)行量化。
這種層的作用是繼續(xù)對(duì)臨近的輸入點(diǎn)進(jìn)行特征提取,算法設(shè)計(jì)也不固定,可以是求平均值,也可以是求最大值等,總之就是繼續(xù)對(duì)前面輸出的卷積層繼續(xù)進(jìn)行特征化。
1.3 完整網(wǎng)絡(luò)設(shè)計(jì)
要對(duì)圖片進(jìn)行識(shí)別,卷積網(wǎng)絡(luò)可以設(shè)計(jì)成如下所示:
卷積層C1:可以設(shè)計(jì)2033x1525=3100325個(gè)神經(jīng)節(jié)點(diǎn)進(jìn)行如前所示的連接方式。
采樣層S1:可以采用不重疊的方式進(jìn)行采樣,設(shè)計(jì)使用輸入?yún)?shù)為16x16的神經(jīng)節(jié)點(diǎn),需要128x128=16384個(gè)節(jié)點(diǎn)。
卷積層C2:這里再設(shè)計(jì)一層卷積層進(jìn)行卷積處理,設(shè)計(jì)使用16x16的神經(jīng)節(jié)點(diǎn),需要113x113=12769個(gè)節(jié)點(diǎn)。
采樣層S2:可以繼續(xù)采用不重疊的方式進(jìn)行采樣處理,可以嘗試采用8x8的輸入點(diǎn)數(shù)量,那么需要15x15個(gè)神經(jīng)元節(jié)點(diǎn)。
輸出層O:最后采用全連接方式。所以這一層應(yīng)該是15x15個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)有15x15。即255個(gè)參數(shù)。
1.4 訓(xùn)練
一般來說,越復(fù)雜的圖形圖像訓(xùn)練需要的樣本越多。
這里只是簡(jiǎn)單的讀書筆記,后期再續(xù)。
參考:《白話大數(shù)據(jù)與機(jī)器學(xué)習(xí)》
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的CNN基础知识(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 久量股份是做什么的
- 下一篇: 李大霄提出A股是全球避风塘 机会真的来了