日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tictoc正方形网络模型_Trick | 分类网络Trick大汇总

發布時間:2025/4/16 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tictoc正方形网络模型_Trick | 分类网络Trick大汇总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文介紹了訓練分類網絡的各個階段可以用來提升性能的Trick,也就是俗稱的調參術。結果頂級調參術的調教,ResNet- 50的top-1驗證精度在ImageNet上從75.3%提高到79.29%。這個結果比直接設計全新的網絡效果都要好。

1.baseline

現有的深度學習分類網絡,其主要整體框架如下圖所示:首先對數據進行預處理,并利用小批量隨機梯度下降的訓練模板,在每次迭代中,通過隨機抽取batch大小的預處理后圖像計算梯度并更新網絡參數,并經過K個epoch之后停止迭代。

1.預處理階段

訓練階段: - 對于每幅圖像,將其解碼成32位浮點原始像素值[0,255]。 - 對圖像進行隨機裁剪,裁剪后的長寬比范圍為[3/ 4,4 /3]和面積大小范圍為[8%,100%]的矩形區域,然后將裁剪后的區域調整為224 * 224的正方形圖像,分類網絡多用正方形輸入是為了使得網絡能夠對目標比例具有更強的泛化能力。 - 利用0.5的概率進行隨機翻轉。 - 在色調,飽和度和亮度三個方面進行均勻增強,比例可以從[0.6,1.4]均勻獲取。 - 為輸入圖像加入正太分布的白噪聲,用于提升分類網絡的魯棒性。 - 將RGB通道歸一化,分別減去123.68、116.779、103.939,再除以58.393、57.12、57.375。

測試驗證階段: 將每個圖像的短邊調整為256像素,同時保持其高寬比。接下來,在中心裁剪出224×224的區域,并對類似于訓練的RGB通道進行歸一化處理。且不執行任何隨機擴展。

權值初始化:

卷積層和全連接層:Xavier算法進行初始化,所有的偏置初始化為0。對于BN層,伽馬參數都初始化為1,β參數初始化為0。

3.訓練階段

利用大batch進行模型的訓練,會增加模型的并行性且降低通信成本,在訓練過程中,煉丹師的直觀感受更多的是大batch訓練的網絡會更加的穩定,主要原因是batch越大整個隨機梯度的方差就越小,噪聲越小,因為batch越大越能表征樣本空間。因此若是你使用大batch就可以按比例的增加學習率。然而有很多論文證明直接增大batch會導致訓練的收斂變慢,并且最終網絡的性能也會下降,table4中的第一行實驗結果也驗證了這一點。為了提升大batch的訓練性能,提出了以下三個訓練trick。

LR warmup

若你的訓練并沒有預訓練權重,而是使用隨機初始化權重的方式,那么在訓練的開始階段,由于初始化權重的隨機性若直接使用過大的學習率可能導致訓練前期的震蕩,因此我們可以使用warmup的方式,直白來說就是剛開始不要太劇烈,讓學習率在初始的N個epoch中通過預熱的方式緩慢上升到預先設定的初始值。

Zero γ BN層的可學習參數初始化。BN層的兩個科學系參數γ和β。最終經過BN層的輸出會在歸一化之后通過γ*x+β的方式重新學習到原始分布。而在初始化這兩個參數時,通常將γ初始化為1,β初始化為0。而如下圖所示是Resnet中常見的一個跳躍連接的子模塊,該子模塊的輸出分別為block(x)+x,分別來自于輸入的跳躍和block的輸出。而通常情況下每個block的最后一層都是BN層,用于歸一化。在這個過程中,我們將該BN層的γ參數也初始化為0,此時整個跳躍鏈接在初始階段就變成了恒等連接,這將使得網絡的初始深度變淺,收斂更快更穩定。

No bias decay 不要對bias參數利用衰減系數。通常在訓練網絡時會對每個可學習參數設置一個權重衰減系數,用于抑制過擬合。然而我們只對卷積權重和全連接層的參數進行衰減,對bias和BN層中的可學習參數不進行衰減。

所有啟發式的消融研究如表4所示。僅通過線性擴展學習率將批量大小從256個增加到1024個,導致前1名的準確率下降0.9%,而將上述3個Trick算法疊加在一起則彌補了這一差距。

