神經網絡反向傳播理解

一 、反向傳播的作用

訓練神經網絡的目標是 優化代價函數,使得代價函數找到一個 全局最小值或者局部最小值。不管使用何種梯度下降算法(BGD, SGD ,Adam),都需要先算出各個參數的梯度。 反向傳播的作用: 就是快速算出所有參數的偏導數。

二、 求導數的方式

求導數通常可以分爲兩類,一類是直接用定義,第二類是公式法(包括鏈式法)。
定義法:
在這裏插入圖片描述
定義法求導數存在問題: 當參數較多時(如:100萬),計算一個樣本所有的參數就需要計算 100萬次 C(w+&) , 和一次 C(w) ,計算量太大。所以導數定義法行不通。
若直接將 公式展開求導又太複雜,所以選擇用 鏈式求導法則 求所有參數的偏導。

三 、反向傳播的原理

反向傳播主要依賴於鏈式法則, y是複合函數:
在這裏插入圖片描述
反向傳播正是用到了 鏈式法則
反向傳播的優點在於: 盡力用一次前向傳播和一次反向傳播,就同時計算出所有參數的偏導數。 反向傳播計算量和前向傳播差不多,並且有效利用前向傳播過程中的計算結果,前向傳播的主要計算量 在 權重矩陣和input vector的乘法計算, 反向傳播則主要是 矩陣和input vector 的轉置的乘法計算。例子如下:

在這裏插入圖片描述
前向傳播 計算出 q =W.*x , 和 f(q) = q12 + q22+…+qn**2, 反向傳播先計算 f 對q 的偏導, 再計算 q 對W的偏導,得到f 對W的梯度。 利用了 前向傳播計算的q。

四 用計算圖解釋幾種求導方式

在這裏插入圖片描述
在這裏插入圖片描述
總結一下:路徑上所有邊相乘,所有路徑相加。
一般情形如下:
在這裏插入圖片描述
在這裏插入圖片描述
兩種求導模式:前向模式求導( forward-mode differentiation) 反向模式求導(reverse-mode differentiation)

前向模式:先求X對Y的影響,再求Y對Z的影響
在這裏插入圖片描述
後向模式: 先求Y對Z的影響,再求X對Y的影響。
在這裏插入圖片描述
這樣看起來 前向模式求導和反向模式求導,除了求導順序不同,好像沒什麼不同,那爲什麼要用反向模式求導,而不用前向模式求導呢?
求導順序不同, 求導複雜度也不同
舉例說明:
如果用前向求導模式:關於b向前求導一次
在這裏插入圖片描述
反向模式:
在這裏插入圖片描述
前向模式,一次只能求出 e對b的偏導, 而反向模式 可以同時 求出 e 對a 和b的偏導。使用前向模式求偏導,需要多次才能求出所有參數的偏導,而反向傳播一次就夠了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章