***11 ***訓(xùn)練神經(jīng)網(wǎng)絡(luò) 第二部分
現(xiàn)在我們有了一個(gè)明確的目標(biāo):最小化神經(jīng)網(wǎng)絡(luò)的損失。通過(guò)調(diào)整網(wǎng)絡(luò)的權(quán)重和截距項(xiàng),我們可以改變其預(yù)測(cè)結(jié)果,但如何才能逐步地減少損失?
這一段內(nèi)容涉及到多元微積分,如果不熟悉微積分的話,可以跳過(guò)這些數(shù)學(xué)內(nèi)容。
為了簡(jiǎn)化問(wèn)題,假設(shè)我們的數(shù)據(jù)集中只有Alice:
假設(shè)我們的網(wǎng)絡(luò)總是輸出0,換言之就是認(rèn)為所有人都是男性。損失如何?
那均方差損失就只是Alice的方差:
也可以把損失看成是權(quán)重和截距項(xiàng)的函數(shù)。讓我們給網(wǎng)絡(luò)標(biāo)上權(quán)重和截距項(xiàng):
這樣我們就可以把網(wǎng)絡(luò)的損失表示為:
假設(shè)我們要優(yōu)化 ,當(dāng)我們改變
時(shí),損失
會(huì)怎么變化?可以用
來(lái)回答這個(gè)問(wèn)題,怎么計(jì)算?
接下來(lái)的數(shù)據(jù)稍微有點(diǎn)復(fù)雜,別擔(dān)心,準(zhǔn)備好紙和筆。
首先,讓我們用來(lái)改寫這個(gè)偏導(dǎo)數(shù):
因?yàn)槲覀円呀?jīng)知道 ,所以我們可以計(jì)算
現(xiàn)在讓我們來(lái)搞定。
分別是其所表示的神經(jīng)元的輸出,我們有:
由于 只會(huì)影響
(不會(huì)影響
),所以:
對(duì),我們也可以這么做:
在這里,是身高,
是體重。這是我們第二次看到
(S型函數(shù)的導(dǎo)數(shù))了。求解:
稍后我們會(huì)用到這個(gè) 。
我們已經(jīng)把分解成了幾個(gè)我們能計(jì)算的部分:
這種計(jì)算偏導(dǎo)的方法叫『反向傳播算法』(backpropagation)。
好多數(shù)學(xué)符號(hào),如果你還沒(méi)搞明白的話,我們來(lái)看一個(gè)實(shí)際例子。
***12 ***例子:計(jì)算偏導(dǎo)數(shù)
我們還是看數(shù)據(jù)集中只有Alice的情況:
把所有的權(quán)重和截距項(xiàng)都分別初始化為1和0。在網(wǎng)絡(luò)中做前饋計(jì)算:
網(wǎng)絡(luò)的輸出是,對(duì)于Male(0)或者Female(1)都沒(méi)有太強(qiáng)的傾向性。算一下
提示: 前面已經(jīng)得到了S型激活函數(shù)的導(dǎo)數(shù) 。
搞定!這個(gè)結(jié)果的意思就是增加也會(huì)隨之輕微上升。
***13 ***訓(xùn)練:隨機(jī)梯度下降
現(xiàn)在訓(xùn)練神經(jīng)網(wǎng)絡(luò)已經(jīng)萬(wàn)事俱備了!我們會(huì)使用名為隨機(jī)梯度下降法的優(yōu)化算法來(lái)優(yōu)化網(wǎng)絡(luò)的權(quán)重和截距項(xiàng),實(shí)現(xiàn)損失的最小化。核心就是這個(gè)更新等式:
是一個(gè)常數(shù),被稱為學(xué)習(xí)率,用于調(diào)整訓(xùn)練的速度。我們要做的就是用
減去
- 如果
是正數(shù),
變小,
會(huì)下降。
- 如果
是負(fù)數(shù),
會(huì)變大,
會(huì)上升。
如果我們對(duì)網(wǎng)絡(luò)中的每個(gè)權(quán)重和截距項(xiàng)都這樣進(jìn)行優(yōu)化,損失就會(huì)不斷下降,網(wǎng)絡(luò)性能會(huì)不斷上升。
我們的訓(xùn)練過(guò)程是這樣的:
- 從我們的數(shù)據(jù)集中選擇一個(gè)樣本,用隨機(jī)梯度下降法進(jìn)行優(yōu)化——每次我們都只針對(duì)一個(gè)樣本進(jìn)行優(yōu)化;
- 計(jì)算每個(gè)權(quán)重或截距項(xiàng)對(duì)損失的偏導(dǎo)(例如
等);
- 用更新等式更新每個(gè)權(quán)重和截距項(xiàng);
- 重復(fù)第一步;
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4811瀏覽量
103061 -
神經(jīng)元
+關(guān)注
關(guān)注
1文章
368瀏覽量
18782 -
python
+關(guān)注
關(guān)注
56文章
4825瀏覽量
86383
發(fā)布評(píng)論請(qǐng)先 登錄
人工神經(jīng)網(wǎng)絡(luò)原理及下載
labview BP神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)
【PYNQ-Z2試用體驗(yàn)】神經(jīng)網(wǎng)絡(luò)基礎(chǔ)知識(shí)
卷積神經(jīng)網(wǎng)絡(luò)如何使用
【案例分享】ART神經(jīng)網(wǎng)絡(luò)與SOM神經(jīng)網(wǎng)絡(luò)
人工神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)方法有哪些?
如何構(gòu)建神經(jīng)網(wǎng)絡(luò)?
matlab實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò) 精選資料分享
基于BP神經(jīng)網(wǎng)絡(luò)的PID控制
卷積神經(jīng)網(wǎng)絡(luò)一維卷積的處理過(guò)程
用Python從頭實(shí)現(xiàn)一個(gè)神經(jīng)網(wǎng)絡(luò)來(lái)理解神經(jīng)網(wǎng)絡(luò)的原理1

用Python從頭實(shí)現(xiàn)一個(gè)神經(jīng)網(wǎng)絡(luò)來(lái)理解神經(jīng)網(wǎng)絡(luò)的原理2

用Python從頭實(shí)現(xiàn)一個(gè)神經(jīng)網(wǎng)絡(luò)來(lái)理解神經(jīng)網(wǎng)絡(luò)的原理4

評(píng)論