摘要:在圖像分析中,卷積神經(jīng)網(wǎng)絡(luò)在時間和內(nèi)存方面優(yōu)于全連接網(wǎng)絡(luò)。這是為什么呢卷積神經(jīng)網(wǎng)絡(luò)優(yōu)于全連接網(wǎng)絡(luò)的優(yōu)勢是什么呢卷積神經(jīng)網(wǎng)絡(luò)是如何從全連接網(wǎng)絡(luò)中派生出來的呢卷積神經(jīng)網(wǎng)絡(luò)這個術(shù)語又是從哪里而來這些問題在本文中一一為大家解答。
在圖像分析中,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)在時間和內(nèi)存方面優(yōu)于全連接網(wǎng)絡(luò)(Full Connected, FC)。這是為什么呢?卷積神經(jīng)網(wǎng)絡(luò)優(yōu)于全連接網(wǎng)絡(luò)的優(yōu)勢是什么呢?卷積神經(jīng)網(wǎng)絡(luò)是如何從全連接網(wǎng)絡(luò)中派生出來的呢?卷積神經(jīng)網(wǎng)絡(luò)這個術(shù)語又是從哪里而來?這些問題在本文中一一為大家解答。
1.介紹
對于圖像分析而言,具體可以將其劃分為很多類型的任務(wù),比如分類、對象檢測、識別、描述等。對于圖像分類器而言,即使在諸如遮擋、照明變化、視覺等變化的情況下,也應(yīng)該能夠以高精度的性能工作。以特征工程為主要步驟的傳統(tǒng)圖像分類方法不適合在豐富環(huán)境中工作,即使是該領(lǐng)域的專家也不能給出一組能夠在不同變化下達到高精度的特征,無法保證手工所選的特征是否合適。在這個問題的啟發(fā)下,特征學習的思想應(yīng)運而生,通過自主學習來獲得合適的圖像特征,這也是人工神經(jīng)網(wǎng)絡(luò)(ANN)對于圖像分析任務(wù)魯棒性的原因之一。基于梯度下降算法(GD)等學習算法,ANN可以自動學習到圖像特征,將原始圖像輸入人工神經(jīng)網(wǎng)絡(luò)后,ANN能夠自動地生成描述它的特征。
2.基于全連接網(wǎng)絡(luò)的圖像分析
現(xiàn)在一起看看人工神經(jīng)網(wǎng)絡(luò)是如何對進行處理的,以及CNN為什么在時間和內(nèi)存上相較于全連接網(wǎng)絡(luò)更高效。如圖1所示,輸入的是一個3x3大小的灰度圖。例子中使用小尺寸的圖像是為了方便講解,而不是表明ANN只能處理小尺寸的圖像。
圖像1
在輸入ANN時,圖像會轉(zhuǎn)變?yōu)橄袼鼐仃嚒S捎贏NN使用的是一維向量,而不是二維矩陣,所以將輸入的二維灰度圖轉(zhuǎn)換成一維向量,其中每個像素點代表一個輸入神經(jīng)元節(jié)點。
圖像2
每個像素被映射為向量元素,向量中的每個元素又代表ANN中的神經(jīng)元。由于圖像有3x3=9個像素點,那么輸入層(Input Layer)將有9個神經(jīng)元。由于ANN結(jié)構(gòu)通常水平延伸,因此每層被表示為列向量。
輸入層與隱藏層(Hidden Layer)相連,輸入層的輸出又輸入給隱藏層,隱藏層學習如何將圖像像素轉(zhuǎn)換為代表性特征。假設(shè)在圖3中有一個具由16個神經(jīng)元的單個隱藏層。
圖像3
由于網(wǎng)絡(luò)是全連接網(wǎng)絡(luò),這意味著第i層的每個神經(jīng)元與第i-1層中的所有神經(jīng)元相連。即隱藏層中的每個神經(jīng)元都與輸入層中9個神經(jīng)元相連。換句話說,每個輸入像素與隱藏層中的16個神經(jīng)元相連,其中每條連接都具有相應(yīng)的參數(shù)(權(quán)重)。通過將每個像素與隱藏層中的所有神經(jīng)元相連,如圖4所示,該網(wǎng)絡(luò)具有9x16=144個參數(shù)(權(quán)重)。
圖像4
3.大量參數(shù)
上面例子中的參數(shù)數(shù)目似乎還可以接受,但是隨著輸入圖像尺寸變大以及隱藏層數(shù)量增加,網(wǎng)絡(luò)參數(shù)將大大增加。
例如,若網(wǎng)絡(luò)具有兩個隱層,分別有90和50個神經(jīng)元,那么輸入層和第一隱藏層之間的參數(shù)數(shù)目是9x90=810,兩個隱藏層之間的參數(shù)數(shù)目為90x50=4500,該網(wǎng)絡(luò)的參數(shù)總數(shù)為810+4500=5310。對于這樣簡單的網(wǎng)絡(luò)結(jié)構(gòu)就有這么多的參數(shù)數(shù)量,顯然是不合適的;另外一種情況是輸入圖像尺寸較大,比如32x32大小的圖像(1024個像素),如果網(wǎng)絡(luò)使用單個隱藏層(含有500個神經(jīng)元),則總共有1024x500=512000個參數(shù)(權(quán)重),這對于只含單個隱藏層的網(wǎng)絡(luò)而言是一個巨大的數(shù)字。因此,必須有一個解決方案來減少網(wǎng)絡(luò)參數(shù),那么針對于此,卷積神經(jīng)網(wǎng)絡(luò)(CNN)應(yīng)運而生,雖然它網(wǎng)絡(luò)模型通常比較大,但大大降低了參數(shù)數(shù)量。
4.神經(jīng)元組群
即使是很小的全連接網(wǎng)絡(luò),網(wǎng)絡(luò)參數(shù)數(shù)目變得非常大的原因在于其層與層之間神經(jīng)元每條連接上都是不同的參數(shù)。因此,可以考慮給一組神經(jīng)元提供相同的參數(shù),如圖5所示,一組神經(jīng)元內(nèi)的神經(jīng)元都將分配同一個參數(shù)。
圖像5
這樣處理以后,網(wǎng)絡(luò)參數(shù)數(shù)量大大降低。以圖4為例,比如每4個連續(xù)神經(jīng)元作為一組,其結(jié)果是參數(shù)數(shù)量減少了4倍。每個輸入神經(jīng)元將具有16/4=4個參數(shù)。整個網(wǎng)絡(luò)將具有144/4=36個參數(shù),參數(shù)數(shù)量減少了75%。可以看到,其效果很好,但仍然有可優(yōu)化的地方。
圖像6
圖7顯示了每個像素到每個組中第一個神經(jīng)元的連接,但每組中的每個像素與每個神經(jīng)元還是相互連接,該網(wǎng)絡(luò)仍然是全連接網(wǎng)絡(luò)。
圖像7
為了簡單起見,只挑選出一組并忽略其它組,如圖8所示。從圖中可以看到,每個組仍然與輸入層所有的9個神經(jīng)元有所連接,因此具有9個參數(shù)。
圖像8
5.像素空間相關(guān)性
之前所述內(nèi)容使得每個神經(jīng)元接受所有像素,若存在接受4個輸入的函數(shù)f(x1,x2,x3,x4),則這意味著要基于所有這4個輸入來進行決定。如果只有2個輸入,但其輸出結(jié)果與使用4個輸入的結(jié)果相同,那么將不必使用所有的這4個輸入,只需給出對結(jié)果有影響的2個輸入即可。借鑒該思想,每個神經(jīng)元接受輸入的9個像素,若能使用更少的像素獲得相同或更好的結(jié)果就大大降低了參數(shù)數(shù)量,因此可以朝著這個方向優(yōu)化網(wǎng)絡(luò)參數(shù)。
通常,在圖像分析中,輸入圖像被轉(zhuǎn)換為像素矩陣,像素矩陣中的每個像素與它周圍的像素高度相關(guān),兩個像素之間的距離越遠,二者越不相關(guān)。例如,如圖9所示,面部的像素與面部周圍的像素相關(guān),但它與天空、地面等像素的相關(guān)性較低。
圖像9
基于這樣的假設(shè),上述示例中的每個神經(jīng)元只接受彼此空間相關(guān)的像素,而不是將所有9個像素點都應(yīng)用到每個輸入神經(jīng)元中,因此可以選擇4個空間相關(guān)像素,如圖10所示。對于像素矩陣位置(0,0),那么空間上最相關(guān)的像素是坐標點(0,1)、(1,0)以及(1,1)。同一組中的所有神經(jīng)元共享相同的權(quán)重,那么每組中的4個神經(jīng)元將只有4個參數(shù)而不是9個。總的參數(shù)變?yōu)?x4=16。與圖4中的全連接網(wǎng)絡(luò)相比,減少了128個參數(shù)(減少了88.89%)。
圖像10
6.卷積神經(jīng)網(wǎng)絡(luò)(CNN)
由于CNN使用權(quán)重共享,使用較少的參數(shù),這使得CNN網(wǎng)絡(luò)結(jié)構(gòu)一般層數(shù)比較多,這是全連接網(wǎng)絡(luò)無法具有的特性。
現(xiàn)在只有4個權(quán)重分配給同一組中的所有神經(jīng)元,那么這4個權(quán)重如何涵蓋9個像素點呢?讓我們看看這是如何處理的吧!
圖11展示了圖10中的一個網(wǎng)絡(luò),并為每條連接添加了權(quán)重標記。在神經(jīng)元內(nèi)部,4個輸入像素中的每一個都與其相應(yīng)的權(quán)重相乘,如圖11中公式所示。
圖像11
假設(shè)這里每次移動的步長設(shè)置為1(步長可以自己設(shè)置),每次相乘后將像素點索引移動一位,權(quán)重矩陣與另外一組像素相乘。以此類推,直到整個像素矩陣都與權(quán)重矩陣進行了相乘運算。整個過程與卷積運算相同,組的權(quán)重與圖像矩陣之間進行卷積運算,這也是CNN有“卷積”一詞的原因。
圖像12
剩余的神經(jīng)元組也會進行同樣的操作,從像素矩陣的左上角開始,直到像素矩陣的右下角都與權(quán)重矩陣相乘。
7.參考
Aghdam, Hamed Habibi, and Elnaz Jahani Heravi. Guide to Convolutional Neural Networks: A Practical Application to Traffic-Sign Detection and Classification. Springer, 2017.
歡迎加入本站公開興趣群商業(yè)智能與數(shù)據(jù)分析群
興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價值的辦法,實際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉庫,數(shù)據(jù)挖掘工具,報表系統(tǒng)等全方位知識
QQ群:81035754
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/4767.html
摘要:所以卷積神經(jīng)網(wǎng)絡(luò)卷積池化假設(shè)矩陣為的矩陣,池化窗口為,則按照池化窗口大小將矩陣分割成塊不相交的小矩陣,對對每個塊中的所有元素做求和平均操作,稱為平均池化,取較大值則稱為較大池化。卷積神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)是權(quán)值共享,非全連接的神經(jīng)網(wǎng)絡(luò)。 卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)是一種前饋神經(jīng)網(wǎng)絡(luò),每個神經(jīng)元都只影響鄰層的一部分神經(jīng)元,具有局部感受野,因...
摘要:本論文將嘗試概述卷積網(wǎng)絡(luò)的架構(gòu),并解釋包含激活函數(shù)損失函數(shù)前向傳播和反向傳播的數(shù)學推導。本文試圖只考慮帶有梯度下降優(yōu)化的典型卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)的制定。 近日南洋理工大學研究者發(fā)布了一篇描述卷積網(wǎng)絡(luò)數(shù)學原理的論文,該論文從數(shù)學的角度闡述整個卷積網(wǎng)絡(luò)的運算與傳播過程。該論文對理解卷積網(wǎng)絡(luò)的數(shù)學本質(zhì)非常有幫助,有助于讀者「徒手」(不使用卷積API)實現(xiàn)卷積網(wǎng)絡(luò)。論文地址:https://arxiv....
摘要:同樣以里的模塊為例,替換前后的卷積分支復雜度如下中使用與卷積級聯(lián)替代卷積中提出了卷積的,在確保感受野不變的前提下進一步簡化。 在梳理CNN經(jīng)典模型的過程中,我理解到其實經(jīng)典模型演進中的很多創(chuàng)新點都與改善模型計算復雜度緊密相關(guān),因此今天就讓我們對卷積神經(jīng)網(wǎng)絡(luò)的復雜度分析簡單總結(jié)一下下。1.時間復雜度1.2 卷積神經(jīng)網(wǎng)絡(luò)整體的時間復雜度示例:用 Numpy 手動簡單實現(xiàn)二維卷積假設(shè) Stride...
摘要:目前用于語義分割研究的兩個最重要數(shù)據(jù)集是和。發(fā)展中的方法效果。論文于年月日提交到主要貢獻將端到端的卷積網(wǎng)絡(luò)推廣到語義分割中重新將預訓練好的網(wǎng)絡(luò)用于分割問題中使用反卷積層進行上采樣提出了跳躍連接來改善上采樣的粗糙程度。 語義分割是什么?語義分割方法在處理圖像時,具體到像素級別,也就是說,該方法會將圖像中每個像素分配到某個對象類別。下面是一個具體案例。左邊為輸入圖像,右邊為經(jīng)過語義分割后的輸出圖...
閱讀 623·2023-04-26 01:53
閱讀 2749·2021-11-17 17:00
閱讀 2880·2021-09-04 16:40
閱讀 1983·2021-09-02 15:41
閱讀 830·2019-08-26 11:34
閱讀 1222·2019-08-26 10:16
閱讀 1335·2019-08-23 17:51
閱讀 815·2019-08-23 16:50