神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,究竟在訓(xùn)練什么

前面我們已經(jīng)了解到神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測(cè)的過程,但是仍然留下許多疑問,比如權(quán)重值如何獲得,如何訓(xùn)練神經(jīng)網(wǎng)絡(luò)等,這些問題我們將在本文展開。


權(quán)重值如何得到

權(quán)重值也就是前文所提到的小蜘蛛的道具,沒有看過的朋友可以先看看我的上一個(gè)博客。

權(quán)重值該如何獲得呢?

我們以最簡(jiǎn)單的三個(gè)神經(jīng)元的神經(jīng)網(wǎng)絡(luò)舉例子:


最左邊的神經(jīng)元是起點(diǎn),最右邊的是終點(diǎn),只有中間的神經(jīng)元有權(quán)重值。

我們先來離散的獲得一部分點(diǎn):

我們可以隱約地看到這些點(diǎn)大約分布在一條直線附近, 我們把這條直線畫出來


那我們?nèi)绾瓮ㄟ^這幾個(gè)點(diǎn)來獲得這條紅色的線呢?

先來明確一個(gè)問題:獲得紅色的線有什么用?

  • 獲得紅色線后,我們可以提供一個(gè)x的值,然后預(yù)測(cè)y的值,雖然這個(gè)值不一定準(zhǔn)確,但是也在一個(gè)大概的范圍內(nèi)。

這十個(gè)已知的點(diǎn)分別是什么?


第一列表示x軸的坐標(biāo),第二列表示y軸的坐標(biāo)

其實(shí)思路就是用最小二乘法,先假設(shè)隨便畫一條線


我畫了一條y=0.1x+0.1的線如圖所示

y = wx + b

我令w=0.1, b=0.1

隨機(jī)給w和b賦值,不用在以是多少,先畫出來,有可能一次就能畫出紅色的線!

顯然我們畫的線差距很大,此時(shí)使用最小二乘法,就是每個(gè)點(diǎn)到直線的距離加起來,再用梯度下降法來優(yōu)化!


好的,如果我這么說,肯定和每說一樣,那么我一步一步

第一個(gè)點(diǎn)的坐標(biāo)是(1, 0.16375502570787515),我們把x=1帶入y=0.1x+0.1這個(gè)函數(shù),得到y(tǒng)=0.2

顯然我們正確的y應(yīng)該是0.163,那么正確的y,和我們?cè)趛=0.1x+0.1得到的y值差距是多大呢?差距是:(0.163-0.2)^2

我們要想辦法減小這個(gè)差距

差距是怎么得到的?預(yù)測(cè)值減去真實(shí)值再平方,用數(shù)學(xué)語言就是(0.1*1+0.1-0.2)^2 ==> (wx+b-2)^2

就是說我們要對(duì)函數(shù) (y - wx+b)^2 獲得的值最小,也就是求這個(gè)函數(shù)的最小值,高中數(shù)學(xué)就講到求函數(shù)最小值的方法就是求導(dǎo),這是二元函數(shù),就是高考最喜歡做的題目?。?!求導(dǎo)之后畫出導(dǎo)數(shù)函數(shù)的圖像,然后與0相交的點(diǎn)就是極小值點(diǎn)!大家應(yīng)該很熟悉這個(gè)步驟。

不過

這個(gè)函數(shù)有w和b兩個(gè)未知數(shù),我們的思路是正確的,只是不能通過這種方式獲得最小值,所以這里我們求的是對(duì)w和對(duì)b的偏導(dǎo)數(shù),(這里需要微積分學(xué)歷)對(duì)w的偏導(dǎo)數(shù)就是 2w(wx+b-y)。對(duì)b的偏導(dǎo)數(shù)就是2(wx+b-y)。

此時(shí)我們把第一個(gè)點(diǎn)的數(shù)據(jù)代入 x=1, y=0.163, w=0.1, b=0.1

對(duì)w的偏導(dǎo)數(shù)等于 0.0326

對(duì)b的偏導(dǎo)數(shù)等于 0.326


此時(shí),我們?cè)O(shè)定一個(gè)步長(zhǎng),也叫學(xué)習(xí)率,假設(shè)等于0.2吧,

對(duì)于步長(zhǎng)的理解,類似于我們?cè)谏巾?,找不到下山的路,那我們可以一小步一小步走,每走一小步,環(huán)顧四周,看看哪一邊最陡峭,就往那邊走一小步,不斷走,就可以到達(dá)山底。

那么,

  • 更新后的w等于 0.1 - (-0.0326) x 0.2 = 1.00652

  • 更新后的b等于 0.1 - (-0.326) x 0.2 = 1.0652


我們已經(jīng)更新了w和b的值,只要重復(fù)這個(gè)步驟足夠多的次數(shù),那么就可以得到很接近紅色的線。

其實(shí),這就是神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程。

過程總結(jié)

先把我們已經(jīng)有的值傳入網(wǎng)絡(luò),網(wǎng)絡(luò)一開始的權(quán)重值是隨機(jī)的,傳入網(wǎng)絡(luò)得到一個(gè)預(yù)測(cè)值,這個(gè)預(yù)測(cè)值會(huì)和真實(shí)值有一定的差距,那么我們優(yōu)化這個(gè)差距,讓這個(gè)差距變小,其實(shí)這就是一個(gè)反向傳播的過程,我們用數(shù)學(xué)計(jì)算來更新了w和b的值,那么下一次傳入網(wǎng)絡(luò)得到的預(yù)測(cè)值與真實(shí)值之間的距離就會(huì)減小,周而復(fù)始,這個(gè)距離不斷減小,我們就可以得到一個(gè)預(yù)測(cè)能力比較好的w和b,也就是擬合能力比較強(qiáng)的網(wǎng)絡(luò),就可以對(duì)未知的數(shù)據(jù)得到較為準(zhǔn)確的結(jié)果。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容