日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

李宏毅深度学习——Backpropagation

發(fā)布時間:2025/4/5 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 李宏毅深度学习——Backpropagation 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

引言?

求導(dǎo)法則?

回顧一下之前學(xué)習(xí)過的,在求解神經(jīng)網(wǎng)絡(luò)時,我們通常使用梯度下降算法進(jìn)行求解。首先,先自定義一組參數(shù)作為我們的起始值,之后計算我們需要使用的梯度,有了梯度之后就可以利用它進(jìn)行迭代求解了

顯而易見的是,在一個神經(jīng)網(wǎng)絡(luò)中,可能參數(shù)數(shù)目成千上萬,遠(yuǎn)超過我們的想象,那么這么龐大的計算量,我們就需要一些可以輔助我們的工具。backpropagation(反向傳播)可以幫助我們有效的進(jìn)行漸變迭代計算(幫助計算梯度)。

求導(dǎo)法則

第一種情況下,一元復(fù)合函數(shù)求導(dǎo),內(nèi)部求導(dǎo)與外部求導(dǎo)的乘積。

第二種情況下,多元復(fù)合函數(shù)求導(dǎo),劃分求導(dǎo)路徑,不同路徑求導(dǎo)后加和就行了。

backpropagation(反向傳播)

在計算損失函數(shù)函數(shù)的時候,總的損失函數(shù)可以寫成每一個訓(xùn)練樣本所構(gòu)成的損失函數(shù)之和。而每一個樣本所構(gòu)成的損失函數(shù)為這個樣本經(jīng)模型輸出后,模型的預(yù)測值與樣本實際值之間的差距。不管是交叉熵還是均方誤差都是在衡量這個差距。

那么為了分析總的損失函數(shù),對總的損失函數(shù)求導(dǎo),我們可以對每個樣本的損失函數(shù)進(jìn)行求導(dǎo)進(jìn)行分析,之后進(jìn)行求和分析就行了。先對上圖中紅色三角形的一個小的邏輯回歸進(jìn)行分析。

對一個邏輯回歸進(jìn)行分析,每個邏輯回歸先進(jìn)行一個線性的運算過程,在進(jìn)行一個sigmoid函數(shù)處理過程,當(dāng)然激活函數(shù)也是可以選擇其他激活函數(shù)的。

那么對損失函數(shù)求導(dǎo)就可以拆成兩項分布求導(dǎo)的積,如上圖,一項是損失函數(shù)對z求導(dǎo)(z為邏輯回歸中的線性方程),一項是z對我們需要梯度下降的參數(shù)w的求導(dǎo)。

z對w求導(dǎo)稱為前向傳播,損失函數(shù)對z求導(dǎo)稱為反向傳播。

???

那么我們就能夠很容易理解前向傳播了,對于前向傳播中的偏微分,這個值應(yīng)該是上一級的輸出值,這也代表了前向傳播中某一個參數(shù)的權(quán)重。?

接下來對反向傳播進(jìn)行求解分析,如圖2-4。從這一節(jié)神經(jīng)元向之后的神經(jīng)元看過去,對z需要進(jìn)行一個激活函數(shù)的運算(這個例子假設(shè)是sigmoid函數(shù)),后作為下一級的輸入。那我們的反向傳播的偏微分就可以寫成圖2-4中的相乘的形式,由損失函數(shù)對激活函數(shù)偏導(dǎo)乘激活函數(shù)對z偏導(dǎo)。

?那么另一部分怎么求解呢?假設(shè)我們這個模型是下一級只連接了兩個神經(jīng)元(更多神經(jīng)元如果理解這個后也就明白了),那么我們的輸出結(jié)果就會對之后的兩個神經(jīng)元產(chǎn)生影響,那么我們可以用求導(dǎo)的鏈?zhǔn)椒▌t去表示出上一步我們需要求解的部分,如上圖。我們發(fā)現(xiàn)圖中的兩個部分還是沒有求解出來,這個下文會接著說。

換一種思路去更好的理解反向傳播,如上圖??梢钥闯墒且粋€新的網(wǎng)絡(luò),這個網(wǎng)絡(luò)是和我們剛才的網(wǎng)絡(luò)輸入輸出是相反的。這個網(wǎng)絡(luò)輸入了下圖中的偏導(dǎo)數(shù),經(jīng)過上文中介紹的處理方式,得到了之前一級的偏導(dǎo)數(shù),這就是一種反向傳播。

而對于σ(z)函數(shù)的偏導(dǎo),z在輸入的時候就已經(jīng)確定了具體的大小,所以σ(z)函數(shù)的偏導(dǎo)也就是確定的常數(shù)了。

如上圖,當(dāng)下一層為輸出層的時候,由于我們在輸入樣本時是可以計算出輸出值y1和y2,所以這部分的偏導(dǎo)數(shù)也是可以很容易做出來的。

這種情況下,我們很容易想到,如果知道下一層的微分值,那么不是可以很容易求解出這一層的微分值嘛?

這時大家肯定想到了遞歸的思想,不斷的遞歸就可以推到輸出層從而計算出我們想要的結(jié)果。

從后往前比從前往后更加有效率

總結(jié)

最后在這個部分總結(jié)下bp,bp是為了簡化對神經(jīng)網(wǎng)絡(luò)做梯度下降時帶來的運算量巨大的問題。bp主要分為反向傳播和前向傳播。

前向傳播很容易,主要傳播的就是神經(jīng)網(wǎng)絡(luò)的輸入。這個每一級的輸入都會作為我們的偏導(dǎo)數(shù)來供我們?nèi)プ鎏荻认陆怠?/p>

反向傳播傳播的是損失函數(shù)對z的偏導(dǎo)(z是每一級線性方程的輸出),這個偏導(dǎo)數(shù)可以通過,從輸出層到輸入層的反向求解,使得運算達(dá)到進(jìn)一步的簡化。

總結(jié)

以上是生活随笔為你收集整理的李宏毅深度学习——Backpropagation的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。