原文地址:神經(jīng)網(wǎng)絡(luò)-BP神經(jīng)網(wǎng)絡(luò)
感知器作為初代神經(jīng)網(wǎng)絡(luò)侥锦,具有簡(jiǎn)單、計(jì)算量小等優(yōu)點(diǎn)德挣,但只能解決線性問(wèn)題恭垦。BP神經(jīng)網(wǎng)絡(luò)在感知器的基礎(chǔ)上,增加了隱藏層格嗅,通過(guò)任意復(fù)雜的模式分類能力和優(yōu)良的多維函數(shù)映射能力番挺,解決了異或等感知器不能解決的問(wèn)題,并且BP神經(jīng)網(wǎng)絡(luò)也是CNN等復(fù)雜神經(jīng)網(wǎng)絡(luò)等思想根源屯掖。
1玄柏、基本概念
BP神經(jīng)網(wǎng)絡(luò)是一種通過(guò)誤差反向傳播算法進(jìn)行誤差校正的多層前饋神經(jīng)網(wǎng)絡(luò),其最核心的特點(diǎn)就是:信號(hào)是前向傳播贴铜,而誤差是反向傳播粪摘。前向傳播過(guò)程中,輸入信號(hào)經(jīng)由輸入層绍坝、隱藏層逐層處理徘意,到輸出層時(shí),如果結(jié)果未到達(dá)期望要求轩褐,則進(jìn)入反向傳播過(guò)程椎咧,將誤差信號(hào)原路返回,修改各層權(quán)重把介。
2勤讽、BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
BP神經(jīng)網(wǎng)絡(luò)包含輸入層蟋座、隱藏層和輸出層,其中脚牍,隱藏層可有多個(gè)向臀,其中,輸入層和輸出層的節(jié)點(diǎn)個(gè)數(shù)是固定的(分別是輸入樣本的變量個(gè)數(shù)和輸出標(biāo)簽個(gè)數(shù))莫矗,但隱藏層的節(jié)點(diǎn)個(gè)數(shù)不固定飒硅。以具有單隱藏層的BP神經(jīng)網(wǎng)絡(luò)為例,其網(wǎng)絡(luò)結(jié)構(gòu)如下圖:
3作谚、BP神經(jīng)網(wǎng)絡(luò)原理公式
以單隱藏層的BP神經(jīng)網(wǎng)絡(luò)為例三娩,各階段原理公式如下:
前向傳播。設(shè)輸入層有n個(gè)節(jié)點(diǎn)妹懒,隱藏層有q個(gè)節(jié)點(diǎn)雀监,輸出層有m個(gè)節(jié)點(diǎn),輸入層與隱藏層間的權(quán)重為V眨唬,隱藏層與輸出層的節(jié)點(diǎn)為W会前,輸入變量為X,則隱藏層和輸出層的輸出分別為:
誤差函數(shù)匾竿。設(shè)有p個(gè)輸入樣本瓦宜,則每個(gè)輸入樣本的誤差函數(shù)為:
根據(jù)誤差調(diào)整權(quán)重。函數(shù)是沿梯度的方向變化最快岭妖,BP神經(jīng)網(wǎng)絡(luò)中也是通過(guò)梯度下降法更新權(quán)重临庇。根據(jù)鏈?zhǔn)椒▌t及上述關(guān)系,可以得到權(quán)重W和V的變化公式分別為:
4昵慌、python代碼實(shí)現(xiàn)
這里假夺,我們用手寫數(shù)字圖片建立一個(gè)僅有1層隱藏層的BP神經(jīng)網(wǎng)絡(luò),并進(jìn)行訓(xùn)練及預(yù)測(cè)。每張圖片大小為8*8,因此有64個(gè)圖片像素變量及1個(gè)偏置項(xiàng)藕筋,共65個(gè)輸入層節(jié)點(diǎn);訓(xùn)練目標(biāo)是將手寫圖片判斷為0-9白嘁,因此有10個(gè)輸出層節(jié)點(diǎn);隱藏層節(jié)點(diǎn)數(shù)這里設(shè)置為100。圖片示例如下:
另外,這里兩個(gè)激活函數(shù)我們都選用sigmoid函數(shù)闺魏,且這個(gè)函數(shù)都導(dǎo)數(shù)有一個(gè)特點(diǎn),即f′(x)=f(x)(1?f(x))俯画。
step 1:導(dǎo)入相應(yīng)模塊及定義sigmoid、dsigmoid函數(shù)
step 2:建立BP神經(jīng)網(wǎng)絡(luò)模型
初始過(guò)程中司草,給定兩個(gè)權(quán)重V和W的初始值艰垂。訓(xùn)練過(guò)程中泡仗,首先給數(shù)據(jù)增加偏置項(xiàng),然后每次訓(xùn)練時(shí)猜憎,隨機(jī)選擇一個(gè)樣本娩怎,計(jì)算隱藏層和輸出層的輸出,并對(duì)W胰柑,V進(jìn)行更新截亦,同時(shí)每訓(xùn)練10000次計(jì)算一下預(yù)測(cè)準(zhǔn)確率。
step 3:結(jié)果計(jì)算
導(dǎo)入數(shù)據(jù)時(shí)柬讨,對(duì)輸入數(shù)據(jù)進(jìn)行歸一化處理崩瓤,不然sigmoid求導(dǎo)結(jié)果接近于0,權(quán)值的改變也將接近0踩官,無(wú)法學(xué)習(xí)却桶。
輸出結(jié)果如下,可以看到隨著訓(xùn)練次數(shù)提升蔗牡,模型準(zhǔn)確率穩(wěn)定在0.95颖系、0.96。
相關(guān)推薦: