DL01-2:感知器訓(xùn)練的數(shù)學(xué)基礎(chǔ)

摘要:

1、感知器的數(shù)學(xué)本質(zhì);

2、感知器的訓(xùn)練過程;

3、感知器訓(xùn)練過程的數(shù)學(xué)計(jì)算公式;

4、感知器訓(xùn)練的數(shù)學(xué)推導(dǎo);

1、感知的數(shù)學(xué)本質(zhì)

????????感知器的數(shù)學(xué)本質(zhì)是一個(gè)函數(shù)(如果不考慮激活函數(shù),這應(yīng)該是一個(gè)線性函數(shù))。輸入一組特征數(shù)據(jù)?x? = (x1,x2,?,xn),經(jīng)過感知器處理輸出一個(gè)特征數(shù)據(jù)y。?

? ? ? ? 使用圖示如下:


感知器示意圖

? ? ? ? 使用公式表示入:

感知器數(shù)學(xué)公式表示

????????不考慮激活函數(shù)的情況,實(shí)際上使用的是恒等激活函數(shù),恒等激活函數(shù):

恒等函數(shù)

2、感知器的分類與預(yù)測作用


感知器本質(zhì)是一個(gè)函數(shù),則可以用來分類與預(yù)測

????????上圖對單獨(dú)一個(gè)感知器來說,只能對線性可分的樣本具有很好的分類作用,因?yàn)楦兄鞅举|(zhì)是一個(gè)線性函數(shù)(所以分類的圖表達(dá)不是特別正確)。

? ? ? ? 分類:找到一個(gè)函數(shù),使得不同類樣本在函數(shù)表示的曲線(對感知器來講應(yīng)該是直線)的兩側(cè),從數(shù)學(xué)來講,比如:函數(shù)輸出是0就是A類樣本,如果函數(shù)輸出是1就是B類樣本。

? ? ? ? 預(yù)測:找到一個(gè)函數(shù),使所有樣本都在盡量靠近直線,這樣對函數(shù)輸入任何未知數(shù)據(jù),其輸出值就是預(yù)測結(jié)果。

? ? ? ? 分類與預(yù)測本質(zhì)都是一樣,都是找到一個(gè)合適的函數(shù),最后只是對函數(shù)的使用不同而已。

注意:在后面的講解中,我們重點(diǎn)考慮分類的情況,預(yù)測的情況需要的時(shí)候,再單獨(dú)作為主題講解。

3、感知器訓(xùn)練

? ? ? ? 找到一個(gè)合適函數(shù)的過程就是感知器訓(xùn)練,對下面具體的數(shù)學(xué)公式來說,就是找到一組合適的權(quán)重,使得樣本的輸出與預(yù)期的結(jié)果接近,最好是完全一樣:

感知器的數(shù)學(xué)公式

? ? ? ? 權(quán)重表示如下:

權(quán)重表示

? ??????一般情況下,需要對加權(quán)求和做一個(gè)偏置運(yùn)算,這樣訓(xùn)練感知器的時(shí)候,更加方便(注意單個(gè)感知器情況,感知器本質(zhì)是一個(gè)線性函數(shù),線性函數(shù)就是一條直線,所謂訓(xùn)練感知器就是調(diào)整直線,調(diào)整直線就是調(diào)整直線的斜率截距)。其中最后一項(xiàng),作為加權(quán)求和的偏置項(xiàng)。如果把偏置項(xiàng)單獨(dú)表示出來,則如下。

感知器函數(shù)的截距表示

????????感知器訓(xùn)練過程可以使用如下示意圖描述:

感知器訓(xùn)練過程示意圖

????????其中x? 表示一組輸入的特征數(shù)據(jù),ω? 表示一組權(quán)重矩陣,表示如下:

輸入特征數(shù)據(jù)向量與權(quán)重向量

(1)隨意(一般采用隨機(jī)方式)初始化一組權(quán)重?ω? (包含截距);

(2)根據(jù)一直的輸入數(shù)據(jù)特征?x?、權(quán)重?ω?、激活函數(shù)?f,計(jì)算輸出?y;

(3)根據(jù)計(jì)算輸出 y,與樣本預(yù)期值 yˉ,計(jì)算ω?的調(diào)整值?;

(4)根據(jù)上一步計(jì)算出來的調(diào)整值??,調(diào)整?ω?。

? ? ? ? 對一組樣本反復(fù)迭代執(zhí)行上述過程,直到得到一組滿意的權(quán)重為止。

4、權(quán)重調(diào)整值的計(jì)算

? ? 【分析】

????????感知器的訓(xùn)練最麻煩的是計(jì)算權(quán)重的調(diào)整值計(jì)算。我們來分析下怎么計(jì)算權(quán)重的調(diào)整值:

?(1)首先要確定的是,調(diào)整權(quán)重的目的是,得到一組權(quán)重,使得輸入的特征數(shù)據(jù)的輸出達(dá)到我們分類的期望值。也就是感知器的實(shí)際輸出值期望輸出值誤差最小。

(2)我們希望找到一種度量實(shí)際輸出值期望輸出值之間的誤差度量方式,這種度量方式可以使用函數(shù)表示,這個(gè)函數(shù)稱為誤差損失函數(shù),也就是訓(xùn)練過程就是找到一組權(quán)重,使得誤差損失函數(shù)最小。

? ? 【損失函數(shù)表示】

? ??????????度量誤差的方式有很多種,最直觀的誤差度量方式就是距離差。這里我們采用均方誤差損失函數(shù),該函數(shù)表示如下:

均方誤差損失函數(shù)

? ? 【損失函數(shù)最小與極值】

? ? ? ? 怎么計(jì)算損失函數(shù)的最小值?這個(gè)在微積分中能找到答案:極小值。

(1)極大值與極小值

極大值與極小值就是函數(shù)在其定義域的某些局部區(qū)域所達(dá)到的相對最大值或相對最小值。當(dāng)函數(shù)在其定義域的某一點(diǎn)的值大于該點(diǎn)周圍 任何點(diǎn)的值時(shí),稱函數(shù)在該點(diǎn)有極 大值; 當(dāng)函數(shù)在其定義域的某一點(diǎn)的值小于該點(diǎn)周圍任何點(diǎn)的值時(shí), 稱函數(shù)在該點(diǎn)有極小值。這里的極大和極小只具有局部意義。

(2)極值點(diǎn)

極值點(diǎn)只能在函數(shù)不可導(dǎo)的點(diǎn)或?qū)?shù)為零的點(diǎn)上取得。

(3)極大值與極小值的數(shù)學(xué)解法

對于一元可微函數(shù)??(??),它在某點(diǎn)x0有極值的充分必要條件是??(??)在??0的某鄰域上一階可導(dǎo),在??0處二階可導(dǎo),且??'(??0)=0,??' '(??0)≠0,那么:

????????????1)若??' '(??0)<0,則f在x0取得極大值;

????????????2)若??' '(??0)>0,則f在x0取得極小值。

求解極值,直接解?? ' (??0)=0方程,可以得到極值點(diǎn)。

? ? 【極值點(diǎn)求解】

? ? ? ? 從上面的解釋中,訓(xùn)練過程就是找到一組合適的權(quán)重ω? ,使得上面定義的損失函數(shù)E?值極?。ㄔ谝欢ǖ木植糠秶鷥?nèi),也就是最小,下面我們都采用最小值的說法,表示在一定局部范圍內(nèi))。

? ? ? ? 由于損失函數(shù)E?值最小是對一組樣本而言的,就不能采用數(shù)學(xué)方程方法來直接求解損失函數(shù)E?的最小值,而是采用極限無限逼近的方法,逼近方法如下:

求解合適權(quán)重的逼近方法示意圖

? ? ? ? 注意:圖中x表示權(quán)重。

? ? ? ? 對極小值而言,ω? 的調(diào)整有如下規(guī)律:

規(guī)律一:權(quán)重方向調(diào)整規(guī)律:

????????(1)在極小值點(diǎn)左邊,權(quán)重值需要調(diào)小,這樣才能逼近極小值。

????????(2)在極小值點(diǎn)右邊,權(quán)重值需要調(diào)大,這樣才能逼近極小值。

