乾貨 | 深度學習之CNN反向傳播算法詳解

2021-03-06 機器學習算法與Python學習

要套用DNN的反向傳播算法到CNN,有幾個問題需要解決:

1)池化層沒有激活函數,這個問題倒比較好解決,我們可以令池化層的激活函數為σ(z)=z,即激活後就是自己本身。這樣池化層激活函數的導數為1.

2)池化層在前向傳播的時候,對輸入進行了壓縮,那麼我們現在需要向前反向推導δl−1,這個推導方法和DNN完全不同。

3)  卷積層是通過張量卷積,或者說若干個矩陣卷積求和而得的當前層的輸出,這和DNN很不相同,DNN的全連接層是直接進行矩陣乘法得到當前層的輸出。這樣在卷積層反向傳播的時候,上一層的δl−1遞推計算方法肯定有所不同。

4)對於卷積層,由於W使用的運算是卷積,那麼從δl推導出該層的所有卷積核的W,b的方式也不同。

從上面可以看出,問題1比較好解決,而問題2,3,4也是解決CNN反向傳播算法的關鍵所在。另外要注意到的是DNN中的al,zl都只是一個向量,而我們CNN中的al,zl都是一個三維的張量,即由若干個輸入的子矩陣組成。

    

下面我們就針對問題2,3,4來一步步研究CNN的反向傳播算法。在研究過程中,需要注意的是,由於卷積層可以有多個卷積核,各個卷積核的處理方法是完全相同且獨立的,為了簡化算法公式的複雜度,我們下面提到卷積核都是卷積層中若干卷積核中的一個。

