1.Depthwise卷積相關(guān)知識
優(yōu)點:計算量和運算成本較低
缺點:輸入層每個通道獨立進行卷積運算钮科,無法有效利用不同通道在相同空間位置上的Feature信息亥鸠。
Depthwise Convolution的一個卷積核負責(zé)一個通道好港,一個通道只被一個卷積核卷積。上面所提到的常規(guī)卷積每個卷積核是同時操作輸入圖片的每個通道铺坞,其卷積核數(shù)量與上一層通道數(shù)相同惯悠,Depthwise Convolution完成后的Feature map數(shù)量與輸入層的通道數(shù)相同,無法擴展Feature map遮斥。
2.1*1卷積核的作用
增加網(wǎng)絡(luò)的非線性能力峦失,可以更好的擬合參數(shù)
完成降維和升維的作用
可以減少參數(shù)量,降低計算成本和計算復(fù)雜度
3.反卷積相比其他上采樣層的缺點术吗,棋盤格現(xiàn)象怎么產(chǎn)生的宠进?
反卷積是上采樣的一種,其他的有線性插值法:最鄰近插值(NN),雙線性插值(Biliner)缺點之一可能就是產(chǎn)生棋盤格效應(yīng)藐翎,在圖像生成的任務(wù)中材蹬,由于最后添加了反卷積層实幕,導(dǎo)致
4.3D卷積和2D卷積的區(qū)別,存在的問題堤器,如何加速運算
3D卷積能保留輸入信號的時間信息昆庇,2D卷積不能保留輸入信息的時間信息;2D卷積提取單張圖像的空間特征闸溃,3D卷積能夠提取圖像之間的時間維度上的物體的運動信息整吆。
5.卷積核大小如何選取
在感受野相同的情況下,卷積核越小辉川,參數(shù)量和計算量越斜眚;一般先選擇33的卷積核尺寸乓旗,因為11和2*2無法提升感受野府蛇,無論padding如何操作,輸入輸出都尺寸一致屿愚。對于卷積層數(shù)和卷積核個數(shù)一般都是trial and error沒有統(tǒng)一的標準汇跨,也就是說在由層數(shù)和通道數(shù)組成的超參數(shù)集合中,一般是通過實驗選擇最優(yōu)的參數(shù)妆距。
6.卷積層減少參數(shù)的方法穷遂?
PW卷積:Pointwise Convolution,俗稱 1x1 卷積娱据,主要用于數(shù)據(jù)降維蚪黑,減少參數(shù)量;
多個小尺寸卷積代替大卷積核中剩,加深網(wǎng)絡(luò)的同時減少參數(shù)量
精巧的Bottleneck結(jié)構(gòu)可以減少參數(shù)量
采用精巧的Depthwise Separable Conv(深度可分卷積)設(shè)計
7.Dropout的原理
dropout改變之前稠密網(wǎng)絡(luò)中祠锣,權(quán)重統(tǒng)一學(xué)習(xí),參數(shù)統(tǒng)一更新的模式咽安,提出在每次訓(xùn)練迭代中伴网,讓網(wǎng)絡(luò)中的部分參數(shù)得到學(xué)習(xí),即部分參數(shù)得到更新妆棒,部分參數(shù)保持不更新澡腾。由于每次選擇激活的神經(jīng)元是隨機的,dropout可以看成是集成學(xué)習(xí)bagging的一種糕珊。
可以消除減弱了神經(jīng)元節(jié)點間的聯(lián)合適應(yīng)性动分,增強了泛化能力
8.樸素貝葉斯的一些知識點
樸素貝葉斯最重要的一個假設(shè)是:屬性條件獨立性假設(shè),解決了聯(lián)合概率無法拆分運算的問題红选。
先求出類別的先驗概率澜公,乘以類別之下各個屬性的條件概率,最后最大化二者的乘積就是NB分類器的判別準則喇肋。
半樸素貝葉斯適當(dāng)考慮一部分屬性間的相互依賴信息坟乾,獨依賴估計就是其中常用的策略迹辐,其假設(shè)每個屬性在類別之外最多依賴其他的一個屬性。
樸素貝葉斯與極大似然估計的一些區(qū)別和聯(lián)系:
極大似然估計估計的參數(shù)是固定形式的一個未知變量甚侣,其具體運算只需要用到微分即可明吩,但是貝葉斯估計是將參數(shù)視為有某種已知先驗分布的隨機變量。
Tips:極大似然估計的目的是利用已知的樣本結(jié)果殷费,反推最有可能(最大概率)導(dǎo)致這種結(jié)果的參數(shù)值印荔。“模型已定详羡,參數(shù)未知”利用實驗結(jié)果得到某個參數(shù)值能夠使樣本出現(xiàn)的概率最大仍律。
9.直接轉(zhuǎn)置卷積和先上采樣再卷積的區(qū)別
反卷積會產(chǎn)生棋盤效應(yīng),上采樣+卷積不會出現(xiàn)這種情況
10.MaxPooling怎么傳遞導(dǎo)數(shù)
對于max pooling 而言实柠,對于非極大值而言是沒有梯度的水泉,因為輕微地改變它們并不影響結(jié)果,此外主到,max可以近似看作斜率為1茶行,因為輸出的值等于max.因此躯概,梯度是從下一層當(dāng)中反向傳播到取得最大值的神經(jīng)元上的登钥,所有其他的神經(jīng)元梯度值為0。
源碼中有一個max_idx_的變量娶靡,這個變量就是記錄最大值所在位置的牧牢,因為在反向傳播中要用到
11.CNN中池化的作用
下采樣;降維去除冗余信息對特征進行壓縮減小參數(shù)量 姿锭;實現(xiàn)非線性塔鳍;可以擴大感受野;可以實現(xiàn)不變性:平移不變性呻此、旋轉(zhuǎn)不變性和尺度不變性轮纫。
12.Shufflenet的結(jié)構(gòu)
ShuffleNet的核心就是用pointwise group convolution,即是只在組內(nèi)進行Pointwise卷積焚鲜,但是這種分組Pointwise卷積會帶來卷積通道之間信息溝通不流暢的問題掌唾,為了解決這個問題channel shuffle被提出來和depthwise separable convolution代替ResNet block的相應(yīng)層構(gòu)成了ShuffleNet uint,達到了減少計算量和提高準確率的目的忿磅。channel shuffle解決了多個group convolution疊加出現(xiàn)的邊界效應(yīng)糯彬,pointwise group convolution和depthwise separable convolution主要減少了計算量
ShuffleNetv2中提出了一些高效率網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計原則:1、使用平衡的卷積葱她,及通道數(shù)一樣 2撩扒、分組卷積會帶來計算消耗 3、減少網(wǎng)絡(luò)的分支 4吨些、減少element-wise(元素級)操作ReLU搓谆,ADD和depthwise convolution炒辉;同時網(wǎng)絡(luò)中采用了channel split的操作,減少了像ShuffleNetv1中的Add和ReLU操作
13.池化的理解和總結(jié)
池化的作用:1挽拔、下采樣辆脸,對特征圖進行壓縮 2、降維螃诅、去除冗余信息啡氢、對特征進行壓縮、簡化網(wǎng)絡(luò)復(fù)雜度术裸、減小計算量倘是、減小內(nèi)存消耗等等。3袭艺、擴大感受野 4搀崭、
可以實現(xiàn)不變性,其中不變形性包括猾编,平移不變性瘤睹、旋轉(zhuǎn)不變性和尺度不變性。
平均池化:計算圖像區(qū)域的平均值作為該區(qū)域池化后的值答倡。
最大池化:選圖像區(qū)域的最大值作為該區(qū)域池化后的值轰传。
全局平均池化:可對特征圖實現(xiàn)降維,輸入為NCHW,輸出為NC11,選特征圖的平均值作為整幅特征圖的輸出瘪撇,可直接輸入給softmax做分類
全局最大池化:選特征圖的最大值作為整幅特征圖的輸出
重疊池化:重疊池化就是获茬,相鄰池化窗口之間有重疊區(qū)域
空間金字塔池化(Spatial Pyramid Pooling):它將一個pooling變成了多個scale的pooling。用不同大小池化窗口作用于上層的卷積特征倔既。也就是說 spatital pyramid pooling layer就是把前一卷積層的feature maps的每一個圖片上進行了3個卷積操作恕曲,并把結(jié)果輸出給全連接層。其中每一個pool操作可以看成是一個空間金字塔的一層渤涌。
空間金字塔池化可以把任意尺度的圖像的卷積特征轉(zhuǎn)化成相同維度佩谣,這不僅可以讓CNN處理任意尺度的圖像,還能避免cropping和warping操作实蓬,導(dǎo)致一些信息的丟失茸俭,具有非常重要的意義。
14.Resnet的結(jié)構(gòu)特點以及解決的問題是什么
ResNet的動機在于認為擬合殘差比直接擬合潛在映射更容易優(yōu)化瞳秽;結(jié)構(gòu)特點就是引入了殘差塊結(jié)構(gòu)瓣履,讓網(wǎng)絡(luò)不在直接擬合F(x)而是擬合F(x)=H(x)-X, ResNet中,所有的Residual Block都沒有pooling層练俐,降采樣是通過conv的stride=2實現(xiàn)的ResNet要解決的其實是深度神經(jīng)網(wǎng)絡(luò)的退化問題袖迎,即為在訓(xùn)練集上準確率下降的現(xiàn)象,過擬合時候準確率是應(yīng)該上升的。即為不是由過擬合引起的plain net的梯度消失和梯度爆炸問題
15.Unet的結(jié)構(gòu)為什么要先下采樣燕锥,上采樣
U-Net想要利用跳過連接融合不同尺度的信息辜贵,其中的下采樣就是利用卷積神經(jīng)網(wǎng)絡(luò)來做的實現(xiàn)的是特征提取,而上采樣通過反卷積來做归形。
16.ResnetV1到ResnetV2的改進是什么托慨?Resnet怎么完成下采樣過程的?
改進了Res unit暇榴,繼續(xù)保持了恒等映射厚棵,并且采用BN層作為預(yù)激活函數(shù)加強對模型的正則化;ResNet中的下采樣是通過改變卷積核的步長來調(diào)節(jié)的蔼紧,其中無論是在Basicblock或者Bottleneck中都是在3x3的卷積核中進行的婆硬,而且是在每一個stage的第一個殘差單元中進行的
17.FPN的結(jié)構(gòu)特點
自然地利用了CNN中每一層輸出內(nèi)在的多尺度特征,即為金字塔形式奸例,主要采用Top-Down和橫向連接以此融合具有高分辨率的淺層layer和具有豐富語義信息的深層layer彬犯。這樣就實現(xiàn)了從單尺度的單張輸入圖像,快速構(gòu)建在所有尺度上都具有強語義信息的特征金字塔
18.ROI pooling和ROI align的區(qū)別
RolPooling可以使生成的候選框region proposal映射產(chǎn)生固定大小的feature map查吊,
其中最大地區(qū)別谐区,RolPooling采用最鄰近插值法,ROI align采用地是雙線性插值逻卖,在進行小目標物體檢測地時候宋列,后者會更精確。
19.簡單說下AlexNet箭阶、Vgg虚茶、ResNet戈鲁、DenseNet仇参、GoogleNet的特色是什么
網(wǎng)絡(luò)逐漸加深,其中
AlexNet:首次采用了dropout data augmentation, LRN(local response normalizetion)解決過擬合婆殿,采用了Relu作為激活函數(shù)诈乒,收斂速度加快,并且使用了Dropout來防止過擬合。Overlapping Pooling:利用pooling的步長小于尺寸來實現(xiàn)
Vgg:采用較小的卷積核婆芦,替代大卷積核怕磨。增加了網(wǎng)絡(luò)的非線性,減少了參數(shù)量消约,使得網(wǎng)絡(luò)的深度更深肠鲫。但是更深的網(wǎng)絡(luò)深度增加了模型的性能,且vgg中也采用了11的卷積但是其不像Inception里面采用11的卷積整合通道或粮,可以理解成只是進一步引入非線性导饲,增加網(wǎng)路的深度
Googlenet:提出Inception的結(jié)構(gòu),也即是NIN(Network in Network),這種結(jié)構(gòu)可以改變通道數(shù)渣锦,參數(shù)減少模型除了在深度上增加硝岗,還增加了網(wǎng)絡(luò)的寬度
ResNet:引入殘差結(jié)構(gòu),使用這種跳過連接袋毙,是的更深層的網(wǎng)絡(luò)可有效訓(xùn)練
DenseNet:引入密集連接型檀,使用來自當(dāng)前層之前的所有層的信息,DenseNet中的dense connectivity就是一種升級版的shortcut connection
20.怎么計算感受野听盖,怎么增加感受野**
其中對于第一層j=r=1,j表示特征圖輸出之間的間隔胀溺,
下采樣卷積和擴張卷積可以增加感受野的大小。
擴張卷積:也被稱為空洞卷積或者膨脹卷積皆看,是在標準的卷積核中注入空洞月幌,以此來增加模型的感受野(reception field)。相比原來的正常卷積操作悬蔽,擴張卷積多了一個參數(shù): dilation rate扯躺,指的是卷積核的點的間隔數(shù)量,比如常規(guī)的卷積操作dilatation rate為1蝎困。
21.為什么卷積神經(jīng)網(wǎng)絡(luò)適合于做視頻和圖像录语,還能用于其它領(lǐng)域嗎?
卷積神經(jīng)網(wǎng)絡(luò)具有天然的局部連接和權(quán)值共享的特性禾乘∨觳海可以降低計算量,應(yīng)對參數(shù)量巨大的問題始藕。
22.CNN中能夠自然起到防止過擬合的辦法
卷積天然具有稀疏連接和權(quán)重共享的特點蒲稳、可以降低參數(shù)量,防止過擬合伍派,提升模型的泛化能力江耀。除了卷積層的這兩個特點之外,池化層可以降低網(wǎng)絡(luò)參數(shù)诉植,也可以降低網(wǎng)絡(luò)的過擬合
23.CNN中的感受野和權(quán)值共享是什么意思祥国?
24.BN層的作用,為什么有這個作用晾腔?在訓(xùn)練和測試時有什么不同舌稀,在測試時怎么使用?
BN也即Batch Normalization灼擂,批規(guī)范化壁查。在深度網(wǎng)絡(luò)中每一層的輸入分布都會因為前層的參數(shù)變化而改變,這會導(dǎo)致我們不得不采用更低的學(xué)習(xí)率以及更小心的初始化等方式剔应,減慢了模型的訓(xùn)練睡腿。BN就是通過每一個mini batch的規(guī)范化解決這一問題康谆。
以CNN為例,每一層輸入的數(shù)據(jù)多為 NWHC的張量何恶,N表示batch size孽锥,WH是特征圖大小,C指的是特征數(shù)或通道數(shù)细层。BN層對每個通道對應(yīng)的NWH的數(shù)據(jù)進行歸一化惜辑,并進行變化重構(gòu),變化重構(gòu)參數(shù) γ \gammaγ和β \betaβ是可學(xué)習(xí)的疫赎,首先對輸入數(shù)據(jù)取均值和標準差盛撑,并進行歸一化,? \epsilon?是防止除0的很小數(shù)值捧搞,然后對歸一化后的數(shù)據(jù)進行變換重構(gòu)抵卫。
BN層在訓(xùn)練階段,對每一批mini-batch的數(shù)據(jù)分別求均值與方差用于規(guī)范化胎撇,但在測試階段介粘,這一值使用的是全期訓(xùn)練數(shù)據(jù)的均值方差,也即模型訓(xùn)練到當(dāng)前狀態(tài)所有數(shù)據(jù)的均值方差晚树,這個數(shù)據(jù)是在訓(xùn)練過程中通過移動平均法得到的姻采。
25.BN層做預(yù)測時候,方差均值怎么算的爵憎,Online learning的時候怎么算的慨亲?
BN層在訓(xùn)練階段,對每一批mini-batch的數(shù)據(jù)分別求均值與方差用于規(guī)范化宝鼓,但在測試階段刑棵,這一值使用的是全期訓(xùn)練數(shù)據(jù)的均值方差,也即模型訓(xùn)練到當(dāng)前狀態(tài)所有數(shù)據(jù)的均值方差席函,這個數(shù)據(jù)是在訓(xùn)練過程中通過移動平均法得到的铐望。
26.SequeezeNet:
網(wǎng)絡(luò)設(shè)計方面:
1冈涧、11卷積替換33卷積茂附,減少參數(shù)量
2、減少33卷積的輸入通道數(shù)督弓,此處使用的是11的卷積來實現(xiàn)降維营曼,好處是:減少運算量,同時當(dāng)通道平衡時愚隧,可以減少MAC
3蒂阱、延遲降采樣锻全,可以提高網(wǎng)絡(luò)精度
架構(gòu)上:Fire Moudle 由Squeeze和expand層來實現(xiàn)
27.MobileNetV1
使用深度可分離卷積構(gòu)建輕量級神經(jīng)網(wǎng)絡(luò):
DW:每個卷積核應(yīng)用在一個通道上。
DW:組合通道卷積的輸出
1.使用深度可分離卷積代替?zhèn)鹘y(tǒng)卷積
DW卷積輸出的特征之間沒有信息交流录煤,信息流通不暢鳄厌,DW進行濾波操作
PW卷積可實現(xiàn)通道特征的信息交流,PW卷積負責(zé)通通道轉(zhuǎn)換
2.使用步長為2的卷積替換池化層
MobileNetV2的改進和優(yōu)化:
1妈踊、反轉(zhuǎn)殘差:由于DW卷積提取特征本身較少了嚎,如果采用傳統(tǒng)的先壓縮后擴張的方式,無法提取豐富的特征廊营,MobileNetV2采用先擴張再壓縮的方式(具體的操作是在DW卷積之前采用了PW卷積)歪泳,保證網(wǎng)絡(luò)提取更多的特征
2、線性瓶頸:為了方式relu對提取特征的破壞露筒,MobileNetV2在殘差塊的逐元素級求和之前不再使用relu作為激活函數(shù)呐伞,而是使用線性激活函數(shù)來替代,防止relu破壞特征慎式。
28.什么是Soft attention和****hard attention?
29.Dropout的機制伶氢,為什么能抑制過擬合?
Dropout的核心思想是訓(xùn)練時以一定的概率p(通常是50%)關(guān)閉隱藏層神經(jīng)元的輸出瘪吏,也就是輸出為0鞍历。這種策略可以從不同角度理解:首先這使得每次訓(xùn)練的模型并不是相同的結(jié)構(gòu),可以認為是原網(wǎng)絡(luò)的子集肪虎,最終的輸出是這些不同模型不同結(jié)構(gòu)共同作用的結(jié)果(類似于集成學(xué)習(xí)中Bagging的策略)劣砍;另外Dropout方法可以讓神經(jīng)元之間減小依賴性,因為隨機的關(guān)閉可以使得神經(jīng)元之間不會總是同時作用扇救。
綜合來看刑枝,BN層在訓(xùn)練和測試的主要區(qū)別在于:訓(xùn)練時的均值方差來源于當(dāng)前的mini-batch數(shù)據(jù),而測試時迅腔,則要使用訓(xùn)練使用過的全部數(shù)據(jù)的均值方差鹉究,這一點訓(xùn)練時就通過移動均值方法計算并保存下來了叹谁;Dropout方法的訓(xùn)練測試區(qū)別在于:訓(xùn)練時隨機的關(guān)掉部分神經(jīng)元,而測試時所有神經(jīng)元都工作但都要乘上系數(shù)(可以理解為訓(xùn)練了很多子模型,測試時要求他們加權(quán)求和的結(jié)果,可以按照集成學(xué)習(xí)中的bagging來理解)碉渡。
30.神經(jīng)網(wǎng)絡(luò)中權(quán)重參數(shù)為什么不能初始化為0,會發(fā)生什么永丝?
當(dāng)神經(jīng)網(wǎng)絡(luò)中權(quán)重參數(shù)初始化為0翰绊,在反向傳播更新參數(shù)的過程中,會導(dǎo)致每一層的參數(shù)相同腋逆,那么隱層節(jié)點數(shù)目再多也相當(dāng)于一個婿牍,神經(jīng)網(wǎng)絡(luò)失去意義,這種現(xiàn)象叫做隱層神經(jīng)元的對稱性惩歉,通常是權(quán)重參數(shù)隨機初始化等脂,b初始化為0俏蛮,可以使得參數(shù)都能得到更新。
我們也可以發(fā)現(xiàn)上遥,梯度的消失爆炸不僅與激活函數(shù)的導(dǎo)數(shù)有關(guān)搏屑,還與各層權(quán)重相乘有關(guān)。
31.為什么訓(xùn)練時候在計算資源允許的情況下粉楚,使用較大的batch
從BN的角度理解睬棚,BN訓(xùn)練時候使用batch的均值和方差代表數(shù)據(jù)的分布,測試時候使用全量數(shù)據(jù)的均值和方差解幼,當(dāng)一批數(shù)據(jù)較大的時候抑党,可以更好的代表訓(xùn)練集的分布,縮減了與全量數(shù)據(jù)的差別撵摆。