規(guī)律二:權(quán)重速度調(diào)整規(guī)律

權(quán)重調(diào)整值的大小,影響逼近的速度。

(1)權(quán)重調(diào)整值小,逼近速度慢,但容易更加接近極小值點(diǎn)。

(2)權(quán)重調(diào)整值大,逼近速度快,但不容易更加接近極小值點(diǎn)。

????????權(quán)重的調(diào)整速度,用戶可以設(shè)置一個(gè)調(diào)整值來控制訓(xùn)練速度;但是怎么知道權(quán)重調(diào)小還是調(diào)大?這個(gè)可以利用極小值的數(shù)學(xué)原理:

在極小值點(diǎn)左邊的導(dǎo)數(shù)為負(fù),在極小值右邊的導(dǎo)數(shù)為正。

????【權(quán)重的調(diào)整值策略】

????????這樣就可以制定權(quán)重的調(diào)整值策略:

權(quán)重值調(diào)整策略

? ? 【?的計(jì)算】

? ? ? ? 我們也稱為? ?梯度

????????根據(jù)上面權(quán)重的調(diào)整值策略,只要得到?的計(jì)算公式,就能計(jì)算權(quán)重的調(diào)整值。而且?就是損失函數(shù)的導(dǎo)數(shù),我們使用導(dǎo)數(shù)的推算(這里采用偏導(dǎo)數(shù)的推導(dǎo)方式),就可以得到最終的計(jì)算公式,我們就從下面的公式開始推導(dǎo):

損失函數(shù)導(dǎo)數(shù)的偏導(dǎo)數(shù)表示

? ? ? ? 采用鏈?zhǔn)狡珜?dǎo)的推導(dǎo)方式,鏈?zhǔn)酵茖?dǎo)的依據(jù)在于感知器的數(shù)據(jù)運(yùn)算過程的拆分,然后反向鏈?zhǔn)酵茖?dǎo),得到損失函數(shù)的導(dǎo)數(shù)。我們先看看感知器的運(yùn)算過程表示:

感知器的計(jì)算過程

? ? ? ? 感知器從一組已知的數(shù)據(jù)特征?x? ,經(jīng)過加權(quán)求和運(yùn)算,最后經(jīng)過激活函數(shù)的運(yùn)算得到一個(gè)輸出 y。

? ? ? ? 在計(jì)算前,我們對誤差損失函數(shù)做一個(gè)簡化處理,由于均方差損失函數(shù),需要多所有樣本進(jìn)行計(jì)算,這在計(jì)算過車給中不現(xiàn)實(shí),就采用一個(gè)樣本來計(jì)算誤差損失,這就是隨機(jī)誤差損失,計(jì)算出來的?也稱為隨機(jī)梯度,隨機(jī)誤差損失函數(shù)表示如下:

隨機(jī)誤差損失函數(shù)

? ? ? ? 其中i表示第 i個(gè)數(shù)據(jù)特征對應(yīng)的樣本輸出的下標(biāo)。

????????下面就根據(jù)上面的計(jì)算過程與隨機(jī)誤差損失函數(shù)來進(jìn)行偏導(dǎo)數(shù)的鏈?zhǔn)酵茖?dǎo)。

梯度計(jì)算的推導(dǎo)過程

? ? ? ? 這是通用推導(dǎo)方式,可以采用標(biāo)量與向量兩種方式表示:

? ??????標(biāo)量表示

梯度的標(biāo)量表示

? ? ? ? 向量表示:

梯度的向量表示

注意:推導(dǎo)過程是按照感知器的計(jì)算過程反向推導(dǎo)的。這一點(diǎn)非常重要,在后面所有神經(jīng)網(wǎng)絡(luò)的推導(dǎo)中都遵循的規(guī)律。

提示:本主題的用到的公式,都在Github可以得到下載,下載格式是擴(kuò)展名為ipynb的IPython Notebook:https://github.com/QiangAI/AICode/blob/master/notebook/perceptron.ipynb

補(bǔ)充:到目前為止,權(quán)重的梯度更新公式如下:

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

相關(guān)閱讀更多精彩內(nèi)容

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