免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      AI課堂第12講:DL深度學習-模型正向傳播、反向傳播、計算圖

      AI課堂第12講:DL深度學習-模型正向傳播、反向傳播、計算圖

      在前面幾節(jié)課的代碼演示中,我們都是先通過模型的正向傳播(forward propagation)對輸入計算模型輸出,利用損失函數(shù)得出預測值和真實值的損失值,然后使用反向傳播算法(back-propagation)快速計算目標函數(shù)關(guān)于各個參數(shù)梯度,最后使用隨機梯度下降算法(Stochastic Gradient Descent,SGD)基于前面得到的梯度值計算loss函數(shù)局部最小值,從而求解權(quán)重并更新網(wǎng)絡(luò)參數(shù)。

      模型訓練關(guān)鍵步驟

      基于反向傳播算法(back-propagation)的 動求梯度極 簡化了深度學習模型訓練算法的實現(xiàn)。

      這 節(jié)我們將使 數(shù)學和計算圖(computational graph)兩個 式來描述正向傳播和反向傳播。具體地,我們將以帶 L2 范數(shù)正則化的單隱藏層感知機為樣例模型解釋正向傳播和反向傳播。

      1.正向傳播

      正向傳播是指對神經(jīng) 絡(luò)沿著從輸 層到輸出層的順序,依次計算并存儲模型的中間變量(包括輸出)。為簡單起 ,假設(shè)輸 是 個特征為 x Rd 的樣本,且不考慮偏差項,那么中間變量

      網(wǎng)絡(luò)計算的中間變量

      其中W(1) Rh d 是隱藏層的權(quán)重參數(shù)。把中間變量z Rh 輸 按元素操作的激活函數(shù)? 后,

      我們將得到向量 度為h 的隱藏層變量

      h = ?(z).

      隱藏變量h 也是 個中間變量。假設(shè)輸出層參數(shù)只有權(quán)重W(2) Rq h,我們可以得到向量 度

      為q 的輸出層變量

      o = W(2)h.

      假設(shè)損失函數(shù)為?,且樣本標簽為y,我們可以計算出單個數(shù)據(jù)樣本的損失項

      L = ?(o, y)

      根據(jù)L2 范數(shù)正則化的定義,給定超參數(shù)λ,正則化項即

      正則化懲罰項

      其中矩陣的Frobenius 范數(shù)等價于將矩陣變平為向量后計算L2 范數(shù)。最終,模型在給定的數(shù)據(jù)

      樣本上帶正則化的損失為

      J = L + s.

      我們將J 稱為有關(guān)給定數(shù)據(jù)樣本的 標函數(shù),并在以下的討論中簡稱 標函數(shù)。

      2.正向傳播的計算圖

      通常繪制計算圖來可視化運算符和變量在計算中的依賴關(guān)系,一般來說,計算圖中左下角是輸入,右上角是輸出。其中方框代表變量,圓圈代表運算符,箭頭表示從輸入到輸出之間的依賴關(guān)系。

      正向傳播的計算圖

      3.反向傳播

      反向傳播指的是計算神經(jīng)網(wǎng)絡(luò)參數(shù)梯度的方法??偟膩碚f,反向傳播依據(jù)微積分中的鏈式法則,沿著從輸出層到輸入層的順序,依次計算并存儲目標函數(shù)有關(guān)神經(jīng)網(wǎng)絡(luò)各層的中間變量以及參數(shù)的梯度。對輸入或輸出X , Y , Z 為任意形狀張量的函數(shù)Y = f ( X ) 和Z = g ( Y ) ,通過鏈式法則,有:

      鏈式法則求導

      其中prod運算將根據(jù)兩個輸入的形狀,在必要的操作(如轉(zhuǎn)置和互換輸入位置)后對兩個輸入做乘法。

      例中的模型,它的參數(shù)是W(1) 和W(2) ,因此反向傳播的目標是計算目標函數(shù)對參數(shù)的導數(shù) J/ W(1)和 J/ W(2)。

      應(yīng)用鏈式法則則依次計算各中間變量和參數(shù)的梯度,其計算次序與前向傳播中相應(yīng)中間變量的計算次序恰恰相反。

      首先,分別計算目標函數(shù)J = L + s 有關(guān)損失項L和正則項s 的梯度:

      其次,依據(jù)鏈式法則計算目標函數(shù)有關(guān)輸出層變量的梯度 J/ o Rq:

      接下來,計算正則項有關(guān)兩個參數(shù)的梯度:

      現(xiàn)在,我們可計算最靠近輸出層的模型參數(shù)的梯度 J/ W(2) Rq h。依據(jù)鏈式法則,得到:

      沿著輸出層向隱藏層繼續(xù)反向傳播,隱藏層變量的梯度 J/ h Rh 計算如下:

      由于激活函數(shù)?是按元素運算的,中間變量z 的梯度 J/ z Rh的計算需要使用按元素乘法符 :

      最終,可以得到最靠近輸入層的模型參數(shù)的梯度 J/ W(1) Rh d。依據(jù)鏈式法則,得到:

      4.正向傳播和反向傳播的訓練關(guān)系

      在訓練深度學習模型時,正向傳播和反向傳播之間相互依賴。

      一方面,正向傳播的計算可能依賴于模型參數(shù)的當前值。而這些模型參數(shù)是在反向傳播的梯度計算后通過優(yōu)化算法迭代的。

      例如,計算正則化項

      依賴模型參數(shù)W(1) 和 W(2) 的當前值。而這些當前值是優(yōu)化算法最近 次根據(jù)反向傳播算出梯度后迭代得到的。

      另一方面,反向傳播的梯度計算可能依賴于各變量的當前值。而這些變量的當前值是通過正向傳播計算得到的。舉例來說,參數(shù)梯度 J/ W(2) = ( J/ o)hT + λW(2) 的計算需要依賴隱藏層變量的當前值 h。這個當前值是通過從輸 層到輸出層的正向傳播計算并存儲得到的。

      因此,在模型參數(shù)初始化完成后,我們交替地進 正向傳播和反向傳播,并根據(jù)反向傳播計算的梯度迭代模型參數(shù)。既然我們在反向傳播中使 了正向傳播中計算得到的中間變量來避免重復計算,那么這個重 也導致正向傳播結(jié)束后不能 即釋放中間變量內(nèi)存。這也是訓練要 預測占 更多內(nèi)存的 個重要原因。另外需要指出的是,這些中間變量的個數(shù)跟 絡(luò)層數(shù)線性相關(guān),每個變量的 小跟批量 小和輸 個數(shù)也是線性相關(guān)的,它們是導致較深的神經(jīng) 絡(luò)使 較 批量訓練時更容易超內(nèi)存的主要原因。

      總結(jié)

      正向傳播沿著從輸 層到輸出層的順序,依次計算并存儲神經(jīng) 絡(luò)的中間變量。

      反向傳播沿著從輸出層到輸 層的順序,依次計算并存儲神經(jīng) 絡(luò)中間變量和參數(shù)的梯度。

      所謂反向傳播,傳播的是損失,也就是根據(jù)最后的損失,計算網(wǎng)絡(luò)中每一個節(jié)點的梯度,這里利用了鏈式法則,使得梯度的計算并不是很復雜。

      在訓練深度學習模型時,正向傳播和反向傳播相互依賴。

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
      用戶投稿
      上一篇 2022年6月25日 18:43
      下一篇 2022年6月25日 18:43

      相關(guān)推薦

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時間:周一至周五,10:30-18:30,節(jié)假日休息