吃瓜學(xué)習(xí)筆記4-第五章神經(jīng)網(wǎng)絡(luò)(感知機(jī)、多層前饋網(wǎng)絡(luò)、誤差逆?zhèn)鞑ニ惴˙P,過(guò)擬合)

感知機(jī)

感知機(jī) 由兩層神經(jīng)元組成, 如圖5.3 所示,輸入層接收外界輸入信號(hào)后傳遞給輸出層, 輸出層是M-P 神經(jīng)元,亦稱"閾值邏輯單元"?

其中感知機(jī)是用在線性可分的數(shù)據(jù)集上。感知機(jī)的目的就是能得到一個(gè)對(duì)數(shù)據(jù)集T中的正負(fù)樣本完全正確劃分的超平面,其中w^Tx-\theta =0就是超平面方程

什么叫線性可分?就是找到一個(gè)超平面把數(shù)據(jù)分開。

什么叫超平面?

超平面就是能把數(shù)據(jù)集分開的,比如說(shuō)在一維可以用點(diǎn)區(qū)分,點(diǎn)就是超平面;二維可以用線條區(qū)分,線條就是超平面;三維可以用一個(gè)平面區(qū)分,平面就是超平面;

各個(gè)維度的超平面

感知機(jī)學(xué)習(xí)策略︰隨機(jī)初始化w,b,將全體訓(xùn)練樣本代入模型找出誤分類樣本,假設(shè)此時(shí)誤分類樣本集合為M \sqsubseteq T,對(duì)任意一個(gè)誤分類樣本(x, y) ∈M來(lái)說(shuō),當(dāng)w^T -\theta ≥0時(shí),模型輸出值\hat{y} =1,樣本真實(shí)標(biāo)記為y =0;反之,當(dāng)w^T -\theta <0時(shí),模型輸出值為\hat{y} =0,樣本真實(shí)標(biāo)記為y = 1。綜合兩種情形可知,以下公式恒成立

(\hat{y}-y )(w^Tx-\theta )≥0

所以,給定數(shù)據(jù)集T,其損失函數(shù)可以定義為:

L(w,\theta )=\sum_{x\epsilon M}(\hat{y}-y )(w^Tx-\theta )

只要讓損失函數(shù)最小化,就可以得到w和\theta ,從而得到超平面的方程w^Tx-\theta =0


神經(jīng)網(wǎng)絡(luò)

要解決非線性可分問(wèn)題,需考慮位多層功能神經(jīng)元. 例如圖5.5 中這個(gè)簡(jiǎn)單的兩層感知機(jī)就能解決異或問(wèn)題.?


圖5.5 能解決異或問(wèn)題的兩層感知機(jī)

什么叫非線性可分問(wèn)題?就是不能用點(diǎn)或線或平面劃分。如下,找不到一條藍(lán)線把正負(fù)分開。這時(shí)候我們用多層感知機(jī)來(lái)做。



多層前饋網(wǎng)絡(luò):每層神經(jīng)元與下一層神經(jīng)元全互連,神經(jīng)元之間不存在同層連接,也不存在跨層連接。(隱層閾值\gamma h,輸出層閾值\theta j)


多層前饋網(wǎng)絡(luò)

隱含層和輸出層神經(jīng)元都是擁有激活函數(shù)的功能神經(jīng)元.

其中,如果做(單輸出)回歸,那么我們最后的預(yù)測(cè)結(jié)果,用到的函數(shù)是y=w^Tx^*+b ,無(wú)激活函數(shù)。我們的誤差用的是均方差誤差。

如果做分類{0,1},那么我們最后的預(yù)測(cè)結(jié)果,用到的激活函數(shù)如下。我們用到的誤差是交叉熵。

某個(gè)訓(xùn)練樣本(x_{k} ,y_{k} ),其中y_{k} =(y_{1}^k,y_{2}^k,....y_{l}^k ),假定其多層前饋網(wǎng)絡(luò)的輸出為\hat{y}_{k} =(\hat{y}_{1}^k,\hat{y}_{2}^k,....\hat{y}_{l}^k ),則該單個(gè)樣本的均方誤差(損失)為

