CNN 有哪些大膽又新奇的網(wǎng)絡(luò)結(jié)構(gòu)?
編輯:憶臻
https://www.zhihu.com/question/337470480
本文僅作為學(xué)術(shù)分享,如果侵權(quán),會(huì)刪文處理
機(jī)器學(xué)習(xí)算法與自然語言處理報(bào)道
編輯:憶臻
https://www.zhihu.com/question/337470480
本文僅作為學(xué)術(shù)分享,如果侵權(quán),會(huì)刪文處理
機(jī)器學(xué)習(xí)算法與自然語言處理報(bào)道
卷積神經(jīng)網(wǎng)絡(luò)有哪些大膽又新奇的網(wǎng)絡(luò)結(jié)構(gòu)?
你大概已經(jīng)見慣了基本的卷積結(jié)構(gòu),對(duì)殘差網(wǎng)絡(luò)也了如指掌,對(duì)分組卷積也爛熟于心,也知道模型壓縮的一些技巧,不過今天這里要說的,大部分同學(xué)可未必知道噢。
大眾的模型結(jié)構(gòu)咱們不講,今天從卷積方式,通道變化,拓?fù)浣Y(jié)構(gòu)等各方面給大家介紹幾個(gè)模型,立志于在這個(gè)方向發(fā)文章的同學(xué),可要看仔細(xì)了。
1 漸變的寬度-金字塔結(jié)構(gòu)
這是一個(gè)通道數(shù)的變化方式相關(guān)的網(wǎng)絡(luò)結(jié)構(gòu)。
Pyramidal Residual Networks
通常來說,網(wǎng)絡(luò)結(jié)構(gòu)的通道數(shù)量變化是突變的,那有沒有網(wǎng)絡(luò)的增加是緩慢變化的呢?這就是金字塔結(jié)構(gòu)了,名為Pyramidal Residual Networks。
大家都知道,CNN等結(jié)構(gòu)在特征圖尺度減小的時(shí)候,通常會(huì)隨之增加特征圖的通道數(shù)目來增加高層的表達(dá)能力,這是模型性能的保證,大部分的模型其特征圖通道數(shù)的增加是跳變的,比如從128增加到256。
之前我們講述過隨機(jī)刪減深度的殘差網(wǎng)絡(luò)證明了深度殘差網(wǎng)絡(luò)的深度其實(shí)沒有想象中那么深,在文章“Residual networks behave like ensembles of relatively shallow networks[C]”中的研究也表明刪除掉一些block并不會(huì)顯著降低性能,但是降采樣的網(wǎng)絡(luò)層除外。
本篇文章基于這個(gè)現(xiàn)象,認(rèn)為要降低降采樣的敏感性,必須要讓通道的變化是緩慢的,即隨著層數(shù)增加,每一層都慢慢增加寬度,命名為金字塔結(jié)構(gòu),如下。
這里a圖是線性增加,b圖是指數(shù)級(jí)增加。
那么到底性能如何呢?首先看下訓(xùn)練曲線對(duì)比:
這里兩個(gè)網(wǎng)絡(luò)的參數(shù)差不多,都是1.7M左右,從曲線上看,性能也相當(dāng)。
另一個(gè)要關(guān)注的問題是,金字塔ResNet有沒有實(shí)現(xiàn)它的初衷,即改善降低分辨率的網(wǎng)絡(luò)層被刪除時(shí)帶來的性能下降,結(jié)果如下:
從結(jié)果看來,錯(cuò)誤率確實(shí)降低了。更加具體的實(shí)驗(yàn)結(jié)果,大家自己去看論文吧。
2 分支眾多-分形結(jié)構(gòu)
這是一個(gè)多分支結(jié)構(gòu)相關(guān)的網(wǎng)絡(luò)結(jié)構(gòu)。
FractalNet
殘差網(wǎng)絡(luò)可以使得上千層的網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)成為可能,但并不是只有殘差網(wǎng)絡(luò)可以做到,F(xiàn)ractalNet(分形網(wǎng)絡(luò))便是如此。
分形是一個(gè)數(shù)學(xué)概念,指的是具有以非整數(shù)維形式填充空間的形態(tài)特征,也就是說它的有效維度不是整數(shù)。不過我們這里可以不用關(guān)注它的數(shù)學(xué)定義,而是關(guān)注它的,分形幾何結(jié)構(gòu)的一部分具有和整體相似的結(jié)構(gòu),即自相似,如下圖形:
分形網(wǎng)絡(luò),顧名思義也是這樣的特點(diǎn)了,局部的結(jié)構(gòu)和全局相似,如下圖:
可以看到包含了各種長度不同的子路徑,從左到右:
第一列路徑只有一條,長度l。
第二列路徑兩條,長度l/2。
第三列路徑四條,長度l/4。
第二列路徑八條,長度l/8。
它與殘差網(wǎng)絡(luò)的不同之處在于,綠色模塊表示的非線性變換,即下一層不可能直接得到上一層的信號(hào),而是經(jīng)過了變換。
這樣的一種包含了不同深度的子網(wǎng)絡(luò),與之前提過的stochastic depth有異曲同工之妙,它也可以被看作是不同深度的網(wǎng)絡(luò)的ensemble。
上面展示了兩種路徑,訓(xùn)練時(shí)混合使用。
Global: 只選擇一條路徑,且是同一列,這條路徑就是獨(dú)立的強(qiáng)預(yù)測(cè)路徑。
Local:包含多個(gè)路徑,但是保證每一層至少要有一個(gè)輸入。
那么結(jié)果如何呢?
如上,與各種網(wǎng)絡(luò)進(jìn)行了對(duì)比,性能很好。在添加了drop-path技術(shù)后,還有極大提升,并且單獨(dú)只拿出其中最深的一條路徑所得的網(wǎng)絡(luò),都有接近最好的模型的性能。
與殘差網(wǎng)絡(luò)的相關(guān)研究一樣,分形網(wǎng)絡(luò)的研究也表明路徑的有效長度才是訓(xùn)練深度網(wǎng)絡(luò)的真正影響因素,不論是分形網(wǎng)絡(luò),還是殘差網(wǎng)絡(luò),都擁有更短的有效的梯度傳播路徑,從而使得深層網(wǎng)絡(luò)訓(xùn)練更不容易過擬合。
3 一切可連-環(huán)形網(wǎng)絡(luò)
這是一個(gè)基于跳層的復(fù)雜拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)。
CliqueNet
DenseNet通過復(fù)用不同層級(jí)的特征圖,提高了通道的利用率,不過它的連接是前向的,即信息只能從淺層向深層傳遞,而CliqueNet則更進(jìn)一步,信息的傳遞是雙向的。
結(jié)構(gòu)如上圖所示,CliqueNet不僅有前傳的部分,還有后傳,這種網(wǎng)絡(luò)架構(gòu)同時(shí)受到了RNN等循環(huán)網(wǎng)絡(luò)和注意力機(jī)制的啟發(fā),使得特征圖重復(fù)使用而且更加精煉。
CliqueNet的訓(xùn)練包含兩個(gè)階段。第一個(gè)階段與 DenseNet 相同,即圖中的Stage-1,此時(shí)淺層特征向深層進(jìn)行傳遞,這可以視為初始化過程。
第二個(gè)階段中每一層不僅接受前面所有層的特征圖,也接受后面層級(jí)的特征圖反饋。可以看出這是一種循環(huán)的反饋結(jié)構(gòu),可以利用更高級(jí)視覺信息來精煉前面層級(jí)的特征,實(shí)現(xiàn)空間注意力的效果。實(shí)驗(yàn)結(jié)果表明,它有效地抑制了背景和噪聲的激活。
整體的網(wǎng)絡(luò)架構(gòu)如上:網(wǎng)絡(luò)由很多的block組成,每一個(gè)block的stage II的特征通過global pool串接生成最終的特征。與DenseNet的不同之處在于,隨著網(wǎng)絡(luò)架構(gòu),每一個(gè)block的輸入輸出特征圖不需要增加,從而更加高效,結(jié)果如下:
從上表可以看出,參數(shù)量和精度是非常具有優(yōu)勢(shì)的。
4 不規(guī)則的卷積核-可變形網(wǎng)絡(luò)
這是一個(gè)卷積核的形狀相關(guān)的網(wǎng)絡(luò)結(jié)構(gòu)。
Deformable Convolution
卷積操作本身具有非常固定的幾何結(jié)構(gòu),標(biāo)準(zhǔn)的卷積操作是一個(gè)非常規(guī)矩的采樣,通常是正方形,如果卷積核采用非規(guī)矩的采樣,即它的形狀不再是標(biāo)準(zhǔn)的方形,而是任意形狀,則稱之為可形變卷積(Deformable Convolution)。
要描述上面的卷積核,不僅僅需要權(quán)重系數(shù),還需要每一個(gè)點(diǎn)的偏移量,可變形卷積的思想最早以Active Convolution的形式被提出。
在Active Convolution中,卷積核的各個(gè)分量都有自己的偏移量,對(duì)于一個(gè)3*3的卷積,就包含了18個(gè)系數(shù),其中X方向和Y方向的偏移量各9個(gè)。不過各個(gè)通道共享該系數(shù),所以與輸入輸出通道數(shù)無關(guān)。
對(duì)于輸入通道為M,輸出通道為N,使用3*3的卷積的Active Convolution,權(quán)重參數(shù)量為M*N*3*3,偏移參數(shù)量為2*3*3,遠(yuǎn)遠(yuǎn)小于權(quán)重參數(shù)量,所以增加的參數(shù)量幾乎可以忽略不計(jì)。
在Deformable convolutional networks,每一個(gè)通道不共享偏移量,偏移參數(shù)量為2*M*3*3,增加的參數(shù)量比Active Convolution更多,但是相比卷積核權(quán)重參數(shù)量M*N*3*3,仍然小很多,所以不會(huì)大幅度增加模型的大小,而且實(shí)際實(shí)現(xiàn)時(shí)可以對(duì)輸出通道進(jìn)行分組。
從上圖就可以看出可變形卷積有更靈活的感受野。
可變形卷積的實(shí)現(xiàn)只需要增加偏移量的學(xué)習(xí),實(shí)際就是多了一個(gè)offset層,給offset輸出通道數(shù)變量,我們還可以對(duì)輸出進(jìn)行分組,控制要學(xué)習(xí)的變形的種類。
最后看一下參數(shù)對(duì)比和性能。
實(shí)驗(yàn)了各個(gè)網(wǎng)絡(luò)層的結(jié)果,參數(shù)量的增加很小,性能也是提升的。具體的效果如何,大家不妨用自己的實(shí)驗(yàn)結(jié)果來驗(yàn)證。
5 測(cè)試可變的網(wǎng)絡(luò)-可分叉網(wǎng)絡(luò)
這是一個(gè)推理時(shí)動(dòng)態(tài)變化的網(wǎng)絡(luò)結(jié)構(gòu)。
BranchyNet
通常來說模型訓(xùn)練完之后結(jié)構(gòu)就是固定的,測(cè)試時(shí)圖片沿著固定的通路進(jìn)行計(jì)算。然而測(cè)試樣本本身有不同的難度,簡單的樣本只需要少量的計(jì)算量就可以完成任務(wù),困難的樣本則需要更多的計(jì)算量。
如上圖所示,它在正常網(wǎng)絡(luò)通道上包含了多個(gè)旁路分支,這樣的思想是基于觀察到隨著網(wǎng)絡(luò)的加深,表征能力越來越強(qiáng),大部分簡單的圖片可以在較淺層時(shí)學(xué)習(xí)到足以識(shí)別的特征,如上圖中的Exit 1通道。一些更難的樣本需要進(jìn)一步的學(xué)習(xí),如上圖中的Exit 2通道,而只有極少數(shù)樣本需要整個(gè)網(wǎng)絡(luò),如Exit3通道。這樣的思想可以實(shí)現(xiàn)精度和計(jì)算量的平衡,對(duì)于大部分樣本,可以用更小的計(jì)算量完成任務(wù)。
在訓(xùn)練的時(shí)候,每一個(gè)通道都會(huì)對(duì)損失有貢獻(xiàn),越靠近淺層的網(wǎng)絡(luò)權(quán)重越大。多通道的損失不僅增強(qiáng)了梯度信息,也在一定程度上實(shí)現(xiàn)了正則化。
將BranchyNet的設(shè)計(jì)思想用于LeNet,AlexNet,ResNet結(jié)構(gòu)后,在維持性能的前提下,加速效果明顯。
對(duì)于擁有N個(gè)分支的網(wǎng)絡(luò),需要的就是N-1個(gè)閾值,因?yàn)樽詈笠粋€(gè)分支不需要閾值。
LeNet系列網(wǎng)絡(luò)可以讓超過90%的樣本在第一個(gè)分支提前終止,AlexNet提前終止樣本比例也超過一半,ResNet提前終止樣本比例超過了40%。
卷積之上的新操作
一般認(rèn)為,卷積核的作用是為了獲取局部特征,這些特征組合在一起,模型就很容易識(shí)別。固定大小的卷積核會(huì)獲得固定大小的特征。
我們能在圖像上發(fā)現(xiàn)這一點(diǎn),卷積核會(huì)把對(duì)應(yīng)大小的圖像的像素值變?yōu)橐粋€(gè)值,我們將這個(gè)值稱為這一特定的區(qū)域的特征。
但是在實(shí)際任務(wù)中,我們并不清楚究竟采用多大的卷積核,我們可以將卷積的大小作為超參數(shù)去調(diào)節(jié),但同時(shí)也要調(diào)節(jié)它的stride,zero padding的區(qū)域大小。另外,一張圖片的特征也不太可能是一樣大小,人臉識(shí)別中眉毛的特征區(qū)域要比眼睛要小。為了更好的解決這兩個(gè)問題,我們?cè)谕粚蛹?jí)中使用不同大小的卷積核,來起到不同大小的特征區(qū)域融合的效果,同時(shí)也方便網(wǎng)絡(luò)自由的選取適合任務(wù)的卷積核。
這樣我們就得到了著名的Inception Net。
如圖,我們對(duì)同一個(gè)輸入使用不同尺寸大小的卷積核。
值得注意最左邊1*1的卷積,從數(shù)學(xué)上來說,它什么也沒有做,因?yàn)樗坪踔皇且来斡成涞矫總€(gè)像素點(diǎn),但是它的操作在于depth這個(gè)維度上,因?yàn)槲覀円呀?jīng)知道輸出尺寸的深度取決于卷積核的數(shù)量,通過1*1的卷積核我們可以在不改變長寬的前提下,改變其深度,可以看作是一種降維。
卷積操作會(huì)作用于圖片的每個(gè)通道上,也就是說,同一個(gè)輸入圖片里不同的通道也是參數(shù)共享的,這樣的共享可能會(huì)造成一定的限制,有些特征會(huì)對(duì)通道更為敏感,如果我們想照顧到不同的通道具有不同的特征需要提取,就要使用不同的卷積核,那么就可以使用被稱為depth-wise的通道分離再使用卷積的操作。
如圖,對(duì)于彩***像,我們對(duì)每個(gè)通道分開進(jìn)行卷積操作,每個(gè)通道都使用一個(gè)卷積核,最后再融合起來,保證了維度不變。
這也是Xception所做的事情。自然的,對(duì)于每個(gè)通道,我們?nèi)匀豢梢赃M(jìn)行多個(gè)卷積核并存。
我們一般見到的卷積核都是正方形的,為了有效適配任務(wù),我們也可以將其設(shè)計(jì)為長方形,進(jìn)行卷積運(yùn)算的過程都是一樣的,只是可能會(huì)需要設(shè)置左右和上下的步長。即便在Inception中,使用不同大小的卷積核,其形狀也是固定的,如果我們的卷積核能夠良好的適應(yīng)圖片中需要提取的特征形狀,那么可能相比Inception的效率要提高不少。
所以把卷積操作的一一映射相加修改為,卷積核計(jì)算的不再是投影的區(qū)域,而是每一個(gè)映射點(diǎn)都存在偏移,我們把這樣的卷積叫做變形卷積(deformable convolution)
如圖,左邊為正常的卷積操作,可以看出正方形的卷積核包含的信息會(huì)漏掉特征和包含無用特征,而變形卷積操作則因?yàn)闆]有形狀的限制,可以非常自由的選取所需要的特征。
人工智能
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。