相關焦點

  • 深度學習基礎之反向傳播算法
    介紹反向傳播算法(Back Propagation)的文章有很多,但講得通俗易懂的很少,有的只給出公式推導,很難理解,有的雖然給出了例子,但介紹得過於複雜
  • 深度學習之DNN與反向傳播算法總結
    在深度神經網絡(DNN)模型與前向傳播算法中,我們對DNN的模型和前向傳播算法做了總結,這裡我們更進一步,對DNN的反向傳播算法(Back Propagation,BP)做一個總結。在了解DNN的反向傳播算法前,我們先要知道DNN反向傳播算法要解決的問題,也就是說,什麼時候我們需要這個反向傳播算法?
  • 卷積神經網絡(CNN)反向傳播算法推導
    首先我給大家介紹一下我分析delta誤差反向傳播過程的簡單方法,如果神經網絡l+1層某個結點的delta誤差要傳到l層,我們就去找前向傳播時l+1層的這個結點和第l層的哪些結點有關係,權重是多少,那麼反向傳播時,delta誤差就會乘上相同的權重傳播回來。
  • 【強基固本】卷積神經網絡(CNN)反向傳播算法
    轉自:https://www.cnblogs.com/pinard/p/6494810.html01我們首先回顧DNN的反向傳播算法。現在我們想把同樣的思想用到CNN中,很明顯,CNN有些不同的地方,不能直接去套用DNN的反向傳播算法的公式。
  • 算法推導:反向傳播算法
    13.3.1 反向傳播算法推導如下圖所示為一個神經網絡的結構圖,由於本文主要探討激活函數在反向傳播過程中的作用,因此不會帶入數值進行計算,而是以兩個權重的更新為案例進行公式的推導,分別為如何通過反向傳播算法更新和的值。
  • 用反向傳播算法解釋大腦學習過程?Hinton等人新研究登Nature子刊
    機器之心報導魔王、Jamin、杜偉反向傳播可以解釋大腦學習嗎?近日 Hinton 等人的研究認為,儘管大腦可能未實現字面形式的反向傳播,但是反向傳播的部分特徵與理解大腦中的學習具備很強的關聯性。而反向傳播算法在深度神經網絡中解決了上述問題,不過長期以來人們一直認為反向傳播在生物層面上存在問題。儘管如此,神經科學的最新發展和神經網絡的成功激活了人們對反向傳播能否幫助進一步了解皮層學習的興趣。反向傳播算法使用反向連接(feedback connection)傳遞誤差信號,來計算突觸更新,從而實現快速學習。
  • 反向傳播( backpropagation ),可以這樣直觀理解!
    0 回顧本系列是 史丹福大學自然語言處理-cs224課程的筆記4:神經網絡的反向傳播的直觀解釋,前 4 篇筆記如下:深度學習和自然語言處理:介紹
  • 誤差反向傳播算法淺解
    本文主要內容:神經網絡應用梯度下降的直觀理解反向傳播算法的學習過程反向傳播算法推導總結探討本文靈感來源參考文獻直觀理解考慮一個有兩個輸入單元、一個輸出單元、沒有隱藏單元的簡單神經網絡。根據複合函數的求導規則,其一般形式為:反向傳播算法的學習過程學習過程由信號的正向傳播與誤差的反向傳播兩個過程組成。正向傳播時,輸入樣本從輸入層傳入,經各隱層逐層處理後,傳向輸出層。若輸出層的實際輸出與期望的輸出(教師信號) 不符,則轉入誤差的反向傳播階段。
  • 離散優化代替反向傳播:Pedro Domingos提出深度學習新方向
    Friesen & Pedro Domingos機器之心編譯在改革深度學習、拋棄反向傳播的道路上我們不僅看到了 Geoffrey Hinton 的努力。近日,《終極算法》一書作者,華盛頓大學計算機科學教授 Pedro Domingos 也提出了自己的方法——離散優化。神經分類的原始方法是學習單層模型,比如感知機(Rosenblatt, 1958)。
  • 反向傳播算法的工作原理(2)
    反向傳播算法根據前述方程,下面以算法的形式,顯示地寫出反向傳播算法:研究一下這個算法,你就會明白為什麼它被稱為反向傳播。在網絡中反向操作似乎很奇怪,但是如果你考慮反向傳播的證據,反向傳播源於這樣一個事實:代價函數是網絡輸出的函數。為了了解代價是如何隨先前的權重和偏差而變化的,我們需要反覆應用鏈式規則,在各個層中反向操作以獲得可用的表達式。為什麼說反向傳播是一種快速算法?為什麼說反向傳播是一種快速算法?為了回答這個問題,我們思考一下計算梯度的另一種方法。
  • RNN系列教程之三 | 基於時間的反向傳播算法和梯度消失問題
    基於時間的反向傳播算法(BPTT)和梯度消失問題 (本部分) 4.建立基於門控循環單元(GRU)或者長短時記憶(LSTM)的RNN模型說明: 為完全掌握本部分教程,建議您對偏微分(也稱偏導數)和基本反向傳播的工作原理有所了 解,以下是三 篇關於反向傳播算法的教程供大家參考:http://cs231n.github.io/optimization
  • Matlab編程之——卷積神經網絡CNN代碼解析
    deepLearnToolbox-master是一個深度學習matlab包,裡面含有很多機器學習算法,如卷積神經網絡CNN,深度信念網絡DBN,
  • 反向傳播(BP)算法的數學原理
    ============================================在前面的文章(從神經網絡識別手寫體數字開始)中,我們已經了解了如何用梯度下降法來學習神經網絡的權重和偏置參數,但在梯度下降算法中所依賴的損失函數梯度(偏微分)計算方法並沒有介紹。本文詳細介紹神經網絡損失函數的梯度計算方法,即反向傳播算法(簡稱BP算法)。
  • 人工智慧系列(七) 深度學習中的梯度下降與反向傳播
    原力君在系列的第六篇《人工智慧系列(六) 深度學習中的神經網絡》中提到人工神經網絡的基礎是人工神經元,常用的神經元激活函數為sigmoid,應對深度學習的激活函數為ReLU、maxout等函數;多層感知機與DNN結構一致,激活函數有區別;CNN可以用來解決DNN網絡參數太多的問題;RNN為帶有反饋的神經網絡。
  • 深度學習網絡之CNN
    深度學習的提出:2006年,Hinton提出了深度學習,兩個主要的觀點是:深度學習取得成功的原因:深度學習的思想:深度神經網絡的基本思想是通過構建多層網絡,對目標進行多層表示,以期通過多層的高層次特徵來表示數據的抽象語義信息,獲得更好的特徵魯棒性。
  • 深度學習預習資料:圖靈獎得主Yann LeCun《深度學習》春季課程
    ,照這個課程清單按順序學就對了計算機視覺入門大全:基礎概念、運行原理、應用案例詳解NLP 技術路線詳解:這是從數學到算法的藝術深度強化學習入門難?幾年下來,我們積攢了成百上千的教程資料,從基本概念到深度解析,從語言到框架,從讀博到就業…… 既有理論,也有實戰;既有精華文章,也有視頻、教科書、筆記,全都收錄在這幾份教程盤點文章之中:2019:收藏、退出一氣呵成,2019 年機器之心乾貨教程都在這裡了2018
  • 深度學習算法 | LSTM算法原理簡介及Tutorial
    LSTM(Long Short-Term Memory)算法作為深度學習方法的一種,在介紹LSTM算法之前,有必要介紹一下深度學習(Deep Learning)的一些基本背景。Hinton的團隊在ImageNet比賽(圖像識別中規模最大影響最大的比賽之一)中使用深度學習方法獲勝之後,關於深度學習的研究就呈井噴之勢;在2012年以前,該比賽結果的準確率一直處於緩慢提升的狀態,這一年突然有質的飛越,而從此之後深度學習方法也成為了ImageNet比賽中的不二選擇。
  • 乾貨分享 | 機器學習、深度學習、nlp、cv從入門到深入全套資源分享
    深度學習之目標檢測的前世今生(Mask R-CNN)深度學習目標檢測模型全面綜述:Faster R-CNN、R-FCN和SSD從RCNN到SSD,這應該是最全的一份目標檢測算法盤點目標檢測算法綜述三部曲基於深度學習的目標檢測算法綜述(一)基於深度學習的目標檢測算法綜述(二)基於深度學習的目標檢測算法綜述
  • 人人都能看懂的LSTM介紹及反向傳播算法推導(非常詳細)
    圖8 轉化後的窺視孔LSTM前向傳播:在t時刻的前向傳播公式為:反向傳播:對反向傳播算法了解不夠透徹的,請參考陳楠:反向傳播算法推導過程(非常詳細),這裡有詳細的推導過程,本文將直接使用其結論。已知:
  • 反向傳播算法最全解讀,機器學習進階必看!
    目前網絡上關於反向傳播算法的教程已經很多,那我們還有必要再寫一份教程嗎?答案是『需要』。為什麼這麼說呢?我們教員Sanjeev最近要給本科生上一門人工智慧的課,儘管網上有很多反向傳播算法的教程,但他卻找不到一份令他滿意的教程,因此我們決定自己寫一份關於反向傳播算法的教程,介紹一下反向傳播算法的歷史背景、原理、以及一些最新研究成果。