VGGNet vs ResNet:機器學習中的梯度消失問題

2021-01-09 不靠譜的貓

你能解釋一下VGGNet和ResNet的區別嗎?這是人工智慧和機器學習領域的一個常見面試問題。雖然答案可以在網上找到,但一直還沒能找到一個簡明扼要的答案。我們將從什麼是VGGNet開始,然後看看VGGNet遇到了什麼問題,以及ResNet如何解決它。

VGGNet

VGG代表Visual Geometry Group(牛津大學的一組研究人員開發了這個架構)。VGG架構由塊組成,每個塊由2D卷積和最大池化層組成。VGGNet有兩種形式,即VGG16和VGG19,其中的16和19分別表示它們各自的層數。VGGNet架構如下圖所示:

在卷積神經網絡(CNN)中,隨著層數的增加,機器學習模型擬合更複雜函數的能力也隨之增加。因此,層數越多越好(不要與人工神經網絡相混淆,因為人工神經網絡並不一定會隨著隱層數的增加而提供更好的性能)。現在,我們可以來討論一下為什麼不使用VGG20、VGG50或VGG100等。

我們知道,神經網絡的權重更新使用了反向傳播算法。反向傳播算法對每個權值做一個小的改變,使得機器學習模型的損失減小。這是怎麼發生的呢?它會更新每一個權重,以使其在減少損失的方向上邁出一步。這個方向就是這個權重(相對於損失)的梯度。

利用鏈式法則,我們可以找到每個權重的梯度。通過神經元的梯度流如下圖所示:

問題來了。當這個梯度一直向後到達初始層時,這個值不斷乘以每個局部梯度。因此,梯度變得越來越小,這就使得對初始層的更新非常小,這樣大大增加了訓練時間。

如果局部梯度以某種方式變為1,來看看是否能夠解決我們的問題。

我們來看看ResNet(Residual Network)。

ResNet

局部梯度如何才能為1,即哪個函數的導數始終為1呢? 恆等函數(Identity function)!解決消失梯度問題背後的數學如下圖所示:

因此,當該梯度進行反向傳播時,其值不會減小,因為局部梯度為1。

ResNet體系結構現在對於如何避免梯度消失的問題應該是很有意義的。ResNet代表殘差網絡,其架構如下:

這些skip connections允許梯度不受阻礙地進行傳播。現在你可以理解為什麼ResNet具有像ResNet50、ResNet101和ResNet152這樣的版本了。

