您好,登錄后才能下訂單哦!
小編給大家分享一下alexnet網(wǎng)絡(luò)結(jié)構(gòu)指的是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
第一層卷積層1,卷積核的數(shù)量為96;第二層卷積層2,卷積的個數(shù)為256個;第三層卷積3, 輸入為第二層的輸出,卷積核個數(shù)為384;第四層卷積4,輸入為第三層的輸出,卷積核個數(shù)為384;第五層卷積5, 輸入為第四層的輸出,卷積核個數(shù)為256。
本教程操作環(huán)境:windows7系統(tǒng)、Dell G3電腦。
AlexNet網(wǎng)絡(luò),是2012年ImageNet競賽冠軍獲得者Hinton和他的學(xué)生Alex Krizhevsky設(shè)計的。在那年之后,更多的更深的神經(jīng)網(wǎng)路被提出,比如優(yōu)秀的vgg,GoogleLeNet。其官方提供的數(shù)據(jù)模型,準(zhǔn)確率達(dá)到57.1%,top 1-5 達(dá)到80.2%. 這項對于傳統(tǒng)的機(jī)器學(xué)習(xí)分類算法而言,已經(jīng)相當(dāng)?shù)某錾?
網(wǎng)絡(luò)結(jié)構(gòu)解析
上圖所示是caffe中alexnet的網(wǎng)絡(luò)結(jié)構(gòu),采用是兩臺GPU服務(wù)器,所有會看到兩個流程圖。AlexNet的網(wǎng)絡(luò)模型解讀如下表:
解讀如下:
第一層:卷積層1,輸入為 224×224×3 224 \times 224 \times 3224×224×3的圖像,卷積核的數(shù)量為96,論文中兩片GPU分別計算48個核; 卷積核的大小為 11×11×3 11 \times 11 \times 311×11×3; stride = 4, stride表示的是步長, pad = 0, 表示不擴(kuò)充邊緣;卷積后的圖形大小是怎樣的呢? wide = (224 + 2 * padding - kernel_size) / stride + 1 = 54height = (224 + 2 * padding - kernel_size) / stride + 1 = 54dimention = 96然后進(jìn)行 (Local Response Normalized), 后面跟著池化pool_size = (3, 3), stride = 2, pad = 0 最終獲得第一層卷積的feature map最終第一層卷積的輸出為 第二層:卷積層2, 輸入為上一層卷積的feature map, 卷積的個數(shù)為256個,論文中的兩個GPU分別有128個卷積核。卷積核的大小為:5×5×48 5 \times 5 \times 485×5×48; pad = 2, stride = 1; 然后做 LRN, 最后 max_pooling, pool_size = (3, 3), stride = 2; 第三層:卷積3, 輸入為第二層的輸出,卷積核個數(shù)為384, kernel_size = (3×3×256 3 \times 3 \times 2563×3×256), padding = 1, 第三層沒有做LRN和Pool 第四層:卷積4, 輸入為第三層的輸出,卷積核個數(shù)為384, kernel_size = (3×3 3 \times 33×3), padding = 1, 和第三層一樣,沒有LRN和Pool 第五層:卷積5, 輸入為第四層的輸出,卷積核個數(shù)為256, kernel_size = (3×3 3 \times 33×3), padding = 1。然后直接進(jìn)行max_pooling, pool_size = (3, 3), stride = 2;第6,7,8層是全連接層,每一層的神經(jīng)元的個數(shù)為4096,最終輸出softmax為1000,因為上面介紹過,ImageNet這個比賽的分類個數(shù)為1000。全連接層中使用了RELU和Dropout。
用caffe 自帶的繪圖工具(caffe/python/draw_net.py) 和caffe/models/bvlc_alexnet/目錄下面的train_val.prototxt繪制的網(wǎng)絡(luò)結(jié)構(gòu)圖如下圖:
python3 draw_net.py --rankdir TB ../models/bvlc_alexnet/train_val.prototxt AlexNet_structure.jpg
算法創(chuàng)新點
(1)成功使用ReLU作為CNN的激活函數(shù),并驗證其效果在較深的網(wǎng)絡(luò)超過了Sigmoid,成功解決了Sigmoid在網(wǎng)絡(luò)較深時的梯度彌散問題。雖然ReLU激活函數(shù)在很久之前就被提出了,但是直到AlexNet的出現(xiàn)才將其發(fā)揚(yáng)光大。
(2)訓(xùn)練時使用Dropout隨機(jī)忽略一部分神經(jīng)元,以避免模型過擬合。Dropout雖有單獨的論文論述,但是AlexNet將其實用化,通過實踐證實了它的效果。在AlexNet中主要是最后幾個全連接層使用了Dropout。
(3)在CNN中使用重疊的最大池化。此前CNN中普遍使用平均池化,AlexNet全部使用最大池化,避免平均池化的模糊化效果。并且AlexNet中提出讓步長比池化核的尺寸小,這樣池化層的輸出之間會有重疊和覆蓋,提升了特征的豐富性。
(4)提出了LRN層,對局部神經(jīng)元的活動創(chuàng)建競爭機(jī)制,使得其中響應(yīng)比較大的值變得相對更大,并抑制其他反饋較小的神經(jīng)元,增強(qiáng)了模型的泛化能力。
(5)多GPU訓(xùn)練,可以增大網(wǎng)絡(luò)訓(xùn)練規(guī)模.
(6)百萬級ImageNet數(shù)據(jù)圖像輸入.在AlexNet用到的Data Augmentation方式有三種:
平移變換(crop);
反射變換(flip);
光照和彩色變換(color jittering):先對圖片進(jìn)行隨機(jī)平移,然后水平翻轉(zhuǎn).測試時,先對左上,右上,左下,右下和中間做5次平移變換,然后翻轉(zhuǎn)之后對結(jié)果求平均.
歸納總結(jié)為:
使用ReLU激活函數(shù);
提出Dropout防止過擬合;
使用數(shù)據(jù)擴(kuò)充增強(qiáng)數(shù)據(jù)集(Data augmentation);
水平翻轉(zhuǎn)圖像、隨機(jī)裁剪、平移變換、顏色變換、光照變換等
使用多GPU進(jìn)行訓(xùn)練;
將上層的結(jié)果按照通道維度拆分為2份,分別送入2個GPU,如上一層輸出的27×27×96的像素層(被分成兩組27×27×48的像素層放在兩個不同GPU中進(jìn)行運(yùn)算);
LRN局部歸一化的使用;
使用重疊池化(3*3的池化核)。
Caffe框架下訓(xùn)練
準(zhǔn)備數(shù)據(jù)集,修改Alexnet網(wǎng)絡(luò)的train.prototxt,配置solver,deploy.prototxt文件,新建train.sh腳本,即可開始訓(xùn)練。
以上是“alexnet網(wǎng)絡(luò)結(jié)構(gòu)指的是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。