然后用下列的BP算法求出w,b。

誤差逆?zhèn)鞑ニ惴?/b>


誤差逆?zhèn)鞑?error BackPropagation,簡(jiǎn)稱BP)算法就是其中最杰出的代表.它是迄今最成功的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法.現(xiàn)實(shí)任務(wù)中使用神經(jīng)網(wǎng)絡(luò)時(shí),大多是在使用BP 算法進(jìn)行訓(xùn)練.值得指出的是, BP 算法不僅可用于多層前饋神經(jīng)網(wǎng)絡(luò),還可用于其他類型的神經(jīng)網(wǎng)絡(luò). 例如訓(xùn)練遞歸神經(jīng)網(wǎng)絡(luò). 但通常說(shuō)"BP 網(wǎng)絡(luò)"時(shí),一般是指用BP 算法訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò).

誤差逆?zhèn)鞑ニ惴?BP算法)︰基于隨機(jī)梯度下降的參數(shù)更新算法。


隨機(jī)梯度一般指的是一次迭代隨機(jī)抽取一個(gè)樣本進(jìn)行梯度下降。普通梯度是一次迭代所有樣本進(jìn)行梯度下降。

假設(shè)隱藏層和輸出層激活函數(shù)是sigmoid函數(shù),誤差用的是均方差誤差。

對(duì)單個(gè)訓(xùn)練樣本 (x_{k},y_{k}) , 假設(shè)神經(jīng)網(wǎng)絡(luò)的輸出為\hat{y}_{k} =(\hat{y}_{1}^k,\hat{y}_{2}^k,....\hat{y}_{l}^k ),即

(5.3)

則網(wǎng)絡(luò)在 (x_{k},y_{k})上的均方誤差為

5.4

BP 算法基于梯度下降(gradient descent)策略, 以目標(biāo)的負(fù)梯度方向?qū)?shù)進(jìn)行調(diào)整. 對(duì)式(5 .4) 的誤差Ek, 給定學(xué)習(xí)率η,有


5.6




學(xué)習(xí)率η屬于(0 , 1) 控制著算沾每一輪迭代中的更新步長(zhǎng),若太大則容易振蕩,太小則收斂速度又會(huì)過(guò)慢.有時(shí)為了做精細(xì)調(diào)節(jié)、可令式(5.11) 與(5.12) 使用η1 ,式(5.13) 與(5.14) 使用η2?, 兩者未必相等.

過(guò)擬合現(xiàn)象

BP算法容易過(guò)擬合,兩種方法。

一種策略是"早停" (early stopping): 將數(shù)據(jù)分成訓(xùn)練集和驗(yàn)證集,訓(xùn)練集用來(lái)計(jì)算梯度、更新連接權(quán)和閾值,驗(yàn)證集用來(lái)估計(jì)誤差,若訓(xùn)練集誤差降低但驗(yàn)證集誤差升高,則停止訓(xùn)練,同時(shí)返回具有最小驗(yàn)證集誤差的連接權(quán)和閾值.

?第二種策略是"正則化" (regularization),其基本思想是在誤差目標(biāo)函數(shù)中增加一個(gè)用于描述網(wǎng)絡(luò)復(fù)雜度的部分,例如連接權(quán)與閾值的平方和.仍令Ek 表示第k 個(gè)訓(xùn)練樣例上的誤差,wi表示連接權(quán)和閾值,則誤差目標(biāo)函數(shù)(5.16) 改變?yōu)?/p>


其中λ∈(0 , 1) 用于對(duì)經(jīng)驗(yàn)誤差與網(wǎng)絡(luò)復(fù)雜度這兩項(xiàng)進(jìn)行折中,常通過(guò)交叉驗(yàn)證法來(lái)估計(jì).

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容