卷積神經(jīng)網(wǎng)絡(luò)前向傳播和BP后向傳播計算步驟

目錄鏈接:吳恩達(dá)Deep Learning學(xué)習(xí)筆記目錄

?1.從DNN前向傳播和BP后向傳播說起
?2.CNN前向傳播和BP后向傳播
注:為減小書寫米苹、計算量,文中推導(dǎo)都忽略了偏置b惭婿。

1. 從DNN前向傳播和BP后向傳播說起

??之前所學(xué)的DNN是一個全連接的網(wǎng)絡(luò),采用BP算法來計算各參數(shù)的梯度帮孔,只需要采用鏈?zhǔn)椒▌t將誤差求導(dǎo)傳遞到每個神經(jīng)元的每個參數(shù)上即可克胳。特別是,將數(shù)據(jù)向量化后恭垦,求解梯度過程較為簡單快毛。但對于CNN來說,CNN涉及到了卷積和池化番挺,在進(jìn)行后向傳播計算時唠帝,僅采用矩陣乘法、元素級乘法(對應(yīng)元素相乘)根本無法進(jìn)行傳遞計算玄柏。那么CNN的BP算法是如何實現(xiàn)的呢襟衰?首先從CNN的BP算法說起。
??DNN符號約定:
??①小寫字母代表一個值粪摘,大寫字母代表向量或矩陣
??②輸入數(shù)據(jù)維度為(n,m)表示n個特征瀑晒,m個樣本
??③上標(biāo)[l]:第l層绍坝,如A[l],表示第l層激活值
??④下標(biāo)n:某一層第n個神經(jīng)元,如果是輸入數(shù)據(jù)X瑰妄,則代表第n個特征陷嘴,如a[l]1,表示第l層第1個激活值
??⑤w[l]ij:表示l層參數(shù)间坐,連接了l層第i個神經(jīng)元和第l-1層第j個神經(jīng)元
??⑥向量化導(dǎo)數(shù)符號:dZ即代表最終誤差對Z的梯度
??⑦δ[l]即dZ[l]灾挨,兩個是一個東西,只是描述不一樣

??實際上反向傳播的時候竹宋,只有計算輸出層的dA[l]和δ[l](或dZ[l])需要從代價函數(shù)(或者誤差)來求導(dǎo)得到劳澄;此后的A、Z蜈七、W秒拔、b的梯度都可以根據(jù)下式推導(dǎo)-(將上述計算過程總結(jié)出來就是這個亞子):
注:A、Z飒硅、W砂缩、b求導(dǎo)后應(yīng)該維持維度不變,所以上述向量化表達(dá)的式子中含有矩陣的轉(zhuǎn)置操作三娩。

2. CNN前向傳播和BP后向傳播

??卷積層前向傳播如下圖所示(步長為1)庵芭,l-1層的輸出,高=3雀监、寬=3双吆、通道數(shù)=3,shape=(3,3,3)会前;l層一共有兩個卷積核好乐,每個卷積核shape=(2,2,3)l層輸出shape=(2,2,2)瓦宜。
??①l-1層的通道數(shù)與l層卷積核通道數(shù)相同蔚万,所以在進(jìn)行卷積時,是同一個卷積核的各通道對應(yīng)l-1層的通道輸出A去卷積歉提;②卷積后笛坦,在通道維度上進(jìn)行疊加,一個卷積核最后只輸出一個通道的數(shù)據(jù)苔巨;③卷積核的數(shù)量決定了該層輸出的通道數(shù)量版扩,激活后維度不變。因此侄泽,維度變化為:(m,n_h_pre,n_w_pre,n_c_pre)(f,f,n_c_pre,n_c)(m,n_h,n_w,n_c)

convolving

??而在池化層中(在此將卷積層和池化都當(dāng)作單獨的一層)礁芦,由于kernel沒有參數(shù)w,只有單個卷積核,kernel的通道數(shù)可以視為1或者n_c(因為它沒有參數(shù)w)柿扣,池化前后肖方,通道數(shù)不變,高和寬改變未状。下圖為一個池化過程俯画,池化時,kernel移動的步長為2司草。
pooling
??明顯艰垂,對于CNN,它與DNN區(qū)別較大埋虹,它的低層不再是全連接的而是局部連接猜憎,同時還包含了池化層(無激活函數(shù))。這將造成:
??①單通道卷積時是局部連接搔课,而不是全連接胰柑,也就是說一個z值將不再和上一層所有a值關(guān)聯(lián),那么dW的值要怎么求爬泥?當(dāng)然柬讨,如果將式子一個列出來求dW,一個個求比較簡單袍啡,單計算量較大姐浮,如何實現(xiàn)類似DNN向量化批量的求解才是我們要關(guān)心的;
??②由于向前卷積時葬馋,相當(dāng)于將A[l-1]復(fù)制了n_c份(卷積核數(shù)量或下一層輸出通道數(shù)),卷積輸出n_c個通道肾扰,這n_c個通道的數(shù)據(jù)之間沒有權(quán)重關(guān)系畴嘶,那么向后傳播時,A[l-1]每個通道都將接收n_c個通道傳遞回來的誤差集晚,此時這n_c維的數(shù)據(jù)如何傳遞回一個通道窗悯?(如convolving圖中紫色線);
??③池化過程偷拔,高和寬縮減蒋院,原有信息已經(jīng)丟失,反向傳遞時莲绰,如何將小尺寸誤差傳遞回大尺寸數(shù)據(jù)(如pooling圖中欺旧,如何將4個格子的數(shù)據(jù)傳遞回16個格子);
??④池化層沒有激活函數(shù)蛤签,這個好解決辞友,激活后等于其本身就行。