相關焦點

  • ResNet——CNN經典網絡模型詳解(pytorch實現)
    2、ResNet詳解在ResNet網絡中有如下幾個亮點:提出residual結構(殘差結構),並搭建超深的網絡結構(突破1000層)使用Batch Normalization加速訓練(丟棄dropout)在ResNet網絡提出之前,傳統的卷積神經網絡都是通過將一系列卷積層與下採樣層進行堆疊得到的。但是當堆疊到一定網絡深度時,就會出現兩個問題。
  • 機器學習 梯度到底是什麼
    梯度,到底是什麼?很容易混淆。站在山底,哪個方向爬坡最快,這個容易想像,但問題是,如果所在的高度是我們優化的目標的話,這個爬坡的方向並不是梯度的方向,這個是我們的目標值(函數值)的變化趨勢。我們先看一下定義:即:梯度是一個向量,而向量就有方向,該方向是方向導數取得最大值的方向,那方向導數是什麼?可見:方向導數是一個數方向指的是函數定義域的內點變化的方向 綜上,自變量沿著該方向變化,使函數值變化最大,機器學習中,函數值就是我們的優化目標。當函數值是損失函數值的時候,我們期望的是最小值,這個時候取梯度的反方向,即梯度下降即可。
  • U-Net 和 ResNet:長短跳躍連接的重要性(生物醫學圖像分割)
    SH Tsang翻譯 | 史蒂芬二狗子         校對 | 醬番梨        審核 | 詹森·李加薪       整理 | 立魚王原文連結:https://medium.com/datadriveninvestor/review-u-net-resnet-the-importance-of-long-short-skip-connections-biomedical-image-ccbf8061ff43
  • CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?
    機器學習vs.深度學習:決策邊界每種機器學習算法都會學習從輸入到輸出的映射。換句話說,該算法會學習一個僅有幾組權重的函數:Input -> f(w1,w2…..wn) -> Output在分類問題中,算法將學習將兩種類別分開的函數——這被稱為決策邊界(Decision boundary)。
  • 深度學習 vs. 概率圖模型 vs. 邏輯學
    【編者按】在上個月發表博客文章《深度學習 vs. 機器學習 vs. 模式識別》之後,CMU博士、MIT博士後及vision.ai聯合創始人Tomasz Malisiewicz這一次帶領我們回顧50年來人工智慧領域三大範式(邏輯學、概率方法和深度學習)的演變歷程。通過本文我們能夠更深入地理解人工智慧和深度學習的現狀與未來。
  • 消失的梯度問題:問題,原因,意義及其解決對策
    問題 隨著越來越多的激活函數加到神經網絡中,損失函數的梯度趨近於0,使得網絡結構很難訓練。因此,當我們反向傳到初始層的時候,梯度會大幅度下降。 一個小的梯度意味著初始層的權重和偏差不會在訓練中得到有效更新。由於這些初始層通常對識別輸入數據的核心元素至關重要,因此可能導致整個網絡的整體不準確。
  • 【乾貨】機器學習最常用優化之一——梯度下降優化算法綜述
    【新智元導讀】梯度下降算法是機器學習中使用非常廣泛的優化算法,也是眾多機器學習算法中最常用的優化方法。幾乎當前每一個先進的(state-of-the-art)機器學習庫或者深度學習庫都會包括梯度下降算法的不同變種實現。
  • TensorFlow極簡教程:創建、保存和恢復機器學習模型
    選自Github機器之心編譯參與:Jane W、李澤南TensorFlow 是一個由谷歌發布的機器學習框架,在這篇文章中,我們將闡述 TensorFlow 的一些本質概念。相信你不會找到比本文更簡單的介紹。
  • 文科生都能看懂的機器學習教程:梯度下降、線性回歸、邏輯回歸
    現在,機器學習這麼火,想入行的人越來越多,然而被搞糊塗的人也越來越多。因為大眾很難理解機器學習是幹嗎的?那些神秘拗口的概念,比如邏輯回歸、梯度下降到底是什麼?j  一個23歲的藥物學專業的學生說,當他去參加機器學習培訓課程的時候,感覺自己就家裡那位不懂現代科技的奶奶。
  • 機器學習:隨機梯度下降和批量梯度下降算法介紹
    機器學習:隨機梯度下降和批量梯度下降算法介紹 佚名 發表於 2017-11-28 04:00:28 隨機梯度下降(Stochastic gradient descent)
  • 機器學習算法中的概率方法
    本文無法涵蓋機器學習領域的方方面面,僅就一些關鍵的機器學習流派的方法進行介紹。(d). 為了幫助讀者鞏固本文內容,或引導讀者擴展相關知識,文中穿插了許多問題,並在最後一節進行問題的「快問快答」。1 準備知識本節給出概率方法的基本流程,後續要介紹的不同的概率方法都遵循這一基本流程。
  • 機器學習 101:一文帶你讀懂梯度下降
    回到爬山的例子中,坡度指向的方向是最快到達山頂的方向。換句話說,梯度指向一個面更高的地方。 同樣的,如果我們有一個有四個變量的函數,我們會得到一個有四個偏導數的梯度向量。通常,一個有n個變量的函數會產生一個n維梯度向量。
  • 一分鐘看完梯度下降法
    今天,我想講一下梯度下降法(Gradient Descent),基於線性回歸損失函數的梯度下降法。
  • 輕鬆學Pytorch-使用ResNet50實現圖像分類
    Hello大家好,這篇文章給大家詳細介紹一下pytorch中最重要的組件torchvision,它包含了常見的數據集、模型架構與預訓練模型權重文件、常見圖像變換、計算機視覺任務訓練。可以是說是pytorch中非常有用的模型遷移學習神器。本文將會介紹如何使用torchvison的預訓練模型ResNet50實現圖像分類。