神經網絡與深度學習筆記——神經網絡與梯度下降

利用神經網絡進行手寫體識別


兩種重要的人工神經網絡:感知機,sigmoid神經元。
神經網絡標準學習算法:sgd(隨機梯度下降)

Perceptrons(感知機)

二進制輸入x1,x2,x3...

perceptrons
sum=jwjxj ,其中wj 是對應輸入項的權重。

output={0,1,if sumthresholdif sum>threshold

當我們將多個感知機級聯起來,能得到一個更加豐富的函數網絡,如下:

multiple perceptrons

層級的關係,可以使得輸入到輸出的決策趨於抽象,從而在最終層得出一個抽象層次最高的決策。
當我們將感知機的公式進行簡化:

f(wx+b)={0,1,if wx+b0if wx+b>0
x= 一條樣本輸入的行向量,w= 感知機權重的列向量,b=threshold

感知機不僅可以權衡輸入,還能實現電路邏輯函數。

nand

上圖實現了nand(與非)邏輯運算。因此感知機網絡可以像普通邏輯電路一樣實現任意的函數。下圖是對 運算符的實現:

xor
xor

到目前爲止,感知機網絡似乎就是另一種形式的邏輯電路。但是,利用學習算法,我們可以藉助外部的數據刺激,使網絡中的參數自動地調整,以得到期望的函數結果。

Sigmoid 神經元

期待的學習算法:對參數進行細微的調整Δw ,得到輸出結果細微的改變Δoutput ,根據Δoutput 繼續對參數進行細微的調整,直到最優。

這裏寫圖片描述

通過上述感知機的定義公式,可以發現,limz0+f(z)limz0f(z) ,即f(z)z=0 處間斷,無法滿足上述期待。
我們需要一個連續的函數才能獲得上述性質。

引入Sigmoid神經元:
形式上與感知機類似,而輸入x1,x2,x3... 範圍變爲(0,1) 的實數且f(x)=σ(wx+b) ,其中σ(z)1/1+ez ,也叫logistic 函數。

這裏寫圖片描述

這裏寫圖片描述
這裏寫圖片描述
由於sigmoid函數的連續性,我們可以得到:

Δoutput=joutputwjΔwj+outputbΔb

性質
1.感知機網絡中,wb 同時乘以c(c>0),網絡的功能不改變。
2.若網絡中任一神經元的輸入wx+b0 ,在輸入值x 不變,c+ 的情況下,sigmoid神經網絡與原感知機網絡功能一致。

f(wx+b)f(c(wx+b))limc+σ(c(wx+b))

神經網絡結構

MLP(sigmoid 神經元):

這裏寫圖片描述

mnist手寫字體識別:

這裏寫圖片描述

28*28的輸入灰度圖片
cost函數:均方誤差

C(w,b)12nxy(x)a2.

y(x) 是正確的標籤值。
事實上,10分類僅僅需要4位二進制即可完全表示,但實驗顯示10個神經元的輸出層效果優於4個神經元。這在一定程度上可以理解爲神經網絡在完成圖像識別的基礎上完成了一個編碼器的工作。

這裏寫圖片描述

以梯度下降的方式學習

由於自變量數量衆多,利用微積分求多元函數的極值方法求解最優值相對複雜,因此需要新的解決方案。
C(w,b) 僅爲二元函數,則其圖像如下:

這裏寫圖片描述

由多元函數的微分我們可以得到:

ΔCCv1Δv1+Cv2Δv2.

我們似乎能夠以偏導數爲標準來設定Δv1Δv2 ,使得ΔC
C
C(Cv1,Cv2)T

因此,
ΔCCΔv
,此時我們取Δv=ηC, 可使得函數C 沿着梯度方向不斷減少。最終的迭代公式爲:
vv=vηC.

當維度推廣至多維時,上述迭代仍然成立。另外,梯度方向也是函數變化最快的方向,在相同的步長下,梯度下降是最優的。
wkblwk=wkηCwkbl=blηCbl.

由上述cost 函數公式可知C=1nxCx,Cxy(x)a22 ,n 爲樣本數。當n 較大時,計算速度較慢,於是引入隨機梯度下降。具體做法:每次隨機的從總樣本中選取m 個樣本,並以X1,X2,,Xmm<=n 作爲迭代的數據,其中mbatch 的大小。直至總樣本被全部使用,完成一個epoch
C1mj=1mCXj

此時,迭代公式如下:
wkblwk=wkηmjCXjwkbl=blηmjCXjbl,

例如訓練集大小n=60000 ,當m=10 ,在估算梯度向量時,可提升6000倍速度。當m=1 時,神經網絡每次僅根據一個樣本進行迭代,此時稱其爲在線學習或者增量學習。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章