4.網絡結構

模型調整是對網絡架構的一個小調整,比如改變特定卷積層的步長。這樣的調整通常幾乎不會改變計算復雜度,但可能會對模型精度產生不可忽視的影響。在本節中,我們將以ResNet為例研究模型調整的影響。

ResNet基礎結構: ResNet網絡由一個輸入主干、四個stage階段和一個最終輸出層組成,如圖所示。在輸入主干中,通過一個stride為2的卷積和stride為2的pooling將輸入圖降采樣四倍,并將通道增加到64個。從stage2開始每個stage都包含有stride為2的降采樣模塊,每個stage是由一個降采樣模塊和N個殘差塊構成。降采樣模塊如圖所示,由兩條并行的通道構成,實現了跳躍鏈接。殘差塊和降采樣模型的結構一樣,只是沒有stride為2的卷積。不同的resnet網絡結構上是相似的,就是每個stage中的殘差塊的個數不同。

然而殘差塊和降采樣塊在構建的時候存在一些小問題,本文提出了三種改進策略,有效提升了resnet網絡的性能。分別稱為resnet-B,resnet-C,resnet-D。

ResNet-B 它改變了ResNet的降采樣塊。觀察發現,在降采樣模塊中,pathA中的卷積忽略了輸入特征圖的四分之三,因為它使用的核尺寸為1*1,步長為2。ResNet-B在pathA中切換前兩個卷積的步長大小,如下圖所示,因此沒有信息被忽略。由于第二次卷積的核大小為3*3,所以pathA的輸出形狀保持不變。

ResNet-C 結果表明,卷積的計算成本是核的寬,高的乘積。一個7*7卷積比一個3*3卷積貴5.4倍。因此,這個微調將輸入主干中的7*7卷積替換為3個3*3卷積,如下圖所示,第一個和第二個卷積的輸出通道為32,步長為2,而最后一個卷積的輸出通道為64。

ResNet-D 受ResNet-B的啟發,我們注意到降采樣塊pathB中的1*1個卷積也忽略了輸入特征圖的3/4,我們想對它進行修改,這樣就不會忽略任何信息。根據經驗,我們發現在卷積之前添加一個步長為2的平均池化層,使其步長變為1,在實踐中效果良好,對計算成本的影響很小。這個調整在如下圖所示。

下表展示了上述提到的ResNet-BCD結構堆疊在一起后的性能,我們發現一些小的結構調整,能夠有1個點左右的提升。

5.訓練階段

余弦學習速率衰減 如下圖所示,展示了利用余弦學習速率和階躍衰減速率在驗證集上的性能比對。余弦衰減在開始時緩慢降低學習速度,然后在中間幾乎呈線性下降,到最后再次下降。與階躍衰減相比,余弦衰減從一開始就對學習進行衰減,但在階躍衰減使學習速率降低10倍之前,余弦衰減仍然很大,這可能會提高訓練的精度。

標簽平滑(label smooth) 這是一種抑制網絡過擬合現象的策略,如下圖所示,它主要通過軟化標簽,加入噪聲的方式,實現過擬合抑制。具體我之前寫過一篇文章,感興趣的同學可以點下面的鏈接跳轉。

混合訓練(Mixup Training) 這其實是一種數據增強方法,稱為mixup。在mixup中,每次我們隨機抽取兩個例子(xi, yi)和(xj, yj)。然后通過這兩個實例樣本的加權線性插值得到一個新的實例樣本,實現數據增強。

知識蒸餾(KD) 在知識蒸餾中,我們使用教師模型來幫助訓練當前的模型,即學生模型。教師模型通常是預訓練的模型,具有較高的準確性,因此通過模仿,學生模型可以在保持模型復雜性不變的情況下提高自身的準確性。最近這段時間正好看了幾篇知識蒸餾的文章,感興趣的同學可以點擊鏈接閱讀。

如下表所示,上述提到的各種策略在之前修改了框架和batch策略的基礎上,又都有提升。且這些策略都是不增加模型耗時的高效trick。

總結

以上是生活随笔為你收集整理的tictoc正方形网络模型_Trick | 分类网络Trick大汇总的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。