卷積神經(jīng)網(wǎng)絡(luò)CNN的設(shè)計
eras為例來說明转培。我們可以用5步 + 4種基本元素 + 9種基本層結(jié)構(gòu)贡避,這5-4-9模型來總結(jié)。這個博客特別適合小白入門簡單粗暴地建立一個網(wǎng)絡(luò)
知乎——CNN 網(wǎng)絡(luò)應(yīng)該如何設(shè)計?
回答1:網(wǎng)絡(luò)多一層和少一層, 好像沒什么區(qū)別. 但這樣一層層測試調(diào)參未免太狗血了.一種挺好的方法是:
設(shè)計一種或幾種block(這block由幾層網(wǎng)絡(luò)構(gòu)成), 然后堆這種block.
這樣看起來舒服多了,參考resnet網(wǎng)絡(luò)結(jié)構(gòu)(其實很多優(yōu)秀網(wǎng)絡(luò)都是這樣的設(shè)計)至于每層的通道數(shù), VGG有個設(shè)定是: 輸出的feature
map大小相同時,卷積核個數(shù)也相同輸出的feature map大小減半(被stride=2的卷積或Pooling后),
則卷積核數(shù)翻倍.這樣讓每層的時間花銷相同.而通道數(shù)的大小如何確定? 基于對應(yīng)數(shù)據(jù)集, 參考其他優(yōu)秀模型的設(shè)置. 記得對比網(wǎng)絡(luò)參數(shù)大小 .
回答2:建議在pre-trained model 基礎(chǔ)之上進行改進。
回答3:我的經(jīng)驗是领舰,要知道什么樣的結(jié)構(gòu)對具體任務(wù)有作用,最有效的辦法就是去做對比實驗迟螺,從而體會不同結(jié)構(gòu)對網(wǎng)絡(luò)性能的影響(參數(shù)量/計算量/訓(xùn)練穩(wěn)定性/最終精度)提揍。例如想找到kernel_size的最優(yōu)值,只能通過控制變量煮仇,對比實驗。
回答4:流程:
1-找baseline先找一個前人的基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)谎仲,作為你設(shè)計的基礎(chǔ)浙垫。可以是resnet郑诺,densenet夹姥,Alexnet這種非常經(jīng)典的,且訓(xùn)練過程已經(jīng)被大家復(fù)現(xiàn)過的辙诞。
2-調(diào)訓(xùn)練超參訓(xùn)練超參指的是: learning_rate, num_epoch, weight_decay, momentum還有l(wèi)earning_rate的下降方式以及其涉及到的所以超參等等辙售。個人體會是,weight_decay 影響比較大飞涂,相對獨立旦部,也調(diào)起來也相對容易些,可以先調(diào)较店;learning_rate以及它的下降方法影響也比較大士八,但是這里相互關(guān)聯(lián)的量很多,調(diào)起來比較費時費力梁呈;還有num_epoch婚度,這個量也比較關(guān)鍵,調(diào)num_epoch的時候基本都得等到訓(xùn)練結(jié)束看結(jié)果官卡,不太好像調(diào)其他參數(shù)那樣蝗茁,看情況不好就提前終止醋虏。
3-調(diào)結(jié)構(gòu)在當前基礎(chǔ)上找到一組合理的超參之后,就可以把這組超參固定哮翘,之后就可以進入到題主所想研究的調(diào)整結(jié)構(gòu)了颈嚼。這里可以調(diào)的東西很多,對于初學(xué)者來說忍坷,如果想了解網(wǎng)絡(luò)中的每一層對結(jié)構(gòu)的作用粘舟,其實可以逐層修改網(wǎng)絡(luò)的結(jié)構(gòu)。從而體會不同的layer_type和kernel_size等的影響佩研。
4-再調(diào)訓(xùn)練超參因為其實不同的網(wǎng)絡(luò)結(jié)構(gòu)對應(yīng)的最優(yōu)訓(xùn)練超參不是一樣的柑肴。這一套流程走下來,就算是對于訓(xùn)練參數(shù)量在在10M以下的模型旬薯,CIFAR10分類來說晰骑,也需要很多卡很多天啦。所以設(shè)計網(wǎng)絡(luò)結(jié)構(gòu)還真是一件非常費事費力的事情绊序。
如何設(shè)計CNN網(wǎng)絡(luò)架構(gòu)資料匯總
在inception和resnet網(wǎng)絡(luò)提出并相對完善以后硕舆,網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計就不再爆發(fā)式出現(xiàn)了,這兩大類網(wǎng)路涵蓋了大部分應(yīng)用的卷積網(wǎng)絡(luò)結(jié)構(gòu)骤公。
對于大多數(shù)應(yīng)用來說抚官,應(yīng)該使用遷移學(xué)習(xí)而不是從頭訓(xùn)練網(wǎng)絡(luò)。但是阶捆,你需要抉擇保留哪些網(wǎng)絡(luò)層凌节,以及重新訓(xùn)練哪些層。這取決于你的數(shù)據(jù)是什么樣的洒试。你的數(shù)據(jù)與預(yù)訓(xùn)練的網(wǎng)絡(luò)(通常在ImageNet上預(yù)訓(xùn)練)的數(shù)據(jù)越相似倍奢,你應(yīng)該重新訓(xùn)練的層數(shù)越少,反之亦然垒棋。例如卒煞,你想分類圖片中是否包含葡萄,所以你有一堆有葡萄的和一堆沒有的圖像叼架。這些圖像與ImageNet中的圖像非常相似畔裕,因此你只需重新訓(xùn)練最后幾層,也許就是全連接層碉碉。然而柴钻,如果你想對拍攝于外太空的圖片,分類是否包含行星垢粮,那么這樣的數(shù)據(jù)與ImageNet的數(shù)據(jù)有很大不同贴届,所以你需要重新訓(xùn)練低層的卷積層。簡而言之,遵循以下規(guī)則:
知乎——深度學(xué)習(xí)如何優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)|架構(gòu)毫蚓?*景略集智的回答超詳細keras建立訓(xùn)練測試CNN步驟U技!
一元潘、CNN設(shè)計及起源及一些資料
1: CNN結(jié)構(gòu)的演變+幾種典型的網(wǎng)絡(luò)介紹+CNN設(shè)計準則
2:https://www.jiqizhixin.com/articles/2018-05-30-7(從Inception v1到Inception-ResNet畔乙,一文概覽Inception家族的「奮斗史」)
3:https://blog.csdn.net/guoyunfei20/article/details/78122504(AlexNet)
4:http://210.28.132.67/weixs/book/CNN_book.html(一本講CNN的書)
5:https://www.zhihu.com/question/19743656/answer/609887575(深度學(xué)習(xí)如何優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)|架構(gòu)?)
二翩概、設(shè)計準則
1:https://www.cnblogs.com/arbalest/p/basic_CNN_design_method.html(簡單CNN的基本網(wǎng)絡(luò)元素及其設(shè)計原則)
2:http://www.reibang.com/p/628d7099e019(關(guān)于CNN圖像分類的一份綜合設(shè)計指南)
3:http://www.reibang.com/p/f7642437d55a(14種模型設(shè)計幫你改進你的卷積神經(jīng)網(wǎng)絡(luò)(CNN))
三牲距、目前比較火的網(wǎng)絡(luò)解析
1:https://blog.csdn.net/u013181595/article/details/80990930
2: http://www.reibang.com/p/93990a641066
3: https://blog.csdn.net/maliang_1993/article/details/82084983(U-Net 網(wǎng)絡(luò)結(jié)構(gòu)理解)
4: https://zhuanlan.zhihu.com/p/53521053 (那些用字母開頭的Net:U-Net 、V-Net钥庇、M-Net)
5: https://zhuanlan.zhihu.com/p/59217276(U-Net 和 ResNet:長短跳躍連接的重要性(生物醫(yī)學(xué)圖像分割))
2021.01.14如何設(shè)計卷積神經(jīng)網(wǎng)絡(luò)
1如何設(shè)計卷積神經(jīng)網(wǎng)絡(luò)牍鞠?
參考資料1:想入門設(shè)計卷積神經(jīng)網(wǎng)絡(luò)?這是一份綜合設(shè)計指南 內(nèi)容總結(jié):
1.準確率评姨,速度难述,所占內(nèi)存大小 三者的權(quán)衡——選擇一個合適的CNN模型。
2.一些新穎的吐句,加快減少內(nèi)存消耗和運行時間的網(wǎng)絡(luò):Mobile Nets,XNOR net胁后,shufflenet等
3.網(wǎng)絡(luò)層數(shù),激活函數(shù)嗦枢,卷積核大小攀芯,空洞卷積,數(shù)據(jù)增強
4.優(yōu)化器與學(xué)習(xí)率:SGD能夠得到最好的準確率文虏,但是沒有Adam等優(yōu)化器那么自適應(yīng)地調(diào)節(jié)學(xué)習(xí)率的功能敲才,調(diào)學(xué)習(xí)率很麻煩。策略:以 Adam 作為開始择葡,它最容易使用:設(shè)置一個不太高的學(xué)習(xí)率,一般默認 0.0001剃氧,然后你通常會得到一些非常好的結(jié)果敏储。隨后你可以從零開始使用 SGD,或者使用 Adam朋鞍,中間換到 SGD已添,能夠以最容易的方式達到最好的準確率。
5.類別均衡
6.你的數(shù)據(jù)差別與ImageNet數(shù)據(jù)越大滥酥,需要改調(diào)的網(wǎng)絡(luò)層數(shù)和參數(shù)就越多更舞。ImageNet數(shù)據(jù)是類似于,有貓沒貓坎吻,貓狗缆蝉,有洋蔥沒洋蔥之類的。
參考資料2:怎樣設(shè)計最優(yōu)的卷積神經(jīng)網(wǎng)絡(luò)內(nèi)容總結(jié):
1.提升CNN表現(xiàn)的操作:增加圖片分辨率,增加網(wǎng)絡(luò)寬度刊头,增加網(wǎng)絡(luò)深度黍瞧,增加跳過連接(密集塊或殘差塊)
2.NAS神經(jīng)架構(gòu)搜索+隨機連接神經(jīng)網(wǎng)絡(luò):探索新的網(wǎng)絡(luò)架構(gòu)和神經(jīng)元連接方式(這個太遠了不需要做)
1.泛化能力:是很重要的一個模型評價標準。提升泛化能力:使用正則化手段例如dropout原杂。
2.summation 印颤,下采樣,maxout+ELUS穿肄,freeze-drop-path,循環(huán)學(xué)習(xí)率年局,bootstrapping
b 站視頻——設(shè)計CNN
part one 網(wǎng)絡(luò)深度的設(shè)計:網(wǎng)絡(luò)深度增加作用:非線性表達能力提升。
1.評估深度對模型性能的影響:層數(shù)越多線性區(qū)間越多咸产,更好地擬合矢否。實驗表明,錯誤率降低锐朴。
2.如何選擇網(wǎng)絡(luò)深度兴喂?根據(jù)一些工業(yè)界相關(guān)工作者的經(jīng)驗:從5——8層開始試驗。imagenet 比賽中焚志,2^5*7=224衣迷。一般不超過10層就能滿足工業(yè)界的一些要求。
3.深度實驗:一個復(fù)雜數(shù)據(jù)集vs一個簡單數(shù)據(jù)集酱酬,20分類壶谒。一個性能簡單的網(wǎng)絡(luò)vs一個高性能網(wǎng)絡(luò)。
網(wǎng)絡(luò)1:ALLCONV網(wǎng)絡(luò) 5-7層conv+1層全連接
網(wǎng)絡(luò)2:MobileNet10-16層
圖中看出增加卷積層(從5到7個卷積層)會提升準確率膳沽,但是7層再增加就出現(xiàn)了瓶頸汗菜。
MobileNet出現(xiàn)差不多的結(jié)果,從10層增加到16層時出現(xiàn)瓶頸挑社。
4.網(wǎng)絡(luò)深度增加帶來的問題:過擬合陨界,難以優(yōu)化,PLD,PLS等痛阻。解決方案:跳層連接等菌瘪。
part two 網(wǎng)絡(luò)寬度的設(shè)計:網(wǎng)絡(luò)寬度指的是每層卷積中濾波器filters(卷積核)的數(shù)量,例如VGG16網(wǎng)絡(luò)第一層的filter數(shù)量就是64個阱当,第一個卷積層的網(wǎng)絡(luò)寬度就是64 俏扩,第三個就是128,第五個就是256…為什么會增加卷積核的個數(shù):“隨著網(wǎng)絡(luò)的加深弊添,feathermap的長寬尺寸會變小录淡,也就是卷積提取的特征越具有代表性,所以后面的卷積層數(shù)需要增加油坝,所以卷積核的個數(shù)也是要增加的嫉戚,一般是成倍增加(有的會更根據(jù)實驗的情況來具體設(shè)置)刨裆。”
1.網(wǎng)絡(luò)寬度下降彼水,性能會下降崔拥。 更多的通道數(shù)可以學(xué)到更多的特征。所以要適當增加模型寬度凤覆。加寬比加深更能提升性能链瓦。但計算量提升也很快。
2.如何初始化CNN網(wǎng)絡(luò)寬度盯桦?答:高效率模型第一層寬度為32足夠慈俯。(根據(jù)經(jīng)典網(wǎng)絡(luò)結(jié)構(gòu)和工作經(jīng)驗得出的結(jié)論)
3.優(yōu)化:1*1卷積,分組卷積拥峦,跨層連接贴膘。
part three 提升模型泛化能力:正則化技術(shù)——DROPOUT and BN層的設(shè)計
1.類似技術(shù):dropconnect,maxout,stochastic pooling
2.訓(xùn)練開dropout,預(yù)測時關(guān)閉?:不一定要關(guān)略号,大部分時候關(guān)掉可以提升準確率刑峡。
3.dropout 相當于增加了噪聲,造成梯度的損失玄柠,訓(xùn)練時間更久才能收斂突梦。要采用更大的學(xué)習(xí)率和momentum ,加快收斂羽利。