深度卷積神經(jīng)網(wǎng)絡(luò)(AlexNet)
AlexNet跟LeNet結(jié)構(gòu)類似监徘,但使用了更多的卷積層和更大的參數(shù)空間來擬合大規(guī)模數(shù)據(jù)集ImageNet
它是淺層神經(jīng)網(wǎng)絡(luò)和深度神經(jīng)網(wǎng)絡(luò)的分界線雇毫。 雖然看上去AlexNet的實(shí)現(xiàn)比LeNet的實(shí)現(xiàn)也就多了幾行代碼而已桨啃,但這個(gè)觀念上的轉(zhuǎn)變和真正優(yōu)秀實(shí)驗(yàn)結(jié)果的產(chǎn)生令學(xué)術(shù)界付出了很多年
AlexNet與LeNet的設(shè)計(jì)理念非常相似,但也有顯著的區(qū)別
第一砚嘴,與相對(duì)較小的LeNet相比十酣,AlexNet包含8層變換,其中有5層卷積和2層全連接隱藏層际长,以及1個(gè)全連接輸出層耸采。下面我們來詳細(xì)描述這些層的設(shè)計(jì)
第二,AlexNet將sigmoid激活函數(shù)改成了更加簡(jiǎn)單的ReLU激活函數(shù)工育。一方面虾宇,ReLU激活函數(shù)的計(jì)算更簡(jiǎn)單,例如它并沒有sigmoid激活函數(shù)中的求冪運(yùn)算如绸。另一方面嘱朽,ReLU激活函數(shù)在不同的參數(shù)初始化方法下使模型更容易訓(xùn)練。這是由于當(dāng)sigmoid激活函數(shù)輸出極接近0或1時(shí)怔接,這些區(qū)域的梯度幾乎為0搪泳,從而造成反向傳播無法繼續(xù)更新部分模型參數(shù);而ReLU激活函數(shù)在正區(qū)間的梯度恒為1扼脐。因此岸军,若模型參數(shù)初始化不當(dāng),sigmoid函數(shù)可能在正區(qū)間得到幾乎為0的梯度瓦侮,從而令模型無法得到有效訓(xùn)練
第三艰赞,AlexNet通過丟棄法(控制全連接層的模型復(fù)雜度,而LeNet并沒有使用丟棄法
第四脏榆,AlexNet引入了大量的圖像增廣猖毫,如翻轉(zhuǎn)台谍、裁剪和顏色變化须喂,從而進(jìn)一步擴(kuò)大數(shù)據(jù)集來緩解過擬合
使用重復(fù)元素的網(wǎng)絡(luò)(VGG)
VGG-11通過5個(gè)可以重復(fù)使用的卷積塊來構(gòu)造網(wǎng)絡(luò),根據(jù)每塊里卷積層個(gè)數(shù)和輸出通道數(shù)的不同可以定義出不同的VGG模型
VGG塊的組成規(guī)律是:連續(xù)使用數(shù)個(gè)相同的填充為1趁蕊、窗口形狀為3×3的卷積層后接上一個(gè)步幅為2坞生、窗口形狀為2×2的最大池化層。卷積層保持輸入的高和寬不變掷伙,而池化層則對(duì)其減半是己,我們使用vgg_block函數(shù)來實(shí)現(xiàn)這個(gè)基礎(chǔ)的VGG塊,它可以指定卷積層的數(shù)量和輸入輸出通道數(shù)
對(duì)于給定的感受野(與輸出有關(guān)的輸入圖片的局部大腥喂瘛)卒废,采用堆積的小卷積核優(yōu)于采用大的卷積核沛厨,因?yàn)榭梢栽黾泳W(wǎng)絡(luò)深度來保證學(xué)習(xí)更復(fù)雜的模式,而且代價(jià)還比較兴と稀(參數(shù)更少)逆皮。例如,在VGG中参袱,使用了3個(gè)3x3卷積核來代替7x7卷積核电谣,使用了2個(gè)3x3卷積核來代替5*5卷積核,這樣做的主要目的是在保證具有相同感知野的條件下抹蚀,提升了網(wǎng)絡(luò)的深度剿牺,在一定程度上提升了神經(jīng)網(wǎng)絡(luò)的效果
網(wǎng)絡(luò)中的網(wǎng)絡(luò)(NiN)
NiN重復(fù)使用由卷積層和代替全連接層的1×1卷積層構(gòu)成的NiN塊來構(gòu)建深層網(wǎng)絡(luò)
?NiN去除了容易造成過擬合的全連接輸出層,而是將其替換成輸出通道數(shù)等于標(biāo)簽類別數(shù)的NiN塊和全局平均池化層
NiN的以上設(shè)計(jì)思想影響了后面一系列卷積神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)
我們知道环壤,卷積層的輸入和輸出通常是四維數(shù)組(樣本晒来,通道,高郑现,寬)潜索,而全連接層的輸入和輸出則通常是二維數(shù)組(樣本,特征)
如果想在全連接層后再接上卷積層懂酱,則需要將全連接層的輸出變換為四維
NiN塊是NiN中的基礎(chǔ)塊竹习。它由一個(gè)卷積層加兩個(gè)充當(dāng)全連接層的1×11×1卷積層串聯(lián)而成,其中第一個(gè)卷積層的超參數(shù)可以自行設(shè)置列牺,而第二和第三個(gè)卷積層的超參數(shù)一般是固定的
含并行連結(jié)的網(wǎng)絡(luò)(GoogLeNet)
Inception塊相當(dāng)于一個(gè)有4條線路的子網(wǎng)絡(luò)整陌,它通過不同窗口形狀的卷積層和最大池化層來并行抽取信息,并使用1×1卷積層減少通道數(shù)從而降低模型復(fù)雜度
GoogLeNet將多個(gè)設(shè)計(jì)精細(xì)的Inception塊和其他層串聯(lián)起來瞎领,其中Inception塊的通道數(shù)分配之比是在ImageNet數(shù)據(jù)集上通過大量的實(shí)驗(yàn)得來的
GoogLeNet和它的后繼者們一度是ImageNet上最高效的模型之一:在類似的測(cè)試精度下泌辫,它們的計(jì)算復(fù)雜度往往更低