學(xué)習(xí)筆記1.BP神經(jīng)網(wǎng)絡(luò)

1.基礎(chǔ)知識

神經(jīng)網(wǎng)絡(luò)(NN)主要是默認(rèn)人類腦結(jié)構(gòu)進(jìn)行的一種代碼程序結(jié)構(gòu)的表現(xiàn),同時是RNN,CNN,DNN的基礎(chǔ)。人工神經(jīng)網(wǎng)絡(luò)也稱為多層感知機(jī),相當(dāng)于將輸入數(shù)據(jù)通過前面多個全連接層網(wǎng)絡(luò)將原輸入特征進(jìn)行了一個非線性變換,將變換后的特征拿到最后一層的分類器去分類。 結(jié)構(gòu)上大體上分為三個部分(輸入,隱含,輸出)其中,輸入層主要是特征處理后的入口,隱含層用來訓(xùn)練相應(yīng)函數(shù),節(jié)點(diǎn)越多,訓(xùn)練出的函數(shù)就越復(fù)雜,輸出層輸出相應(yīng)的預(yù)測結(jié)果,比較常見的就是多分類了。

2.神經(jīng)網(wǎng)絡(luò)基本流程


激活函數(shù):

每一個神經(jīng)元都可以理解成一個函數(shù),這個函數(shù),是一種輸出到輸入的轉(zhuǎn)換,一般是非線性的,而且是單調(diào)可微函數(shù),例如,輸入神經(jīng)元理解為Fin(x),隱含神經(jīng)元理解為Fhn(x),輸出神經(jīng)元理解為Fou(x),每一層之間都是具有一個權(quán)重參數(shù)w(或者叫θ),每一層的輸出乘上權(quán)重參數(shù),都是下一層的輸入

常見激活函數(shù):

1、Sigmoid函數(shù)(也叫l(wèi)ogistics函數(shù))

2、Tanh函數(shù)(雙曲函數(shù))

3、sgn函數(shù)(階躍函數(shù))

4、ReLU函數(shù)

5、softmax函數(shù)

6、Linear函數(shù)

誤差函數(shù):

假定已經(jīng)給出神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),Y是X的標(biāo)簽,y是神經(jīng)網(wǎng)絡(luò)的輸出,其之間的差值,我們希望越小越好,也就有了誤差函數(shù)。本文用BP后向傳播來解決問題,其實(shí)就是誤差函數(shù)反推參數(shù)求導(dǎo)過程,下邊是過程

三層網(wǎng)絡(luò)的誤差后向傳播算法BP:

? ? ? ? 選擇了梯度下降法對誤差函數(shù)求解參數(shù),為什么選擇梯度下降法呢?

? ? ? ? 事實(shí)上,x可能不是一個標(biāo)量,而是一個矢量。參考多元函數(shù)的知識,梯度就是偏導(dǎo)數(shù)組成的矢量。梯度上的每個元素都會指明函數(shù)在該點(diǎn)處各個方向的斜率。因此梯度指向函數(shù)變化最快的方向。即指向變大最快的方向和變小最快的方向?qū)?yīng)正梯度和負(fù)梯度。之后通過梯度進(jìn)行迭代更新參數(shù)向量


? ? ? 上式是三層神經(jīng)網(wǎng)絡(luò)求出了所有參數(shù)偏導(dǎo)過程

? ? ? 之后利用迭代公式,更新w和b的值,直到偏導(dǎo)數(shù)很小停止,下邊有算法詳細(xì)步驟:

上邊是三層的過程,和總結(jié)出來的步驟。以下為x是向量,多層神經(jīng)網(wǎng)絡(luò)的表示:

3.多層BP神經(jīng)網(wǎng)絡(luò)

參考三層神經(jīng)網(wǎng)絡(luò)時我們總結(jié)出來的算法,隨機(jī)初始化(w,b),帶入隨機(jī)一個樣本(X,Y),正向傳播之后可以求出(Z,a,y)。之后鏈?zhǔn)椒▌t求偏導(dǎo),求最小化mini E。

我們知道偏導(dǎo)數(shù)之后,利用迭代公式,找到最優(yōu)化的參數(shù)。但是僅僅利用這些知識很難求解。

以下是一些改進(jìn):

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

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

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