前向傳播和反向傳播都是神經(jīng)網(wǎng)絡(luò)訓(xùn)練中常用的重要算法。
前向傳播是指將輸入數(shù)據(jù)從輸入層開(kāi)始經(jīng)過(guò)一系列的權(quán)重矩陣和激活函數(shù)的計(jì)算后,最終得到輸出結(jié)果的過(guò)程。在前向傳播中,神經(jīng)網(wǎng)絡(luò)會(huì)將每一層的輸出作為下一層的輸入,直到輸出層得到最終的結(jié)果。
反向傳播是指在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程中,通過(guò)計(jì)算損失函數(shù)的梯度,將梯度從輸出層開(kāi)始逆向傳播到輸入層,以更新每一層的權(quán)重參數(shù)。在反向傳播中,通過(guò)計(jì)算梯度,可以得到每個(gè)神經(jīng)元的誤差,進(jìn)而調(diào)整其權(quán)重和偏置,以最小化損失函數(shù)。
前向傳播
反向傳播
-
??????????/?????? = ??’(????)
這個(gè)公式表示輸出層對(duì)輸入層的偏導(dǎo)數(shù),它等于激活函數(shù)關(guān)于輸入的導(dǎo)數(shù),即??’。 -
??????????/???????1 = ?????1 · (??????????/?????? ⊙ ??’(?????1?????1))
這個(gè)公式表示倒數(shù)第L-1層對(duì)第L層的偏導(dǎo)數(shù),它等于第L層權(quán)重矩陣?????1乘以(??????????/?????? ⊙ ??’(?????1?????1)),其中??’表示激活函數(shù)的導(dǎo)數(shù)。 -
??????????/???????1 = (??????????/?????? ⊙ ??’(?????1?????1)) · ?????1
這個(gè)公式表示對(duì)第L-1層的權(quán)重?????1求偏導(dǎo)數(shù),它等于(??????????/?????? ⊙ ??’(?????1?????1))乘以第L-1層的輸入?????1。
這些公式描述了反向傳播算法中的梯度計(jì)算過(guò)程,它們用于更新神經(jīng)網(wǎng)絡(luò)中的權(quán)重以最小化損失函數(shù)。
梯度下降
假設(shè)神經(jīng)網(wǎng)絡(luò)中只有兩個(gè)參數(shù) w 1 w_1 w1? 和 w 2 w_2 w2?。在梯度下降算法中,我們通過(guò)計(jì)算損失函數(shù) C C C 關(guān)于參數(shù)的偏導(dǎo)數(shù)來(lái)確定梯度方向,并乘以學(xué)習(xí)率 η \eta η 來(lái)確定參數(shù)更新的步幅。這樣反復(fù)迭代更新參數(shù),直到達(dá)到收斂或滿足停止條件。
具體步驟如下:
- 隨機(jī)選擇一個(gè)起始點(diǎn) θ 0 \theta_0 θ0?。
- 計(jì)算在 θ 0 \theta_0 θ0? 處的負(fù)梯度 ? ? C ( θ 0 ) -\nabla C(\theta_0) ??C(θ0?)。
- 將負(fù)梯度與學(xué)習(xí)率 η \eta η 相乘。
- 更新參數(shù):
θ 0 = θ 0 ? η ? ? C ( θ 0 ) \theta_0 = \theta_0 - \eta \cdot \nabla C(\theta_0) θ0?=θ0??η??C(θ0?)
其中, ? C ( θ 0 ) \nabla C(\theta_0) ?C(θ0?) 是損失函數(shù)關(guān)于參數(shù)的偏導(dǎo)數(shù)組成的梯度。在二維空間中,可以表示為 ? C ( θ 0 ) = ( ? C ( θ 0 ) ? w 1 , ? C ( θ 0 ) ? w 2 ) \nabla C(\theta_0) = \left(\cfrac{\partial C(\theta_0)}{\partial w_1}, \cfrac{\partial C(\theta_0)}{\partial w_2}\right) ?C(θ0?)=(?w1??C(θ0?)?,?w2??C(θ0?)?)。
通過(guò)不斷迭代更新參數(shù),我們可以優(yōu)化網(wǎng)絡(luò)的性能,使損失函數(shù)最小化。
局部最小值
梯度下降算法并不保證能夠達(dá)到全局最小值。不同的初始點(diǎn) θ 0 \theta_0 θ0? 可能會(huì)收斂到不同的局部最小值,因此會(huì)得到不同的結(jié)果。
這是因?yàn)樯窠?jīng)網(wǎng)絡(luò)的損失函數(shù)通常是非凸的,存在多個(gè)局部最小值。在非凸損失函數(shù)的情況下,梯度下降可能會(huì)陷入局部最小值而無(wú)法達(dá)到全局最小值。這就是為什么在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),初始點(diǎn)的選擇非常重要。
然而,盡管梯度下降可能無(wú)法找到全局最小值,但在實(shí)際應(yīng)用中,局部最小值往往已經(jīng)足夠好。此外,使用正則化和其他技巧可以幫助提高算法的魯棒性,減少陷入不良局部最小值的風(fēng)險(xiǎn)。
因此,雖然非凸損失函數(shù)可能帶來(lái)挑戰(zhàn),但梯度下降仍然是一種有效的優(yōu)化方法,廣泛應(yīng)用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)和其他機(jī)器學(xué)習(xí)模型中。
多層前饋網(wǎng)絡(luò)表示能力
只需要一個(gè)包含足夠多神經(jīng)元的隱層, 多層前饋神經(jīng)網(wǎng)絡(luò)就能以任意精度逼近任意復(fù)雜度的連續(xù)函數(shù)
多層前饋網(wǎng)絡(luò)局限
? 神經(jīng)網(wǎng)絡(luò)由于強(qiáng)大的表示能力, 經(jīng)常遭遇過(guò)擬合. 表現(xiàn)為:訓(xùn)練誤差持續(xù)降低, 但測(cè)試誤差卻可能上升
? 如何設(shè)置隱層神經(jīng)元的個(gè)數(shù)仍然是個(gè)未決問(wèn)題. 實(shí)際應(yīng)用中通常使用“試錯(cuò)法”調(diào)整文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-497641.html
緩解過(guò)擬合的策略
? 早停:在訓(xùn)練過(guò)程中, 若訓(xùn)練誤差降低, 但驗(yàn)證誤差升高, 則停止訓(xùn)練
? 正則化:在誤差目標(biāo)函數(shù)中增加一項(xiàng)描述網(wǎng)絡(luò)復(fù)雜程度的部分, 例如連接權(quán)值與閾值的平方和文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-497641.html
到了這里,關(guān)于【人工智能】— 神經(jīng)網(wǎng)絡(luò)、前向傳播、反向傳播、梯度下降、局部最小值、多層前饋網(wǎng)絡(luò)、緩解過(guò)擬合的策略的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!