深度學(xué)習(xí)入門課程學(xué)習(xí)筆記06 反向傳播
反向傳播:
咱們?cè)谥暗恼n程講了一系列的前向傳播的知識(shí)點(diǎn),前向傳播也就是從輸入到最終計(jì)算出LOSS值這一系列過(guò)程,那么這節(jié)課咱們要講一個(gè)更重要的知識(shí)點(diǎn)也就是反向傳播。反向傳播最直觀的意思就是說(shuō)咱們要從LOSS值入手一步步的往回看,看什么呢?就是要看咱們的每一個(gè)權(quán)重參數(shù)對(duì)最終的LOSS值做了多大的貢獻(xiàn)。
最簡(jiǎn)單的小例子
首先咱們用一個(gè)最簡(jiǎn)單的小例子來(lái)看一下反向傳播是怎么一回事,如上圖最終的LOSS值等于-12下面咱們就要算對(duì)于X,Y,Z三個(gè)輸入來(lái)說(shuō)分別對(duì)于LOSS值做了多大的貢獻(xiàn),首先咱們用q=x+y,f=qz分別表示中間的計(jì)算過(guò)程。那么咱們要算什么呢?反向傳播最終要算的就是最終的LOSS值對(duì)X,Y,Z三個(gè)輸入的偏導(dǎo)數(shù),這個(gè)偏導(dǎo)數(shù)該怎么算呢?在這里我們遵循一個(gè)鏈?zhǔn)椒▌t也就是對(duì)于輸入來(lái)說(shuō)他對(duì)于最終LOSS的貢獻(xiàn)等于他前面?zhèn)鞑ハ聛?lái)的梯度再乘以自身的梯度。
鏈?zhǔn)椒▌t
這里就是梯度傳播的計(jì)算方式,我們要算X和Y對(duì)于最終LOSS的貢獻(xiàn)(換句話說(shuō)就是反向傳播到X和Y的梯度的大小)要先算前面一層傳播到X和Y的梯度再去計(jì)算X和Y自身的梯度。
稍難的例子
咱們?cè)賮?lái)看一個(gè)稍微難一些的例子,上圖表示的是咱們之前說(shuō)過(guò)的這個(gè)SIGMOID函數(shù),咱們接下來(lái)要算的就是這個(gè)函數(shù)梯度傳播的過(guò)程,導(dǎo)數(shù)計(jì)算的公式我已經(jīng)寫在圖上了,咱們只需要根據(jù)導(dǎo)數(shù)的計(jì)算方式一步步的從最終的LOSS值往回算就可以了,下面淺紅色的值就是梯度傳播的值。
這里我們可以看到梯度傳播可以是一步一步的傳播也可以一步傳播一整塊,這一整塊我們把它當(dāng)做是一個(gè)整體,相應(yīng)的就要計(jì)算這一整個(gè)塊的梯度了,也就是直接對(duì)SIGMOID函數(shù)求導(dǎo)。
梯度傳播的門
這里咱們所說(shuō)的門就是一個(gè)單位區(qū)域,我們可以從圖中看出來(lái)咱們?cè)谟?jì)算梯度傳播的過(guò)程中無(wú)外乎就是這幾種門的操作,每種門也都有它各自的特性,他們的特性是怎么得出的呢?這里就不帶大家一步步算了,咱們可以動(dòng)動(dòng)筆算一下梯度的傳播然后就知道為什么這些門有不同的特性了。
反向傳播就先說(shuō)到這里了,這里只是很簡(jiǎn)單的談了一下反向傳播具體的計(jì)算過(guò)程如果同學(xué)們還是不太理解建議看一下原始課程會(huì)有很詳細(xì)的推導(dǎo)。
【本文是51CTO專欄作者唐宇迪的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)注明出處】