李理:從Image Caption Generation理解深度學(xué)習(xí) (part IV)

轉(zhuǎn)載自:CSDN極客頭條
作者:李理 目前就職于環(huán)信禁悠,即時通訊云平臺和全媒體智能客服平臺,在環(huán)信從事智能客服和智能機(jī)器人相關(guān)工作,致力于用深度學(xué)習(xí)來提高智能機(jī)器人的性能怀樟。
相關(guān)文章:
李理:從Image Caption Generation理解深度學(xué)習(xí)(part I)
李理:從Image Caption Generation理解深度學(xué)習(xí)(part II)
李理:從Image Caption Generation理解深度學(xué)習(xí)(part III)
李理:從Image Caption Generation理解深度學(xué)習(xí) (part IV)

前面我們講過了反向傳播算法的詳細(xì)推導(dǎo)過程,大家可能會覺得有些復(fù)雜盆佣。事實上其實就是鏈?zhǔn)角髮?dǎo)法則的應(yīng)用往堡。今天我們將會繼續(xù)討論這個問題械荷,不過是從Computational Graphs的角度,也就是我們之前說過的自動求導(dǎo)(Automatic Differentiation or Reverse-mode Differentiation)虑灰。并且通過CS231n的Assignment2來學(xué)習(xí)使用這種方法吨瞎,通過這種方法來實現(xiàn)一個多層的神經(jīng)網(wǎng)絡(luò)。
Calculus on Computational Graphs: Backpropagation
首先我們介紹一篇博客文章: https://colah.github.io/posts/2015-08-Backprop/ 基本是翻譯過來穆咐,不過部分地方是我自己的理解颤诀,建議讀者結(jié)合這篇文章一起閱讀。
簡介
反向傳播算法是神經(jīng)網(wǎng)絡(luò)的核心算法对湃,不過這個算法在不同的領(lǐng)域被多次”發(fā)現(xiàn)“過崖叫,因此有不同的名稱。
計算圖(Computational Graphs)
考慮一個簡單的函數(shù) e=(a+b)?(b+1)e=(a+b)?(b+1) 拍柒。這個函數(shù)有兩個操作(函數(shù))心傀,加法和乘法。為了指代方便斤儿,我們引入兩個中間變量剧包,c和d。
c=a+b
d=b+1
e=c?d

下面我們把它畫成一個計算圖往果,每一個操作是圖中一個節(jié)點(diǎn)疆液,最基本的變量a和b也是一個節(jié)點(diǎn)。每個節(jié)點(diǎn)和它的輸入變量直接有一條邊陕贮。比如d的輸入變量是b堕油,那么d和b直接就有一條邊。
任何一個顯示定義的函數(shù)(隱函數(shù)不行肮之,不過我們定義的神經(jīng)網(wǎng)絡(luò)肯定不會通過隱函數(shù)來定義)都可以分解為一個有向無環(huán)圖(樹)掉缺,其中葉子節(jié)點(diǎn)是最基本的無依賴的自變量,而中間節(jié)點(diǎn)是我們引入的中間變量戈擒,而樹根就是我們的函數(shù)眶明。比如上面的例子,計算圖如下所示:


圖片描述

給定每一個自變量的值筐高,我們可以計算最終的函數(shù)值搜囱,對應(yīng)與神經(jīng)網(wǎng)絡(luò)就是feedforward計算。具體用”算法“怎么計算呢柑土?首先因為計算圖是一個有向無環(huán)圖蜀肘,因此我們可以拓?fù)渑判颍仁侨~子節(jié)點(diǎn)a和b稽屏,他們的值已經(jīng)給定扮宠,然后刪除a和b出發(fā)的邊,然后c和d沒有任何未知依賴狐榔,可以計算坛增,最后計算e获雕。計算過程如下圖:


圖片描述

計算圖的導(dǎo)數(shù)計算
首先我們可以計算每條邊上的導(dǎo)數(shù),也就是邊的終點(diǎn)對起點(diǎn)的導(dǎo)數(shù)轿偎,而且導(dǎo)數(shù)是在起點(diǎn)的取前向計算值時的導(dǎo)數(shù)典鸡,具體過程如圖所示:
圖片描述

有些邊的導(dǎo)數(shù)不依賴于輸入的值被廓,比如:


圖片描述

但是還有很多邊的導(dǎo)數(shù)是依賴于輸入值的坏晦,比如:
圖片描述

因為在“前向”計算的過程中,每個節(jié)點(diǎn)的值都計算出來了嫁乘,所以邊的計算很簡單昆婿,也不需要按照什么的順序。
不過我們一般比較感興趣的是最終函數(shù)對某個自變量的導(dǎo)數(shù)蜓斧,比如
圖片描述

根據(jù)鏈?zhǔn)椒▌t仓蛆,只要找到這兩個節(jié)點(diǎn)的所有路徑,然后把路徑的邊乘起來就得到這條邊的值挎春,然后把所有邊加起來就可以了看疙。
比如上面的例子b到e有兩條路徑:b->c->e和b->d->e,所以
圖片描述

如果用“鏈?zhǔn)健狈▌t來寫就是
圖片描述

路徑反過來而已直奋。
使用上面的方法能庆,我們可以計算任何一個點(diǎn)(上面的變量)對另外一個點(diǎn)(上面的變量)的導(dǎo)數(shù)。不過我們一般的情況是計算樹根對所有葉子的導(dǎo)數(shù)脚线,當(dāng)然我們可以使用上面的算法一個一個計算搁胆,但是這樣會有很多重復(fù)的計算。
比如a->e的路徑是 a->c->e邮绿,b->e有一條邊是b->c->e渠旁,其中c->e是重復(fù)的【這個例子不太好,我們可以想像c->e是一條很長的路徑】船逮,每次都重復(fù)計算c->e這個“子”路徑是多余的顾腊。我們可以從后往前計算,也就是每個節(jié)點(diǎn)都是存放樹根變量(這個例子是e)對當(dāng)前節(jié)點(diǎn)的導(dǎo)數(shù)(其實也就是樹根到當(dāng)前節(jié)點(diǎn)的所有路徑的和)挖胃。
反向?qū)?shù)計算


圖片描述

計算流程文字描述如下: 首先還是對這個圖進(jìn)行拓?fù)渑判蛟影校贿^是反過來。 首先是
圖片描述

這個沒什么好說的冠骄。 然后計算
圖片描述

然后計算
圖片描述

然后計算
圖片描述

計算
圖片描述

前向?qū)?shù)計算
如果我們需要計算每一個變量對某一個變量的導(dǎo)數(shù)伪煤,就可以使用前向計算的方法。不過我們的神經(jīng)網(wǎng)絡(luò)都是相反——計算某個一個變量(一般是損失函數(shù))對所有變量的導(dǎo)數(shù)凛辣,所以這里就不詳細(xì)介紹了抱既。
至此,本系列文章的第四部分告一段落扁誓。在接下來的文章中防泵,作者將為大家詳細(xì)講述關(guān)于Optimization蚀之、常見的深度學(xué)習(xí)框架/工具的使用方法、使用自動求導(dǎo)來實現(xiàn)多層神經(jīng)網(wǎng)絡(luò)等內(nèi)容捷泞,敬請期待足删。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市锁右,隨后出現(xiàn)的幾起案子失受,更是在濱河造成了極大的恐慌,老刑警劉巖咏瑟,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拂到,死亡現(xiàn)場離奇詭異,居然都是意外死亡码泞,警方通過查閱死者的電腦和手機(jī)兄旬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來余寥,“玉大人领铐,你說我怎么就攤上這事∷蜗希” “怎么了绪撵?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長肥缔。 經(jīng)常有香客問我莲兢,道長,這世上最難降的妖魔是什么续膳? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任改艇,我火速辦了婚禮,結(jié)果婚禮上坟岔,老公的妹妹穿的比我還像新娘谒兄。我一直安慰自己,他們只是感情好社付,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布承疲。 她就那樣靜靜地躺著,像睡著了一般鸥咖。 火紅的嫁衣襯著肌膚如雪燕鸽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天啼辣,我揣著相機(jī)與錄音啊研,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛党远,可吹牛的內(nèi)容都是我干的削解。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼沟娱,長吁一口氣:“原來是場噩夢啊……” “哼氛驮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起济似,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤矫废,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后碱屁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體磷脯,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蛾找,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年娩脾,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片打毛。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡柿赊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出幻枉,到底是詐尸還是另有隱情碰声,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布熬甫,位于F島的核電站胰挑,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏椿肩。R本人自食惡果不足惜瞻颂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望郑象。 院中可真熱鬧贡这,春花似錦、人聲如沸厂榛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽击奶。三九已至辈双,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間柜砾,已是汗流浹背湃望。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人喜爷。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓冗疮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親檩帐。 傳聞我的和親對象是個殘疾皇子术幔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

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