卷积神经网络CNN常用的几个模型
文章目錄
- 0??LeNet5
- 🏵LeNet-5的訓(xùn)練算法
- 🏵卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)
- 🏵總結(jié)
- 1??AlexNet
- 🏵特點(diǎn)
- 🏵代碼
- 🏵主要貢獻(xiàn)
- 🌺ReLU激活函數(shù)的引入
- 🌺層疊池化操作
- 🌺Dropout操作
- 🌺網(wǎng)絡(luò)層數(shù)的增加
- 2??VGGNet(Visual Geometry Group)
- 🏵要點(diǎn)
- 3??Google Inception Net
- 🏵1x1卷積的作用
- 🏵要點(diǎn)
- 4??ResNet
- 🏵要點(diǎn)
- 5??ResNeXt
- 🏵網(wǎng)絡(luò)結(jié)構(gòu)
- 6??SENet
- 🏵SE Block設(shè)計(jì)
- 7??基于區(qū)域的CNNs (R-CNN - 2013, Fast R-CNN - 2015, Faster R-CNN - 2015)
- 🏵RCNN
- 🏵Fast R-CNN
- 🏵Faster R-CNN
- Inference
0??LeNet5
論文:http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf
LeNet-5:是Yann LeCun在1998年設(shè)計(jì)的用于手寫數(shù)字識(shí)別的卷積神經(jīng)網(wǎng)絡(luò),當(dāng)年美國(guó)大多數(shù)銀行就是用它來(lái)識(shí)別支票上面的手寫數(shù)字的,它是早期卷積神經(jīng)網(wǎng)絡(luò)中最有代表性的實(shí)驗(yàn)系統(tǒng)之一。
LenNet-5共有7層(不包括輸入層),每層都包含不同數(shù)量的訓(xùn)練參數(shù),如下圖所示。
LeNet-5中主要有2個(gè)卷積層、2個(gè)下抽樣層(池化層)、3個(gè)全連接層3種連接方式
🏵LeNet-5的訓(xùn)練算法
訓(xùn)練算法與傳統(tǒng)的BP算法差不多。主要包括4步,這4步被分為兩個(gè)階段:
第一階段,向前傳播階段:
a)從樣本集中取一個(gè)樣本(X,Yp),將X輸入網(wǎng)絡(luò);
b)計(jì)算相應(yīng)的實(shí)際輸出Op。
在此階段,信息從輸入層經(jīng)過(guò)逐級(jí)的變換,傳送到輸出 層。這個(gè)過(guò)程也是網(wǎng)絡(luò)在完成訓(xùn)練后正常運(yùn)行時(shí)執(zhí)行的過(guò)程。在此過(guò)程中,網(wǎng)絡(luò)執(zhí)行的是計(jì)算(實(shí)際上就是輸入與每層的權(quán)值矩陣相點(diǎn)乘,得到最后的輸出結(jié)果):
Op=Fn(…(F2(F1(XpW(1))W(2))…)W(n))
第二階段,向后傳播階段
a)算實(shí)際輸出Op與相應(yīng)的理想輸出Yp的差;
b)按極小化誤差的方法反向傳播調(diào)整權(quán)矩陣。
🏵卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)
卷積網(wǎng)絡(luò)較一般神經(jīng)網(wǎng)絡(luò)在圖像處理方面有 如下優(yōu)點(diǎn)
a)輸入圖像和網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)能很好的吻合;
b)特征提取和模式分類同時(shí)進(jìn)行,并同時(shí)在訓(xùn)練中產(chǎn)生;
c)權(quán)重共享可以減少網(wǎng)絡(luò)的訓(xùn)練參數(shù),使神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)變得更簡(jiǎn)單,適應(yīng)性更強(qiáng)。
🏵總結(jié)
卷積網(wǎng)絡(luò)在本質(zhì)上是一種輸入到輸出的映射,它能夠?qū)W習(xí)大量的輸入與輸出之間的映射關(guān)系,而不需要任何輸入和輸出之間的精確的數(shù)學(xué)表達(dá)式。
通過(guò)對(duì)LeNet-5的網(wǎng)絡(luò)結(jié)構(gòu)的分析,可以直觀地了解一個(gè)卷積神經(jīng)網(wǎng)絡(luò)的構(gòu)建方法,可以為分析、構(gòu)建更復(fù)雜、更多層的卷積神經(jīng)網(wǎng)絡(luò)做準(zhǔn)備。
LaNet-5的局限性
CNN能夠得出原始圖像的有效表征,這使得CNN能夠直接從原始像素中,經(jīng)過(guò)極少的預(yù)處理,識(shí)別視覺上面的規(guī)律。然而,由于當(dāng)時(shí)缺乏大規(guī)模訓(xùn)練數(shù)據(jù),計(jì)算機(jī)的計(jì)算能力也跟不上,LeNet-5 對(duì)于復(fù)雜問(wèn)題的處理結(jié)果并不理想。
1??AlexNet
論文:http://vision.stanford.edu/teaching/cs231b_spring1415/slides/alexnet_tugce_kyunghee.pdf
AlexNet于2012年由Alex Krizhevsky, Ilya Sutskever 和 Geoffrey Hinton等人提出,并在2012 ILSVRC (ImageNet Large-Scale Visual Recognition Challenge)中取得了最佳的成績(jī)。這也是第一次CNN取得這么好的成績(jī),并且把第二名遠(yuǎn)遠(yuǎn)地甩在了后面,因此震驚了整個(gè)領(lǐng)域,從此CNNs才開始被大眾所熟知。
這里簡(jiǎn)單地說(shuō)一下這個(gè)ILSVRC,它是一個(gè)ImageNet發(fā)起的挑戰(zhàn),是計(jì)算機(jī)視覺領(lǐng)域的奧運(yùn)會(huì)。全世界的團(tuán)隊(duì)帶著他們的模型來(lái)對(duì)ImageNet中的數(shù)以千萬(wàn)的共1000個(gè)類別的圖片進(jìn)行分類、定位、識(shí)別。這個(gè)是一個(gè)相當(dāng)有難度的工作,1000個(gè)類別啊。
那我們來(lái)看看這個(gè)AlexNet的結(jié)構(gòu)把:
🏵特點(diǎn)
關(guān)于AlexNet有如下要點(diǎn):
1、在ImageNet數(shù)據(jù)上對(duì)網(wǎng)絡(luò)進(jìn)行了培訓(xùn),該數(shù)據(jù)包含來(lái)自22,000多個(gè)類別的超過(guò)1500萬(wàn)個(gè)帶注釋的圖像。
2、使用ReLU進(jìn)行非線性函數(shù)(發(fā)現(xiàn)減少訓(xùn)練時(shí)間,因?yàn)镽eLU比傳統(tǒng)的tanh函數(shù)快幾倍)。
3、使用的數(shù)據(jù)增強(qiáng)技術(shù)包括圖像轉(zhuǎn)換,水平反射和補(bǔ)丁提取。
4、實(shí)施了dropout層,以解決過(guò)度擬合訓(xùn)練數(shù)據(jù)的問(wèn)題。
5、使用mini-batch SGD訓(xùn)練模型,具有動(dòng)量和重量衰減的特定值。
6、在兩個(gè)GTX 580 GPU上訓(xùn)練五到六天。
7、每一層權(quán)重均初始化為0均值0.01標(biāo)準(zhǔn)差的高斯分布,在第二層、第四層和第五層卷積的偏置被設(shè)置為1.0,而其他層的則為0,目的是為了加速早期學(xué)習(xí)的速率(因?yàn)榧せ詈瘮?shù)是ReLU,1.0的偏置可以讓大部分輸出為正)。
8、學(xué)習(xí)速率初始值為0.01,在訓(xùn)練結(jié)束前共減小3次,每次減小都出現(xiàn)在錯(cuò)誤率停止減少的時(shí)候,每次減小都是把學(xué)習(xí)速率除以10 。
9、局部響應(yīng)歸一化。在使用飽和型的激活函數(shù)時(shí),通常需要對(duì)輸入進(jìn)行歸一化處理,以利用激活函數(shù)在0附近的線性特性與非線性特性,并避免飽和,但對(duì)于ReLU函數(shù),不需要輸入歸一化。然而,Alex等人發(fā)現(xiàn)通過(guò)LRN這種歸一化方式可以幫助提高網(wǎng)絡(luò)的泛化性能。LRN的作用就是,對(duì)位置(x, y)處的像素計(jì)算其與幾個(gè)相鄰的kernel maps的像素值的和,并除以這個(gè)和來(lái)歸一化。
🏵代碼
import time import torch from torch import nn, optim import torchvision device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')class AlexNet(nn.Module):def __init__(self, num_classes=1000):super(AlexNet, self).__init__()self.conv = nn.Sequential(# 卷積層C1nn.Conv2d(3, 96, 11, 4),nn.ReLU(),nn.MaxPool2d(3, 2),# 卷積層C2nn.Conv2d(96, 256, 5, 1, 2),nn.ReLU(),nn.MaxPool2d(3, 2),# 卷積層C3nn.Conv2d(256, 384, 3, 1, 1),nn.ReLU(),# 卷積層C4nn.Conv2d(384, 384, 3, 1, 1),nn.ReLU(),# 卷積層C5nn.Conv2d(384, 256, 3, 1, 1),nn.ReLU(),nn.MaxPool2d(3, 2))self.avgpool = nn.AdaptiveAvgPool2d((6, 6)) # [b,256,6,6], 為了使輸出特征圖大小為6x6,自動(dòng)求一個(gè)合適的核大小self.fc = nn.Sequential(# 全連接層FC6nn.Dropout(),nn.Linear(256*6*6, 4096),nn.ReLU(inplace=True),# 全連接層FC7nn.Dropout(0.5),nn.Linear(4096, 4096),nn.ReLU(),# 全連接層FC8nn.Linear(4096, num_classes),)def forward(self, img):feature = self.conv(img)feature = self.avgpool(feature) # torch.Size([b, 256, 6, 6])output = self.fc(feature.view(img.shape[0], -1)) # torch.Size([1, 1000])return output🏵主要貢獻(xiàn)
🌺ReLU激活函數(shù)的引入
采用修正線性單元(ReLU)的深度卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)間比等價(jià)的tanh單元要快幾倍。而時(shí)間開銷是進(jìn)行模型訓(xùn)練過(guò)程中很重要的考量因素之一。同時(shí),ReLU有效防止了過(guò)擬合現(xiàn)象的出現(xiàn)。由于ReLU激活函數(shù)的高效性與實(shí)用性,使得它在深度學(xué)習(xí)框架中占有重要地位。
🌺層疊池化操作
以往池化的大小PoolingSize與步長(zhǎng)stride一般是相等的,例如:圖像大小為256*256,PoolingSize=2×2,stride=2,這樣可以使圖像或是FeatureMap大小縮小一倍變?yōu)?28,此時(shí)池化過(guò)程沒(méi)有發(fā)生層疊。但是AlexNet采用了層疊池化操作,即PoolingSize > stride。這種操作非常像卷積操作,可以使相鄰像素間產(chǎn)生信息交互和保留必要的聯(lián)系。論文中也證明,此操作可以有效防止過(guò)擬合的發(fā)生。
🌺Dropout操作
Dropout操作會(huì)將概率小于0.5的每個(gè)隱層神經(jīng)元的輸出設(shè)為0,即去掉了一些神經(jīng)節(jié)點(diǎn),達(dá)到防止過(guò)擬合。那些“失活的”神經(jīng)元不再進(jìn)行前向傳播并且不參與反向傳播。這個(gè)技術(shù)減少了復(fù)雜的神經(jīng)元之間的相互影響。在論文中,也驗(yàn)證了此方法的有效性。
🌺網(wǎng)絡(luò)層數(shù)的增加
與原始的LeNet相比,AlexNet網(wǎng)絡(luò)結(jié)構(gòu)更深,LeNet為5層,AlexNet為8層。在隨后的神經(jīng)網(wǎng)絡(luò)發(fā)展過(guò)程中,AlexNet逐漸讓研究人員認(rèn)識(shí)到網(wǎng)絡(luò)深度對(duì)性能的巨大影響。當(dāng)然,這種思考的重要節(jié)點(diǎn)出現(xiàn)在VGG網(wǎng)絡(luò)(下文中將會(huì)講到),但是很顯然從AlexNet為起點(diǎn)就已經(jīng)開始了這項(xiàng)工作。
2??VGGNet(Visual Geometry Group)
論文:https://arxiv.org/pdf/1409.1556.pdf
這個(gè)網(wǎng)絡(luò)于2014年被牛津大學(xué)的Karen Simonyan 和Andrew Zisserman提出,主要特點(diǎn)是 “簡(jiǎn)潔,深度”。 深, 是因?yàn)閂GG有19層,遠(yuǎn)遠(yuǎn)超過(guò)了它的前輩; 而簡(jiǎn)潔,則是在于它的結(jié)構(gòu)上,一律采用stride為1的3×3filter,以及stride為2的2×2MaxPooling。所以雖然深,但是結(jié)構(gòu)大家一眼就可以記住。
VggNet一共有六種不同的網(wǎng)絡(luò)結(jié)構(gòu),但是每種結(jié)構(gòu)都有含有5組卷積,每組卷積都使用3x3的卷積核,每組卷積后進(jìn)行一個(gè)2x2最大池化,接下來(lái)是三個(gè)全連接層.在訓(xùn)練高級(jí)別的網(wǎng)絡(luò)時(shí),可以先訓(xùn)練低級(jí)別的網(wǎng)絡(luò),用前者獲得的權(quán)重初始化高級(jí)別的網(wǎng)絡(luò),可以加速網(wǎng)絡(luò)的收斂.
圖下所示,其中,網(wǎng)絡(luò)結(jié)構(gòu)D就是著名的VGG16,網(wǎng)絡(luò)結(jié)構(gòu)E就是著名的VGG19。
VGGNet在訓(xùn)練時(shí)有一個(gè)小技巧,先訓(xùn)練級(jí)別A的簡(jiǎn)單網(wǎng)絡(luò),再?gòu)?fù)用A網(wǎng)絡(luò)的權(quán)重來(lái)初始化后面的幾個(gè)復(fù)雜模型,這樣訓(xùn)練收斂的速度更快。在預(yù)測(cè)時(shí),VGG采用Multi-Scale的方法,將圖像scale到一個(gè)尺寸Q,并將圖片輸入卷積網(wǎng)絡(luò)計(jì)算。然后在最后一個(gè)卷積層使用滑窗的方式進(jìn)行分類預(yù)測(cè),將不同窗口的分類結(jié)果平均,再將不同尺寸Q的結(jié)果平均得到最后結(jié)果,這樣可提高圖片數(shù)據(jù)的利用率并提升預(yù)測(cè)準(zhǔn)確率。在訓(xùn)練中,VGGNet還使用了Multi-Scale的方法做數(shù)據(jù)增強(qiáng),將原始圖像縮放到不同尺寸S,然后再隨機(jī)裁切224′224的圖片,這樣能增加很多數(shù)據(jù)量,對(duì)于防止模型過(guò)擬合有很不錯(cuò)的效果。
在訓(xùn)練的過(guò)程中,比AlexNet收斂的要快一些,原因?yàn)?#xff1a;
- 使用小卷積核和更深的網(wǎng)絡(luò)進(jìn)行的正則化;
- 在特定的層使用了預(yù)訓(xùn)練得到的數(shù)據(jù)進(jìn)行參數(shù)的初始化。
🏵要點(diǎn)
1、僅使用3x3尺寸的filter與AlexNet的第一層11x11 filter 和ZF Net的7x7 filter 完全不同。作者的推理是兩個(gè)3x3 conv層的組合具有5x5的有效感受野。這又可以模擬更大的 filter,同時(shí)保持較小filter尺寸的優(yōu)勢(shì)。其中一個(gè)好處是減少了參數(shù)的數(shù)量。此外,使用兩個(gè)轉(zhuǎn)換層,我們可以使用兩個(gè)ReLU層而不是一個(gè)。
2、3個(gè)背對(duì)背的conv層具有7x7的有效感受區(qū)域。
3、隨著每層輸入卷的空間大小減小(轉(zhuǎn)換層和池層的結(jié)果),當(dāng)您沿著網(wǎng)絡(luò)向下時(shí),由于filter數(shù)量的增加,卷的深度會(huì)增加。
4、有趣的是注意到每個(gè)maxpool層之后過(guò)濾器的數(shù)量翻倍。這加強(qiáng)了縮小空間尺寸的想法,但增加了深度。
5、在圖像分類和本地化任務(wù)方面都做得很好。作者使用一種本地化形式作為回歸。
6、使用Caffe工具箱構(gòu)建模型。
7、在訓(xùn)練期間使用scale jittering比例抖動(dòng)作為一種數(shù)據(jù)增強(qiáng)技術(shù)。
8、在每個(gè)轉(zhuǎn)換層之后使用ReLU層并使用批量梯度下降進(jìn)行訓(xùn)練。
9、在4個(gè)Nvidia Titan Black GPU上訓(xùn)練了兩到三周。
10、LRN層作用不大(VGGNet不使用局部響應(yīng)標(biāo)準(zhǔn)化(LRN),這種標(biāo)準(zhǔn)化并不能在ILSVRC數(shù)據(jù)集上提升性能,卻導(dǎo)致更多的內(nèi)存消耗和計(jì)算時(shí)間。
3??Google Inception Net
論文:https://www.cs.unc.edu/~wliu/papers/GoogLeNet.pdf
inception(也稱GoogLeNet)是2014年Christian Szegedy提出的一種全新的深度學(xué)習(xí)結(jié)構(gòu),在這之前的AlexNet、VGG等結(jié)構(gòu)都是通過(guò)增大網(wǎng)絡(luò)的深度(層數(shù))來(lái)獲得更好的訓(xùn)練效果,但層數(shù)的增加會(huì)帶來(lái)很多負(fù)作用,比如overfit、梯度消失、梯度爆炸等。inception的提出則從另一種角度來(lái)提升訓(xùn)練結(jié)果:能更高效的利用計(jì)算資源,在相同的計(jì)算量下能提取到更多的特征,從而提升訓(xùn)練結(jié)果。
🏵1x1卷積的作用
可以看到圖1中有多個(gè)黃色的1x1卷積模塊,這樣的卷積有什么用處呢?
作用1:在相同尺寸的感受野中疊加更多的卷積,能提取到更豐富的特征。這個(gè)觀點(diǎn)來(lái)自于Network in Network(NIN, https://arxiv.org/pdf/1312.4400.pdf),上圖里三個(gè)1x1卷積都起到了該作用。
圖2:線性卷積和NIN結(jié)構(gòu)對(duì)比
圖2左側(cè)是是傳統(tǒng)的卷積層結(jié)構(gòu)(線性卷積),在一個(gè)尺度上只有一次卷積;右圖是Network in Network結(jié)構(gòu)(NIN結(jié)構(gòu)),先進(jìn)行一次普通的卷積(比如3x3),緊跟再進(jìn)行一次1x1的卷積,對(duì)于某個(gè)像素點(diǎn)來(lái)說(shuō)1x1卷積等效于該像素點(diǎn)在所有特征上進(jìn)行一次全連接的計(jì)算,所以右側(cè)圖的1x1卷積畫成了全連接層的形式,需要注意的是NIN結(jié)構(gòu)中無(wú)論是第一個(gè)3x3卷積還是新增的1x1卷積,后面都緊跟著激活函數(shù)(比如relu)。將兩個(gè)卷積串聯(lián),就能組合出更多的非線性特征。舉個(gè)例子,假設(shè)第1個(gè)3x3卷積+激活函數(shù)近似于f1(x)=ax2+bx+c,第二個(gè)1x1卷積+激活函數(shù)近似于f2(x)=mx2+nx+q,那f1(x)和f2(f1(x))比哪個(gè)非線性更強(qiáng),更能模擬非線性的特征?答案是顯而易見的。NIN的結(jié)構(gòu)和傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)中多層的結(jié)構(gòu)有些類似,后者的多層是跨越了不同尺寸的感受野(通過(guò)層與層中間加pool層),從而在更高尺度上提取出特征;NIN結(jié)構(gòu)是在同一個(gè)尺度上的多層(中間沒(méi)有pool層),從而在相同的感受野范圍能提取更強(qiáng)的非線性。
作用2:使用1x1卷積進(jìn)行降維,降低了計(jì)算復(fù)雜度。圖2中間3x3卷積和5x5卷積前的1x1卷積都起到了這個(gè)作用。當(dāng)某個(gè)卷積層輸入的特征數(shù)較多,對(duì)這個(gè)輸入進(jìn)行卷積運(yùn)算將產(chǎn)生巨大的計(jì)算量;如果對(duì)輸入先進(jìn)行降維,減少特征數(shù)后再做卷積計(jì)算量就會(huì)顯著減少。下圖是優(yōu)化前后兩種方案的乘法次數(shù)比較,同樣是輸入一組有192個(gè)特征、32x32大小,輸出256組特征的數(shù)據(jù),第一張圖直接用3x3卷積實(shí)現(xiàn),需要192x256x3x3x32x32=452984832次乘法;第二張圖先用1x1的卷積降到96個(gè)特征,再用3x3卷積恢復(fù)出256組特征,需要192x96x1x1x32x32+96x256x3x3x32x32=245366784次乘法,使用1x1卷積降維的方法節(jié)省了一半的計(jì)算量。有人會(huì)問(wèn),用1x1卷積降到96個(gè)特征后特征數(shù)不就減少了么,會(huì)影響最后訓(xùn)練的效果么?答案是否定的,只要最后輸出的特征數(shù)不變(256組),中間的降維類似于壓縮的效果,并不影響最終訓(xùn)練的結(jié)果。
🏵要點(diǎn)
1、在整個(gè)架構(gòu)中使用了9個(gè)Inception模塊,總共超過(guò)100層!現(xiàn)在這很深…
2、沒(méi)有使用完全連接的層!他們使用平均水池,從7x7x1024 volume到1x1x1024 volume。這節(jié)省了大量參數(shù)。
3、使用的參數(shù)比AlexNet少12倍。
4、在測(cè)試過(guò)程中,創(chuàng)建了相同圖像的多個(gè)作物,并將其輸入網(wǎng)絡(luò),并對(duì)softmax概率進(jìn)行平均,以便為我們提供最終解決方案。
5、利用R-CNN的概念來(lái)檢測(cè)它們的檢測(cè)模型。
6、Inception模塊有更新版本(版本6和7)。
7、接受“一周內(nèi)幾個(gè)高端GPU”的訓(xùn)練。
4??ResNet
論文:https://arxiv.org/pdf/1512.03385.pdf
最后要介紹的就是ResNet,于2015年由微軟亞洲研究院的學(xué)者們提出。
前面講了,CNN面臨的一個(gè)問(wèn)題就是,隨著層數(shù)的增加,CNN的效果會(huì)遇到瓶頸,甚至?xí)辉龇唇怠_@往往是梯度爆炸或者梯度消失引起的。
ResNet就是為了解決這個(gè)問(wèn)題而提出的,因而幫助我們訓(xùn)練更深的網(wǎng)絡(luò)。 它引入了一個(gè) residual block(殘差塊):
想要了解更多,歡迎查看我的另外一篇文章
🏵要點(diǎn)
1、152層,“超深”
2、有趣的是,在僅前兩層之后,空間大小從224x224的輸入體積壓縮到56x56體積。
3、作者聲稱,普通網(wǎng)中層數(shù)的單純?cè)黾訒?huì)導(dǎo)致更高的訓(xùn)練和測(cè)試誤差。
4、該小組嘗試了1202層網(wǎng)絡(luò),但測(cè)試精度較低,可能是由于過(guò)度擬合。
5、在8 GPU機(jī)器上訓(xùn)練兩到三周。
6、ResNet模型是我們目前擁有的最佳CNN架構(gòu),是殘差學(xué)習(xí)理念的重大創(chuàng)新。
5??ResNeXt
a是ResNeXt基本單元,如果把輸出那里的1x1合并到一起,得到等價(jià)網(wǎng)絡(luò)b擁有和Inception-ResNet相似的結(jié)構(gòu),而進(jìn)一步把輸入的1x1也合并到一起,得到等價(jià)網(wǎng)絡(luò)c則和通道分組卷積的網(wǎng)絡(luò)有相似的結(jié)構(gòu)。
到這里,可以看到本文的野心很大,相當(dāng)于在說(shuō),Inception-ResNet和通道分組卷積網(wǎng)絡(luò),都只是ResNeXt這一范式的特殊形式而已,進(jìn)一步說(shuō)明了split-transform-merge的普遍性和有效性,以及抽象程度更高,更本質(zhì)一點(diǎn)。
🏵網(wǎng)絡(luò)結(jié)構(gòu)
6??SENet
🏵SE Block設(shè)計(jì)
基于即插即用,論文給出下面兩種結(jié)構(gòu)(Inception 和 ResNet)
實(shí)驗(yàn)都基于ImageNet dataset(with 8 GPUs),backbone為ResNet-50。實(shí)驗(yàn)表明,降維比例r取16、Squeeze算子采用平均值池化、Excitation算子使用 Sigmoid 、與殘差跳接并行和全局采用SE Block下,性能最好。
7??基于區(qū)域的CNNs (R-CNN - 2013, Fast R-CNN - 2015, Faster R-CNN - 2015)
🏵RCNN
R-CNN的目的是解決物體檢測(cè)問(wèn)題。給定某個(gè)圖像,我們希望能夠在所有對(duì)象上繪制邊界框。該過(guò)程可以分為兩個(gè)通用組件,即區(qū)域建議步驟和分類步驟。
作者指出,任何類別不可知區(qū)域提案方法都應(yīng)該適合。選擇性搜索特別用于RCNN。選擇性搜索執(zhí)行生成具有包含對(duì)象的概率最高的2000個(gè)不同區(qū)域的功能。在我們提出一組區(qū)域提議之后,這些提議然后被“扭曲”成圖像大小,該圖像大小可以被饋送到訓(xùn)練有素的CNN(在這種情況下為AlexNet),其為每個(gè)區(qū)域提取特征向量。然后將該向量用作一組線性SVM的輸入,這些線性SVM針對(duì)每個(gè)類進(jìn)行訓(xùn)練并輸出分類。矢量也被送入邊界框回歸器以獲得最準(zhǔn)確的坐標(biāo)。
🏵Fast R-CNN
由于3個(gè)主要問(wèn)題,對(duì)原始模型進(jìn)行了改進(jìn)。 訓(xùn)練需要多個(gè)階段(將SVM轉(zhuǎn)換為邊界框回歸器),計(jì)算成本很高,而且速度極慢(RCNN每張圖像需要53秒)。 快速R-CNN能夠通過(guò)基本上共享不同提議之間的轉(zhuǎn)換層的計(jì)算并交換生成區(qū)域提議和運(yùn)行CNN的順序來(lái)解決速度問(wèn)題。 在這個(gè)模型中,圖像首先通過(guò)ConvNet提供,區(qū)域提議的特征是從ConvNet的最后一個(gè)特征圖獲得的,最后我們還有完全連接的圖層。 作為我們的回歸和分類頭。
🏵Faster R-CNN
更快的R-CNN可以抗衡R-CNN和快速R-CNN展示出來(lái)的的有些復(fù)雜的訓(xùn)練管道。 作者在最后一個(gè)卷積層之后插入?yún)^(qū)域提議網(wǎng)絡(luò)(RPN)。 該網(wǎng)絡(luò)只能查看最后一個(gè)卷積特征圖并從中生成區(qū)域提議。 從該階段開始,使用與R-CNN相同的管道(ROI池,FC,然后是分類和回歸頭)。
Inference
[0] https://blog.csdn.net/guzhao9901/article/details/118552085
[1] https://blog.csdn.net/m0_37870649/article/details/80547167
[2] https://zhuanlan.zhihu.com/p/32913695
[] https://zhuanlan.zhihu.com/p/374803891
總結(jié)
以上是生活随笔為你收集整理的卷积神经网络CNN常用的几个模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 关于利用常见战斗机机载雷达进行食物烹制可
- 下一篇: Patch2Pix(CVPR 2021)