使用Autogluon完成圖像分類任務——2020.2.6


今日任務概覽:

    今天主要是利用Autogluon框架完成圖像分類任務。下面主要總結其中涉及的一些要點。

一、模型介紹:

ResNet簡介:
    ResNet(Residual Networks 殘差網絡),2015年何凱明團隊提出,在2015年的ILSVRC(ImageNet)的classification、detection、localization以及COCO的detection、segmentation均第一。ResNet性能好很多,檢測和分割任務的特征表達網絡結構等,一般都會用它來做改造,識別性能和訓練速度都有提升。最高152層。論文連接作者源代碼
    今天主要用到 ResNet50_v1b 和 ResNet18_v1b 兩個模型,網絡層數分別為50層、18層。

圖1 ResNet_V1版本網絡結構

ResNet設計思想:

  • 引入殘差網絡:差分放大器,使映射F(x)對輸出的變化更敏感
  1. 改善了深層網絡難訓練問題:SGD優化難(梯度消失或爆炸,梯度不敏感)而導致性能退化。
  2. 網絡層次可以更深,這樣網絡表達的能力更好了,另一方面訓練速度也更快了。
  • 降低了數據中信息的冗余度。
  1. 因為它對非冗余信息采用線性激活獲得恆等映射,對冗余信息(identity之外的部分)采用非線性激活(ReLU)提取出的有用信息即是殘差。
  2. 由於identity之外的其余部分的信息冗余度較高,因此在對其使用ReLU進行非線性激活時,丟失的有用信息也會較少,ReLU層輸出為0的可能性也會較低。這就降低了在反向傳播時ReLU的梯度消失的概率,從而便於網絡的加深,以大大地發揮深度網絡的潛能。
  3. 如果一個信息可以完整地流過一個非線性激活層,則這個非線性激活層對於這個信息而言,相當於僅僅作了一個線性激活。
  4. 解決由非線性激活導致的反向傳播梯度消失的竅門,就是要提高進行非線性激活的信息的冗余度。
  • 特征復用(直接用了上層特征)能加快模型的學習速度,因為參數的優化而收斂得快(從identity的基礎上直接學習殘差,總比從頭學習全部來得快)
  • 殘差比較小,殘差學習會更容易,因為有恆等映射性能至少不會下降,梯度不會消失;殘差映射還會學習新的特征,性能更好。
    ResNet網絡結構:
        設計了18、34、50、101、152層,用的都是11和33的小卷積核。普通電腦跑34就可以了,Cifar 100能到75%左右。
    ResNet構成快

        在殘差塊中,當輸入為 x 時其原來學習到的原始學習特征是H(x)=F(x)+x,但現在我們希望其可以學習到殘差F(x)=H(x)-x,這是因為殘差學習相比原始特征的直接學習更小更容易。
    殘差作用的驗證

    ResNet的實驗:
        Minist數據集圖像比較小,用VGG可能就跑不了,圖像經過多個卷積和pooling后可能就變成1*1了,再做pooling就會報錯。可以把原始圖像resize到更大尺寸來做。
    Cifar 10數據集,10個類別的分類,要生成lmdb格式,也可以直接用ImageData數據層直接讀取圖片。普通電腦一般跑不了50 101 152。
    注意訓練時一般對圖像有個減均值的操作,圖像在每個通道上的像素[0,255]范圍減去128或均值。有時還把像素值變大0~1之間。這樣收斂更快,性能提升不太大。

二、圖像分類任務:

    詳細任務官方指南
Autogluon任務

三、今日總結:

    配置好服務器后,運行起來流暢無比。整體說使用Autogluon完成實驗整體比較容易,但弄懂背后相關的步驟原理還是比較費勁。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM