[人工智能-深度学习-32]:卷积神经网络CNN - 常见分类网络- AlexNet网络结构分析与详解
作者主頁(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
?
本文網(wǎng)址:https://blog.csdn.net/HiWangWenBing/article/details/120837261
目錄
第1章 卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)
1.1 卷積神經(jīng)發(fā)展與進化史
1.2 卷積神經(jīng)網(wǎng)絡(luò)的核心要素
1.3 卷積神經(jīng)網(wǎng)絡(luò)的描述方法
1.4 人工智能三巨頭? + 華人圈名人
第2章 AlexNet概述
2.1 AlexNet的作者其人
2.2 AlexNet概述
2.3?AlexNet的特點
第3章 AlexNet網(wǎng)絡(luò)結(jié)構(gòu)闡述
3.1 網(wǎng)絡(luò)架構(gòu)描述:厚度法
3.2 網(wǎng)絡(luò)架構(gòu)描述:垂直法
3.3 分層解讀
第1章 卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)
1.1 卷積神經(jīng)發(fā)展與進化史
?AlexNet是深度學(xué)習(xí)的起點,后續(xù)各種深度學(xué)習(xí)的網(wǎng)絡(luò)或算法,都是源于AlexNet網(wǎng)絡(luò)。
[人工智能-深度學(xué)習(xí)-31]:卷積神經(jīng)網(wǎng)絡(luò)CNN - 常見卷積神經(jīng)網(wǎng)絡(luò)綜合比較大全_文火冰糖(王文兵)的博客-CSDN博客作者主頁(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文網(wǎng)址:第1章 人工智能發(fā)展的3次浪潮1.1人工智能的發(fā)展報告2011-2020資料來源:清華大學(xué)、中國人工智能學(xué)會《人工智能的發(fā)展報告2011-2020》,賽迪研究院、人工智能產(chǎn)業(yè)創(chuàng)新聯(lián)盟《人工智能實踐錄》,中金公司研究部? 第一次浪潮(1956-1974年):AI思潮賦予機器邏輯推理能力。伴隨著“人工智能”這一新興概念的興起,人們對AI的未來充滿了想象,人工智能迎來第一次發(fā)展浪潮。這.https://blog.csdn.net/HiWangWenBing/article/details/120835303
1.2 卷積神經(jīng)網(wǎng)絡(luò)的核心要素
[人工智能-深度學(xué)習(xí)-27]:卷積神經(jīng)網(wǎng)絡(luò)CNN - 核心概念(卷積、滑動、填充、參數(shù)共享、通道)_文火冰糖(王文兵)的博客-CSDN博客作者主頁(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文網(wǎng)址:目錄第1章 卷積中的“積”的定義第2章 卷積中的“卷”的定義第3章 填充第4章 單個卷積核的輸出第5章 多個卷積核的輸出第6章 卷積對圖形變換第7章 池化層第8章 全連接的dropout第1章 卷積中的“積”的定義第2章 卷積中的“卷”的定義stride:反映的每次移動的像素點的個數(shù)。第3章 填充...https://blog.csdn.net/HiWangWenBing/article/details/120806277
1.3 卷積神經(jīng)網(wǎng)絡(luò)的描述方法
[人工智能-深度學(xué)習(xí)-28]:卷積神經(jīng)網(wǎng)絡(luò)CNN - 網(wǎng)絡(luò)架構(gòu)與描述方法_文火冰糖(王文兵)的博客-CSDN博客作者主頁(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文網(wǎng)址:目錄第1章 什么是卷積神經(jīng)網(wǎng)絡(luò)第2章 卷積神經(jīng)網(wǎng)絡(luò)的描述方法第3章 卷積神經(jīng)網(wǎng)絡(luò)的本質(zhì)第4章 卷積神經(jīng)網(wǎng)絡(luò)的總體框框第5章卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展與常見類型與分類第6章 常見的卷積神經(jīng)網(wǎng)絡(luò)6.1 AlexNet6.2 VGGNet6.3 GoogleNet: inception結(jié)構(gòu)6.4 google net6.5 ResNet第7章 常見圖形訓(xùn)練庫第1.https://blog.csdn.net/HiWangWenBing/article/details/120806599
1.4 人工智能三巨頭? + 華人圈名人
Yoshua Bengio、Yann LeCun、Geoffrey Hinton共同獲得了2018年的圖靈獎。
杰弗里·埃弗里斯特·辛頓(Geoffrey Everest Hinton),計算機學(xué)家、心理學(xué)家,被稱為“神經(jīng)網(wǎng)絡(luò)之父”、“深度學(xué)習(xí)鼻祖”。Hinton是機器學(xué)習(xí)領(lǐng)域的加拿大首席學(xué)者,是加拿大高等研究院贊助的“神經(jīng)計算和自適應(yīng)感知”項目的領(lǐng)導(dǎo)者,是蓋茨比計算神經(jīng)科學(xué)中心的創(chuàng)始人,目前擔(dān)任多倫多大學(xué)計算機科學(xué)系教授。2013年3月,谷歌收購 Hinton 的公司 DNNResearch 后,他便隨即加入谷歌,直至目前一直在 Google Brain 中擔(dān)任要職。
Yoshua Bengio是蒙特利爾大學(xué)(Université de Montréal)的終身教授,任教超過22年,是蒙特利爾大學(xué)機器學(xué)習(xí)研究所(MILA)的負責(zé)人,是CIFAR項目的負責(zé)人之一,負責(zé)神經(jīng)計算和自適應(yīng)感知器等方面,又是加拿大統(tǒng)計學(xué)習(xí)算法學(xué)會的主席,是ApSTAT技術(shù)的發(fā)起人與研發(fā)大牛。Bengio在蒙特利爾大學(xué)任教之前,是AT&T貝爾實驗室 & MIT的機器學(xué)習(xí)博士后。
Yann LeCun,擔(dān)任Facebook首席人工智能科學(xué)家和紐約大學(xué)教授,1987年至1988年,Yann LeCun是多倫多大學(xué)Geoffrey Hinton實驗室的博士后研究員。
第2章 AlexNet概述
2.1 AlexNet的作者其人
烏克蘭出生、加拿大長大的Alex Krizhevsky,是Hinton在多倫多大學(xué)計算機科學(xué)博士生,2012 年,在 Hinton 的指導(dǎo)下, Alex Krizhevsky 和 Hinton 的另一個學(xué)生 IIya Sutskever 參加了當(dāng)年的 ImageNet 挑戰(zhàn)賽。ImageNet 是一個大型視覺數(shù)據(jù)集,由李飛飛所主導(dǎo)創(chuàng)造,擁有 1400 多萬張標注過的圖像。2010 年起,基于 ImageNet 數(shù)據(jù)集的視覺識別挑戰(zhàn)賽每年舉辦一次。
Alex Krizhevsky和 Sutskever用Alex Krizhevsky設(shè)計的卷積神經(jīng)網(wǎng)絡(luò)(CNN)參加比賽。兩個研究深度學(xué)習(xí)沒幾年的學(xué)生,卻以 10.8% 的巨大優(yōu)勢擊敗了其他對手,包括一些學(xué)術(shù)界的頂級團隊。而Alex Krizhevsky 設(shè)計的那個神經(jīng)網(wǎng)絡(luò),后來被命名為 AlexNet。
2.2 AlexNet概述
AlexNet網(wǎng)絡(luò)是Hinton率領(lǐng)的谷歌團隊(Alex Krizhevsky,Ilya Sutskever,Geoffrey E. Hinton)在2010年的ImageNet大賽獲得冠軍的一個神經(jīng)網(wǎng)絡(luò)。
如果用全連接神經(jīng)網(wǎng)絡(luò)處理大尺寸圖像具有三個明顯的缺點:
(1)首先將圖像展開為一維向量會丟失空間信息;
(2)其次參數(shù)過多效率低下,訓(xùn)練困難、耗時;
(3)同時大量的參數(shù)也很快會導(dǎo)致網(wǎng)絡(luò)過擬合。
而使用卷積神經(jīng)網(wǎng)絡(luò)可以很好地解決上面的三個問題。
AlexNet網(wǎng)絡(luò),是2012年ImageNet競賽冠軍獲得者Hinton和他的學(xué)生Alex Krizhevsky設(shè)計的。在那年之后,更多的更深的神經(jīng)網(wǎng)路被提出,比如優(yōu)秀的vgg,GoogleLeNet。其官方提供的數(shù)據(jù)模型,準確率達到57.1%,top 1-5 達到80.2%. 這相對于傳統(tǒng)的機器學(xué)習(xí)分類算法而言,已經(jīng)相當(dāng)?shù)某錾?
論文:《ImageNet Classification with Deep Convolutional Neural Networks》
與常規(guī)神經(jīng)網(wǎng)絡(luò)不同,卷積神經(jīng)網(wǎng)絡(luò)的各層中的神經(jīng)元是3維排列的:寬度、高度和深度。其中的寬度和高度是很好理解的,因為本身卷積就是一個二維模板,但是在卷積神經(jīng)網(wǎng)絡(luò)中的深度指的是卷積核神經(jīng)元的第三個維度,而不是整個網(wǎng)絡(luò)的深度,整個網(wǎng)絡(luò)的深度指的是網(wǎng)絡(luò)的層數(shù)。
2.3?AlexNet的特點
AlexNet中包含了幾個比較新的技術(shù)點,也首次在CNN中成功應(yīng)用了ReLU、Dropout和LRN等Trick。同時AlexNet也使用了GPU進行運算加速。
AlexNet將LeNet的思想發(fā)揚光大,把CNN的基本原理應(yīng)用到了很深很寬的網(wǎng)絡(luò)中。
AlexNet主要使用到的新技術(shù)點如下:
(1)ReLU的成功使用與推廣
成功使用ReLU作為CNN的激活函數(shù),并驗證其效果在較深的網(wǎng)絡(luò)超過了Sigmoid,成功解決了Sigmoid在網(wǎng)絡(luò)較深時的梯度彌散問題。雖然ReLU激活函數(shù)在很久之前就被提出了,但是直到AlexNet的出現(xiàn)才將其發(fā)揚光大。
線性整流函數(shù)(Rectified Linear Unit,?ReLU),又稱修正線性單元,是一種人工神經(jīng)網(wǎng)絡(luò)中常用的激活函數(shù)(activation function),通常指代以斜坡函數(shù)及其變種為代表的非線性函數(shù)。?
(2)Dropout的首次實用化
訓(xùn)練時使用Dropout隨機忽略一部分神經(jīng)元,以避免模型過擬合。Dropout雖有單獨的論文論述,但是AlexNet將其實用化,通過實踐證實了它的效果。在AlexNet中主要是最后幾個全連接層使用了Dropout。
深度學(xué)習(xí)架構(gòu)現(xiàn)在變得越來越深,dropout作為一個防過擬合的手段,使用也越來越普遍。
2012年,Dropout的想法被首次提出,它的出現(xiàn)徹底改變了深度學(xué)習(xí)進度,之后深度學(xué)習(xí)方向(反饋模型)開始展現(xiàn)優(yōu)勢,傳統(tǒng)的機器學(xué)習(xí)慢慢的消聲。
dropout改變之前稠密網(wǎng)絡(luò)中,權(quán)重統(tǒng)一學(xué)習(xí),參數(shù)統(tǒng)一更新的模式,提出在每次訓(xùn)練迭代中,讓網(wǎng)絡(luò)中的部分參數(shù)得到學(xué)習(xí),即部分參數(shù)得到更新,部分參數(shù)保持不更新。
?這種方法,看起來簡單,但是卻解決了,困擾了深度學(xué)習(xí)方向,一直只能用淺層網(wǎng)絡(luò),無法使用深度網(wǎng)絡(luò)的尷尬局面,(因為隨著網(wǎng)絡(luò)的層數(shù)加大,過擬合問題一定會出現(xiàn))
(3)首次使用最大池化
在CNN中使用重疊的最大池化。此前CNN中普遍使用平均池化,AlexNet全部使用最大池化,避免平均池化的模糊化效果。并且AlexNet中提出讓步長比池化核的尺寸小,這樣池化層的輸出之間會有重疊和覆蓋,提升了特征的豐富性。
常用的池化方法有最大池化(max-pooling)和均值池化(mean-pooling)。根據(jù)相關(guān)理論,特征提取的誤差主要來自兩個方面:
(1)鄰域大小受限造成的估計值方差增大;
(2)卷積層參數(shù)誤差造成估計均值的偏移。
一般來說,mean-pooling能減小第一種誤差,更多的保留圖像的背景信息,max-pooling能減小第二種誤差,更多的保留紋理信息。與mean-pooling近似,在局部意義上,則服從max-pooling的準則。
max-pooling卷積核的大小一般是2×2。 非常大的輸入量可能需要4x4。 但是,選擇較大的形狀會顯著降低信號的尺寸,并可能導(dǎo)致信息過度丟失。 通常,不重疊的池化窗口表現(xiàn)最好。
(4)LRN(局部歸一化)競爭機制
提出了LRN層,對局部神經(jīng)元的活動創(chuàng)建競爭機制,使得其中響應(yīng)比較大的值變得相對更大,并抑制其他反饋較小的神經(jīng)元,增強了模型的泛化能力。
LRN(Local Response Normalization)?是一種提高深度學(xué)習(xí)準確度的技術(shù)方法。 LRN 一般是在激活、 池化函數(shù)后的一種方法。
(5)GPU并行運算
使用CUDA GPU加速深度卷積網(wǎng)絡(luò)的訓(xùn)練,利用GPU強大的并行計算能力,處理神經(jīng)網(wǎng)絡(luò)訓(xùn)練時大量的矩陣運算。
AlexNet使用了兩塊GTX?580?GPU進行訓(xùn)練,單個GTX?580只有3GB顯存,這限制了可訓(xùn)練的網(wǎng)絡(luò)的最大規(guī)模。因此作者將AlexNet分布在兩個GPU上,在每個GPU的顯存中儲存一半的神經(jīng)元的參數(shù)。因為GPU之間通信方便,可以互相訪問顯存,而不需要通過主機內(nèi)存,所以同時使用多塊GPU也是非常高效的。同時,AlexNet的設(shè)計讓GPU之間的通信只在網(wǎng)絡(luò)的某些層進行,控制了通信的性能損耗。?
(6)數(shù)據(jù)增強
隨機地從256*256的原始圖像中截取224*224大小的區(qū)域(以及水平翻轉(zhuǎn)的鏡像),相當(dāng)于增加了2*(256-224)^2=2048倍的數(shù)據(jù)量。
如果沒有數(shù)據(jù)增強,僅靠原始的數(shù)據(jù)量,參數(shù)眾多的CNN會陷入過擬合中,使用了數(shù)據(jù)增強后可以大大減輕過擬合,提升泛化能力,這類似人眼,人眼可以實時的、以各種角度觀看和學(xué)習(xí)一個物理。進行預(yù)測時,則是取圖片的四個角加中間共5個位置,并進行左右翻轉(zhuǎn),一共獲得10張圖片,對他們進行預(yù)測并對10次結(jié)果求均值。同時,AlexNet論文中提到了會對圖像的RGB數(shù)據(jù)進行PCA處理,并對主成分做一個標準差為0.1的高斯擾動,增加一些噪聲,這個Trick可以讓錯誤率再下降1%。
第3章 AlexNet網(wǎng)絡(luò)結(jié)構(gòu)闡述
3.1 網(wǎng)絡(luò)架構(gòu)描述:厚度法
在上圖中,該網(wǎng)絡(luò)有上下兩路,兩路是完全相同的并行單元,之所以這樣表示,而不是合成一路,是因為當(dāng)時的單個GPU沒有那么大的內(nèi)存,AlexNet是通過兩個物理的GPU同時訓(xùn)練。邏輯上,上下兩路是可以合在一起的。
(0)輸入層:
- 224 * 224 * 3的三通道圖片
(1)卷積層1
- 卷積核的尺寸:11 * 11, 從目前 來看,還是偏大的。
- 卷積核的平移步長:4:目前來來看,也是偏大的
- 填充層:0, 無填充
- 卷積核的卷積輸出:55 * 55
- 卷積核的個數(shù):48 * 2?= 96
(2)卷積層2:
- 卷積核的尺寸:5 * 5,?
- 卷積核的卷積輸出:27? * 27
- 卷積核的個數(shù):128 * 2 = 256
(3)卷積層3:
- 卷積核的尺寸:3?* 3,?
- 卷積核的卷積輸出:13? * 13
- 卷積核的個數(shù):192 * 2 = 384
(4)卷積層4:
- 卷積核的尺寸:3?* 3,?
- 卷積核的卷積輸出:13? * 13
- 卷積核的個數(shù):192 * 2 = 384
(5)卷積層5:
- 卷積核的尺寸:3?* 3,?
- 卷積核的卷積輸出:13? * 13
- 卷積核的個數(shù):128 * 128?= 256
(6)全連接層1:
- 輸入:13 * 13 * 256 = 43,264? (進入全連接網(wǎng)絡(luò)的特征數(shù)據(jù))
- 神經(jīng)元個數(shù):2048 * 2 = 4096
- 輸出:4096
(7)全連接層2:
- 輸入:4096
- 神經(jīng)元個數(shù):2048 * 2 = 4096
- 輸出:4096
(8)輸出層
- 輸入:4096 (進行最后分類的特征數(shù)據(jù))
- 神經(jīng)元個數(shù):1000
- 輸出:1000(支持1000個分類)
備注:由于激活函數(shù)和池化層不是神經(jīng)元,因此沒有在上圖中體現(xiàn)。
3.2 網(wǎng)絡(luò)架構(gòu)描述:垂直法
?
(1)采用了最大池化(Max Pooling),池化核為3 * 3, 步長為2
(2)Local Response Normal:局部歸一化競爭機制,后來被驗證,用處不大。
(3)總的參數(shù)個數(shù):35K + 307K + 884 + 1.3M + 442K + 37M + 16M + 4M = 59.968M
(4)等效FLOPs(是“每秒所執(zhí)行的浮點運算次數(shù)”):720M
- 全連接層的參數(shù)大小與浮點計算量的關(guān)系是:一致的、相等的。
- 卷積層的參數(shù)雖然少(如上圖中卷積層1的參數(shù)= 35K = 11*11*3 * 96),等卷積的計算量一點都不少(如卷積層1的參數(shù)計算量=105M),且遠遠大于全連接網(wǎng)絡(luò)。
- 卷積層的參數(shù)大小與浮點計算量的關(guān)系是 = 卷積尺寸(長*寬*高)*? 特征圖尺寸(長*寬*卷積核數(shù)量),例如,第一個卷積層的計算量 = (11 * 11 *3) * (55 * 55 * 96)? = 105,415, 200
3.3 分層解讀
作者主頁(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文網(wǎng)址:https://blog.csdn.net/HiWangWenBing/article/details/120837261
總結(jié)
以上是生活随笔為你收集整理的[人工智能-深度学习-32]:卷积神经网络CNN - 常见分类网络- AlexNet网络结构分析与详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 女儿当自强,男儿更当自强
- 下一篇: [Pytorch系列-25]:神经网络基