DL之BP:神经网络算法简介之BP算法简介(链式法则/计算图解释)、案例应用之详细攻略
DL之BP:神經(jīng)網(wǎng)絡(luò)算法簡介之BP算法簡介(鏈式法則/計算圖解釋)、案例應(yīng)用之詳細攻略
相關(guān)文章:DL之DNN之BP:神經(jīng)網(wǎng)絡(luò)算法簡介之BP算法/GD算法之不需要額外任何文字,只需要八張圖講清楚BP類神經(jīng)網(wǎng)絡(luò)的工作原理
?
?
目錄
BP算法思路簡介
1、神經(jīng)網(wǎng)絡(luò)訓(xùn)練的優(yōu)化目標
2、梯度下降
3、反向傳播(backpropagation)算法
4、前向傳播計算
5、反向傳播誤差信號
6、更新參數(shù)
鏈式法則
鏈式法則簡介
1、鏈式法則與復(fù)合函數(shù)
2、鏈式法則和計算圖
鏈式法則使用
BP算法原理推導(dǎo)—以三層神經(jīng)網(wǎng)絡(luò)為例
1、理論推導(dǎo)
1.1、前向傳播計算
數(shù)學(xué)式子描述該神經(jīng)網(wǎng)絡(luò):
(1)、一般情況下,同一層的激活函數(shù)都是一樣的,并且此處是進行二分類,所以隱藏層、輸出層都可以采用Sigmoid激活函數(shù)。
| 輸入數(shù)據(jù) | 隱藏層1 | 隱藏層2 | 輸出層 |
| 前向傳播計算 | ? | ||
| 經(jīng)過Sigmoid函數(shù)輸出 | 、、 | 、 |
1.2、反向傳播計算
? ? ? ? 反向傳播的計算過程。假設(shè)我們使用隨機梯度下降的方式來學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的參數(shù),損失函數(shù)定義為 L(y,y^),其中y是該樣本的真實類標。使用梯度下降進行參數(shù)的學(xué)習(xí),我們必須計算出損失函數(shù)關(guān)于 神經(jīng)網(wǎng)絡(luò)中各層參數(shù)(權(quán)重w和偏置b)的偏導(dǎo)數(shù)。
0、比如要對第k隱藏層參數(shù)w、b求偏導(dǎo)數(shù)
1、先計算、
因為偏置b是一個常數(shù)項,因此偏導(dǎo)數(shù)的計算也很簡單。
?
2、再計算
?
?
2、BP算法帶入實例推導(dǎo)
?
?
?
?
?
?
?
?
BP算法思路簡介
?? ? ? ?前饋神經(jīng)網(wǎng)絡(luò)(NN),而是和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的概念是相對的。而反向傳播方法可以用在FF網(wǎng)絡(luò)中,此時,基于反向傳播算法的前饋神經(jīng)網(wǎng)絡(luò),被稱為BP神經(jīng)網(wǎng)絡(luò)。? ? ? ?
?? ? ??反向傳播(Backpropagation)算法,深度學(xué)習(xí)模型采用梯度下降和誤差反向傳播進行模型參數(shù)更新。
?
1、神經(jīng)網(wǎng)絡(luò)訓(xùn)練的優(yōu)化目標
梯度下降(Gradient Descent):
- 求解非線性無約束優(yōu)化問題的最基本方法;
- 最小化損失函數(shù)的一種常用的一階優(yōu)化方法。
?
2、梯度下降
沿負梯度方向,函數(shù)值下降最快
?? ?? ?? ? ???
?
3、反向傳播(backpropagation)算法
深度學(xué)習(xí)模型,采用梯度下降和誤差反向傳播進行模型參數(shù)更新。
|
?
4、前向傳播計算
使用損失函數(shù)比較實際輸出和期望輸出
| 計算圖(Computation Graph):計算過程可以表示成有向圖的形式。 | |
| 前向計算過程: 計算各計算結(jié)點的導(dǎo)數(shù)。 |
?
5、反向傳播誤差信號
后向傳播誤差到前面的層,傳播的誤差用來計算損失函數(shù)的梯度。
| 計算損失函數(shù)?對各參數(shù)的梯度(偏導(dǎo)數(shù))
|
?
| 反向傳播(backpropagation)
|
?
6、更新參數(shù)
得到梯度以后,就可以進行更新參數(shù)。
?
?
鏈式法則
鏈式法則簡介
? ? ? ?鏈式法chain rule,屬于微積分領(lǐng)域,是微積分中的求導(dǎo)法則,用于求一個復(fù)合函數(shù)的導(dǎo)數(shù),是在微積分的求導(dǎo)運算中一種常用的方法。復(fù)合函數(shù)的導(dǎo)數(shù)將是構(gòu)成復(fù)合這有限個函數(shù)在相應(yīng)點的 導(dǎo)數(shù)的乘積,就像鎖鏈一樣一環(huán)套一環(huán),故稱鏈式法則。
?? ? ? 這個結(jié)論可推廣到任意有限個函數(shù)復(fù)合到情形,于是復(fù)合函數(shù)的導(dǎo)數(shù)將是構(gòu)成復(fù)合這有限個函數(shù)在相應(yīng)點的 導(dǎo)數(shù)的乘積,就像鎖鏈一樣一環(huán)套一環(huán),故稱鏈式法則。
?
1、鏈式法則與復(fù)合函數(shù)
? ? ? ? ?鏈式法則是關(guān)于復(fù)合函數(shù)的導(dǎo)數(shù)的性質(zhì):如果某個函數(shù)由復(fù)合函數(shù)表示,則該復(fù)合函數(shù)的導(dǎo)數(shù)可以用構(gòu)成復(fù)合函數(shù)的各個函數(shù)的導(dǎo)數(shù)的乘積表示。
? ? ? ? ?數(shù)學(xué)式表示
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
2、鏈式法則和計算圖
? ? ? ? 其中“**2”節(jié)點表示平方運算,沿著與正方向相反的方向,乘上局部導(dǎo)數(shù)后傳遞。反向傳播的計算順序是,先將節(jié)點的輸入信號乘以節(jié)點的局部導(dǎo)數(shù)(偏導(dǎo)數(shù)),然后再傳遞給下一個節(jié)點。
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ?
反向傳播是基于鏈式法則的。
(1)、根據(jù)計算圖的反向傳播的結(jié)果,dz/dx = 2(x + y)
(2)、乘法的反向傳播:左圖是正向傳播,右圖是反向傳播。
?? ? ? ? ??????
? ? ? ? 因為乘法的反向傳播會乘以輸入信號的翻轉(zhuǎn)值,所以各自可按1.3 × 5 =6.5、1.3 × 10 = 13 計算。另外,加法的反向傳播只是將上游的值傳給下游,并不需要正向傳播的輸入信號。但是,乘法的反向傳播需要正向傳播時的輸入信號值。因此,實現(xiàn)乘法節(jié)點的反向傳播時,要保存正向傳播的輸入信號。
(3)、購買蘋果的反向傳播的例子:這個問題相當(dāng)于求“支付金額關(guān)于蘋果的價格的導(dǎo)數(shù)”“支付金額關(guān)于蘋果的個數(shù)的導(dǎo)數(shù)”“支付金額關(guān)于消費稅的導(dǎo)數(shù)”。
?
?
鏈式法則使用
1、求導(dǎo)案例
?
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的DL之BP:神经网络算法简介之BP算法简介(链式法则/计算图解释)、案例应用之详细攻略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成功解决win10下dos中运行tens
- 下一篇: VB:使用Visual Studio 2