?2.1 卷積層向后傳播

??根據(jù)DNN的經(jīng)驗,要求dW称龙,那么需要先求出dZ留拾、dA,在此假設(shè)已知當(dāng)前ldZ鲫尊。
??(1)求dA

convolving compute

??首先解決第①個問題痴柔。如上圖所示,是一個單通道的數(shù)據(jù)經(jīng)過單個單通道卷積核疫向,輸出單通道數(shù)據(jù)(將卷積連接展開后如圖左所示)咳蔚。對于多通道輸入、單個多通道卷積核鸿捧、單通道輸出來說屹篓,計算方式一樣。已知dZ匙奴,求dA的鏈?zhǔn)角髮?dǎo)公式如下:
??根據(jù)上圖卷積展開公式有:
??也就是說堆巧,對于l層某一通道(假設(shè)通道x)上的dZ要傳遞回l-1層的某一通道(假設(shè)通道y)的dA,只需要將y通道對應(yīng)的單個卷積核的通道y的權(quán)重矩陣泼菌,水平谍肤、垂直方向都翻轉(zhuǎn)180°,dZ padding 0哗伯,直接卷積即得到dA荒揣。有點繞,看一下前面convolving圖焊刹,將前向傳播的紅綠藍(lán)三根帶箭頭的線系任,反向傳遞就明白了。第①個問題解決虐块。l-1dA計算公式為:
??第②個問題俩滥,反向傳播時每個卷積核(l層的每個通道,假設(shè)x個)都要將誤差傳遞給l-1層贺奠,那么l-1層的一個通道都要接收x個數(shù)據(jù)霜旧,但卷積核之間又沒有聯(lián)系,根據(jù)吳恩達(dá)deep learning課程作業(yè)里的做法是將這x個數(shù)據(jù)累加起來儡率,作為l-1層一個通道的dA挂据。emm...,第②個問題解決了儿普。
??(2)求dZ
??根據(jù)
??有:
??(3)求dW
??前述已知ldZl-1dA崎逃,根據(jù)
??采用鏈?zhǔn)角髮?dǎo)法則,有
??總結(jié):
??卷積層各參數(shù)的求導(dǎo)推導(dǎo)公式如下:

?2.2 池化層向后傳播

??由于池化向前傳播時箕肃,會使得h婚脱、w兩個維度縮減,丟失掉部分信息,那么在后向傳播時障贸,如何將尺寸小的矩陣還原到原來大写砩?一般篮洁,池化分為最大池化和平均池化涩维,兩種池化后向傳播時處理的方式略有不同。
??(1)最大池化后向傳播
??在此將池化當(dāng)作一層袁波,假設(shè)已知ldZ=dA(池化無激活函數(shù)瓦阐,視激活后等于本身),求l-1dZ=dA篷牌,下面對一個通道數(shù)據(jù)進(jìn)行舉例:

??(2)平均池化后向傳播
??平均池化的后向傳播是將ldZ=dA求局部區(qū)域大小的平均值(被池化時的區(qū)域)睡蟋,填充到各個位置即可:

參考資料:

卷積神經(jīng)網(wǎng)絡(luò)(CNN)反向傳播算法
CNN的反向傳播
Convolutional Neural Networks: Step by Step

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市枷颊,隨后出現(xiàn)的幾起案子戳杀,更是在濱河造成了極大的恐慌,老刑警劉巖夭苗,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件信卡,死亡現(xiàn)場離奇詭異,居然都是意外死亡题造,警方通過查閱死者的電腦和手機(jī)傍菇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來界赔,“玉大人丢习,你說我怎么就攤上這事』吹浚” “怎么了泛领?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長敛惊。 經(jīng)常有香客問我,道長绰更,這世上最難降的妖魔是什么瞧挤? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮儡湾,結(jié)果婚禮上特恬,老公的妹妹穿的比我還像新娘。我一直安慰自己徐钠,他們只是感情好癌刽,可當(dāng)我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般显拜。 火紅的嫁衣襯著肌膚如雪衡奥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天远荠,我揣著相機(jī)與錄音矮固,去河邊找鬼。 笑死譬淳,一個胖子當(dāng)著我的面吹牛档址,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播邻梆,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼守伸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了浦妄?” 一聲冷哼從身側(cè)響起尼摹,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎校辩,沒想到半個月后窘问,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡宜咒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年惠赫,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片故黑。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡儿咱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出场晶,到底是詐尸還是另有隱情混埠,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布诗轻,位于F島的核電站钳宪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏扳炬。R本人自食惡果不足惜吏颖,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望恨樟。 院中可真熱鬧半醉,春花似錦、人聲如沸劝术。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽儒旬。三九已至,卻和暖如春梁钾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背咆槽。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工陈轿, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人秦忿。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓麦射,卻偏偏與公主長得像,于是被迫代替她去往敵國和親灯谣。 傳聞我的和親對象是個殘疾皇子潜秋,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容