?博主簡介
博主是一名大二學(xué)生,主攻人工智能研究。感謝讓我們在CSDN相遇,博主致力于在這里分享關(guān)于人工智能,c++,Python,爬蟲等方面知識(shí)的分享。 如果有需要的小伙伴可以關(guān)注博主,博主會(huì)繼續(xù)更新的,如果有錯(cuò)誤之處,大家可以指正。
專欄簡介: ? 本專欄主要研究計(jì)算機(jī)視覺,涉及算法,案例實(shí)踐,網(wǎng)絡(luò)模型等知識(shí)。包括一些常用的數(shù)據(jù)處理算法,也會(huì)介紹很多的Python第三方庫。如果需要,點(diǎn)擊這里訂閱專欄?? 。
給大家分享一個(gè)我很喜歡的一句話:“每天多努力一點(diǎn),不為別的,只為日后,能夠多一些選擇,選擇舒心的日子,選擇自己喜歡的人!”
目錄
?卷積神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)
?卷積層
?池化層
?全連層
?Softmax激活函數(shù)
?交叉熵?fù)p失
?AlexNet詳解
?卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)
2012年,AlexNet橫空出世,卷積神經(jīng)網(wǎng)絡(luò)從此火遍大江南北。此后無數(shù)人開始研究,卷積神經(jīng)網(wǎng)絡(luò)終于在圖像識(shí)別領(lǐng)域超過人類,那么卷積神經(jīng)網(wǎng)絡(luò)有什么神奇?下面我們來了解了解。
卷積神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)
與最早的神經(jīng)網(wǎng)絡(luò)不同,除了全連接之外,卷積神經(jīng)網(wǎng)絡(luò)加入了卷積層和池化層。卷積層和我們在傳統(tǒng)計(jì)算機(jī)視覺中的卷積極為相似,而池化層主要用于減少參數(shù)的數(shù)量,防止過擬合。?
卷積層
卷積層,英文名convolution layer,卷積層是卷積神經(jīng)網(wǎng)絡(luò)的核心,每個(gè)卷積層由多個(gè)卷積核組成。當(dāng)輸入圖像經(jīng)過卷積核時(shí),每個(gè)通道的圖像會(huì)與每個(gè)卷積核進(jìn)行卷積操作。
?輸入圖片經(jīng)過卷積層后變?yōu)槎嗤ǖ垒敵?。具體操作如下圖:
下面這張圖片可能更加清楚:
?
一般的情況下,如果輸入圖像的大小為n1*n2,卷積核的大小為m1*m2,(mi<ni).卷積后,卷積核水平滑動(dòng)距離為s1,豎直滑動(dòng)距離為s2,則輸出圖像大小為k1*k2,
這里需要注意的是,當(dāng)卷積核滑動(dòng)到 圖片末尾時(shí),當(dāng)剩余的像素?cái)?shù)量不夠一次滑動(dòng)時(shí),會(huì)自動(dòng)忽略剩余的像素。由于這種卷積方式會(huì)忽略邊緣的像素(邊緣的像素只計(jì)算一次,而中心的像素被計(jì)算多次),所以有了第二種卷積方式,我們稱之為填充(padding),很簡單,在邊緣之外加入像素值為0的行和列。這樣,新的像素值為0的行和列變?yōu)樾碌倪吘墸f的邊緣則變?yōu)閮?nèi)部的像素,從而可以被計(jì)算多次。
?padding操作卷積后特征大小為:
Floor表示向下取整,p1和p2表示padding補(bǔ)充單列0的行和列。
最后,如果卷積核的數(shù)量為n,則輸出特征圖片共有n個(gè)通道。如果輸入圖像通道數(shù)為c,則每個(gè)卷積核的通道數(shù)為c,卷積層的參數(shù)個(gè)數(shù)為:每個(gè)卷積核大小×c×n。
池化層
池化層,英文名(pooling layer),將圖片分成一個(gè)一個(gè)池子,每個(gè)池子輸出一個(gè)值。池化層可以擴(kuò)大或者縮小圖像的大小,而且還能保證圖片的像素不發(fā)生變化。常用的池化層:
經(jīng)過平均池化;
經(jīng)過最大池化
假設(shè)池化層的參數(shù)為m1*m2,輸入圖像大小為n1*n2,則輸出圖像大小為?,輸入圖像和輸出圖像的通道相同。池化層也有stride和padding操作,同卷積層的操作規(guī)則一樣。
全連層
全連接層與最早的人工神經(jīng)網(wǎng)絡(luò)的線性層一樣。但是,圖象是二維的,我們常用的全連接層是一維的,所以我們想要將其“壓扁”為一維:
全連接層的作用相當(dāng)于對輸入向量左乘矩陣,假設(shè)輸入向量為x,全連接層對應(yīng)矩陣為W,輸出為'x':
Softmax激活函數(shù)
在卷積神經(jīng)網(wǎng)絡(luò)的最后一層,激活函數(shù)與之前每一層的的激活函數(shù)不同。由于最后一層要作為分類的結(jié)果,我們希望輸出結(jié)果(一維向量的值)為各分類的概率,那么概率最大的那個(gè)分類就是我們得到的預(yù)測結(jié)果。例如輸出為[0.2,0.3,0.4,0.1,0.1],那么我們就以第三類為預(yù)測結(jié)果。
如何使輸出的結(jié)果為概率值?這里就需要用到Softmax激活函數(shù)。為了使得輸出結(jié)果為概率值,首先我們需要將每一個(gè)值限制在0~1.其次是需要一個(gè)向量所有值的和為1,最后函數(shù)應(yīng)該為單調(diào)遞增的函數(shù)。所以我們選用歸一化的指數(shù)函數(shù)作為激活函數(shù)式:
交叉熵?fù)p失
最后,我們使用交叉熵?fù)p失作為損失函數(shù),主要是因?yàn)檫@種損失使得我們一開始的訓(xùn)練速度很快。交叉熵的概念從熵的概念引申而來,所以計(jì)算公式非常相似。假設(shè)我們的輸出直播為X=[x1,x2,x3,x4,x5,,,,xn],標(biāo)簽為Y=[y1,y2,y3,,,yn],則損失函數(shù)的值為:
AlexNet詳解
我們現(xiàn)在來解析一下AlexNet的結(jié)構(gòu)。首先輸入圖像大小為227x227x3.
第一層為卷積層,卷積核大小為11x11,共96個(gè)卷積核,由兩個(gè)GPU分別訓(xùn)練,滑動(dòng)步長為4,激活函數(shù)為ReLU,所以輸出圖像的特征大小為55x55x96.
第二層為池化層,核大小為3x3,每次滑動(dòng)步長為2,所以圖片大小為27x27x96((55-3)/2+1)
第三層為卷積層,卷積核大小為5x5,共256個(gè)卷積核,每次滑動(dòng)步長為1,對圖像做兩個(gè)像素的填充,激活函數(shù)為ReLU,所以輸出特征圖為27x27x256(其中27+2x2-5+1).
第四層為池化層,核大小為3x3,每次滑動(dòng)步長為2,所以輸出圖像大小為13x13x256((27-3)/2+1)。
第五層為卷積層,卷積核大小為3x3,共384個(gè)卷積核,每次滑動(dòng)步長為1,對圖像做一個(gè)像素的填充,激活函數(shù)為ReLU,所以輸出特征圖為13x13x384(其中13+1x2-3+1=13).
第六層為卷積層,卷積核大小為3x3,共384個(gè)卷積核,每次滑動(dòng)步長為1,對圖像做一個(gè)像素的填充,激活函數(shù)為ReLU,所以輸出特征圖為13x13x384(其中13+1x2-3+1=13).
第七層為卷積層,卷積核大小為3x3,共256個(gè)卷積核,每次滑動(dòng)步長為1,對圖像做一個(gè)像素的填充,激活函數(shù)為ReLU,所以輸出特征圖為13x13x256(其中13+1x2-3+1=13).
第四層為池化層,核大小為3x3,每次滑動(dòng)步長為2,所以輸出圖像大小為6x6x256((13-3)/2+1=6).
之后將特征圖重構(gòu)為至一維:9216x1.
第九層為全連接層,輸出為4096x1,激活函數(shù)為ReLU。
第十層為Dropout層,神經(jīng)元激活的概率為0.5.
第十一層為全連接層,輸出為4096x1,激活函數(shù)為ReLU。
第十二層為Droupout層,神經(jīng)元激活的概率為0.5.
第十三層,也是最后一層為全連接層,輸出為1000x1,激活函數(shù)為Softmax。
最后使用交叉熵?fù)p失進(jìn)行多分類訓(xùn)練。
前面說了,圖像最好是227x227大小,這是因?yàn)榻?jīng)過所有的處理,他們的除都是整數(shù),比較方便處理,所以最好設(shè)定為227x227x3大小。
總共的參數(shù)個(gè)數(shù)就為:62367776(59.5M)。
卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)
卷積神經(jīng)網(wǎng)絡(luò)現(xiàn)在比全連接神經(jīng)網(wǎng)絡(luò)更獲得原因:
第一,減少了網(wǎng)絡(luò)參數(shù),例如大小為28x28x3的圖像,經(jīng)過3x3x32的卷積層,輸出為28x28x32的特征圖,卷積層的參數(shù)為3x3x3x32=864,而如果使用一個(gè)全連接層,參數(shù)數(shù)量為28x28x3x28x28x32=59006976,大了幾個(gè)數(shù)量級(jí),由于減少了網(wǎng)絡(luò)參數(shù),大大減少了過擬合的可能,從而增加了網(wǎng)絡(luò)的準(zhǔn)確率。
第二,保留了局部特征,由于卷積層比起全連接層更注重局部特征,更能對較小的物體進(jìn)行識(shí)別,而圖像中的物體往往占整個(gè)圖像的比例不高,所以物體的局部特征更重要。
?第三,卷積層具有平移不變性。就是說,相同的兩個(gè)圖片,無論卷積層怎么移動(dòng),他們的輸出值是一樣的,不會(huì)變。
好了,本節(jié)內(nèi)容就到此結(jié)束了,下一節(jié)我們學(xué)習(xí)Tensorflow深度學(xué)習(xí),拜拜了你嘞!文章來源:http://www.zghlxwxcb.cn/news/detail-407760.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-407760.html
到了這里,關(guān)于深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!