深度學習 — ResNet

littlemilk
數據領航員
Published in
7 min readJul 25, 2022

目錄

☉前言
☉深度網路的退化問題?
☉恆等映射的嘗試
☉殘差學習
☉ResNet 架構
☉實作
☉參考資料

前言

經過上篇文章 VGG 的介紹,我們知道透過更小的卷積核(3 x 3)來萃取特徵,可以架構出更深一點的深度網路模型,以 VGG19 來說,就達到了 19 層的深度。那如果我們依樣畫葫蘆,不斷地疊加模型結構,是不是就可以建構出一個超深的模型架構且準確率 100% 的模型了呢?

讓我們先來看看下面這張圖,ILSVRC 這個 ImageNet 的圖像分類競賽,在 VGG 2014 年獲得亞軍時,其冠亞軍的層數都還在十位數的 22、19 層,但是在 2015 年突然之間的冠軍模型 ResNet 模型深度卻直接暴漲到了 152 層!看起來滿有可能是靠深度來讓模型更強的,但若是這麼簡單的操作,難道歷屆的參賽者沒有任何人嘗試過嗎?還是其中有其他厲害之處呢?

Source

深度網路的退化問題?

事實上,在不變動其他超參數,單純加深深度模型的過程中,越深的模型會出現一個「退化 degradation」現象:

可以看出,這種退化的原因

  1. 與過度擬合無關:因為不管是左邊的 trainning error,還是右邊的 test error,較深的模型都一樣差。
  2. 與梯度消失/梯度爆炸無關:何愷明 在 Resnet 的論文中就有特別提到,透過 Normalized Initialization 與 Batch Normalization 的方法,已經大大解決了梯度消失/梯度爆炸的問題。

那究竟是什麼原因導致的退化呢?

恆等映射的嘗試

何愷明他們進一步嘗試,建立了一個淺層的模型 A,再建立一個對照組較深的模型 B,模型 B 的前半部架構完全等同於 A,不同的是後方多出來的層數在初始權重時,單純做恆等映射(identity mapping)。

不過隨著訓練的開始,B 後方的權重又會在訓練時跑離恆等映射,退化問題依舊發生了。

最終他們做出了一個結論,若單純加深層數,模型會較難訓練,也較難以最佳化模型。但經過上面的嘗試,他們有了一個天才的想法。

殘差學習 Residual learning

這個天才的想法就是:

「既然直接學習對的答案很困難,那我們就學習轉換中的差異就好」

下圖左半部是沒有使用殘差學習的網路,可以看到經過虛線區塊運算後,輸出了 f(x) 的結果;右半部則使用了殘差學習的結構,多了一條恆等映射的路徑,中間的虛線區塊的輸出則變成了殘差 f(x)-x ,殘差與恆等映射 x 相加後,最終同樣產出了 f(x)。

舉個更實際的範例:

透過殘差學習,當你整個 Transform 都訓練得很差的時候,一般的網路 OUTPUT 就會很差;可是殘差學習的設計,會使得 OUTPUT 最差就是作出恆等映射的行為。

這種結構被稱為 building block,恆等映射的路徑被稱為 shortcut,在一個模型當中可以設置很多組 building block 來進行殘差學習。

(原論文當中則是將 F(X) 代表成殘差學習的方程式,表達方式不同,但意義一樣)

ResNet 架構

ResNet-34 是以 VGG-19 做為基礎去修改而成,加上以兩層卷積層為單位的 building block。

由下方的試驗就可看出,相較於一般 plain 模型會遇到的退化問題,ResNet -34 展現出比 ResNet-18 更好的成果,克服了退化問題。

也同時開發了 18, 34, 50, 101, 152 不同層數的 ResNet,眼尖的讀者應該有發現了,在 ResNet-50 以上的模型,building block 變成了 3 層的結構,此種結構稱為 bottleneck building block。

改用 bottleneck building block 是考量到訓練時間以及資源的限制,還有層與層之間維度縮放的問題,前面的 1x1 卷積層進行維度的縮減,後面的 1x1 卷積層則是增加(回復),中間的 3x3 卷積層就能處理較少維度的 input/output。同時,也將原本需要透過投影方式來增加維度的 shortcut,改用 1x1 卷積層來來做同樣的事情,能減少兩倍的參數量與時間複雜度。

實作

(待補)

參考資料

教育部補助大專院校STEM領域及女性研發人才培育計畫目標為建構一個「以智慧物聯技術與實務應用為基礎的教育環境和實作場域」,並規劃出符合此STEM教育領域的創新特色課程,以畢業前進入企業實習的方式,讓學生了解相關產業界所面對的問題,再輔以業界實作場域的教育訓練活動,共同帶領學生發展出動手做、判斷與解決問題的相關技能;本計畫也規劃讓學生以專題實作的組隊方式,跟業界協力領導學生對外參與智慧物聯技術的應用競賽,不僅可以累積學生實務開發的能力,更能激發其潛能來幫助企業解決所面臨的難題。

Data Science Meetup 台灣資料科學社群的使命是「為資料科學人士與企業創建經濟機會」。我們相信大數據蘊藏著巨量的信息和價值,如何處理好大數據並發掘其潛藏的商業價值,就要靠資料科學有效的應用。21世紀是資料科學決勝時代,我們社群將為大家提供與資料科學相關的最新技術和資訊實戰攻略,並透過全球業界人士和學者幫助相關職業規劃與挑戰,社群活動包含

  • 台北實體版聚
  • 線上版聚
  • Mentorship Program

歡迎加入我們社團瞭解更多資訊:
https://www.facebook.com/groups/datasciencemeetup/

--

--

littlemilk
數據領航員

東吳大學資料科學系|Machine Learning & Full Stack|數據領航員🖊深度學習|喜歡學習所有對生活有幫助的科技知識,追求用科技感動人心的時刻| Github : littlemilkwu & ✉️ : leowu0819@gmail.com