利用神經網絡進行手寫體識別
兩種重要的人工神經網絡:感知機,sigmoid神經元。
神經網絡標準學習算法:sgd(隨機梯度下降)
Perceptrons(感知機)
二進制輸入
x1,x2,x3...
sum=∑jwj∗xj ,其中wj 是對應輸入項的權重。
當我們將多個感知機級聯起來,能得到一個更加豐富的函數網絡,如下:
層級的關係,可以使得輸入到輸出的決策趨於抽象,從而在最終層得出一個抽象層次最高的決策。
當我們將感知機的公式進行簡化:
f(wx+b)={0,1,if wx+b≤0if wx+b>0 x= 一條樣本輸入的行向量,w= 感知機權重的列向量,b=−threshold
感知機不僅可以權衡輸入,還能實現電路邏輯函數。
上圖實現了nand(與非)邏輯運算。因此感知機網絡可以像普通邏輯電路一樣實現任意的函數。下圖是對
到目前爲止,感知機網絡似乎就是另一種形式的邏輯電路。但是,利用學習算法,我們可以藉助外部的數據刺激,使網絡中的參數自動地調整,以得到期望的函數結果。
Sigmoid 神經元
期待的學習算法:對參數進行細微的調整
通過上述感知機的定義公式,可以發現,
我們需要一個連續的函數才能獲得上述性質。
引入Sigmoid神經元:
形式上與感知機類似,而輸入
由於sigmoid函數的連續性,我們可以得到:
性質
1.感知機網絡中,w 和b 同時乘以c(c>0),網絡的功能不改變。
2.若網絡中任一神經元的輸入wx+b≠0 ,在輸入值x 不變,c→+∞ 的情況下,sigmoid神經網絡與原感知機網絡功能一致。
f(wx+b)↔f(c(wx+b))↔limc→+∞σ(c(wx+b))
神經網絡結構
MLP(sigmoid 神經元):
mnist手寫字體識別:
28*28的輸入灰度圖片
cost函數:均方誤差
事實上,10分類僅僅需要4位二進制即可完全表示,但實驗顯示10個神經元的輸出層效果優於4個神經元。這在一定程度上可以理解爲神經網絡在完成圖像識別的基礎上完成了一個編碼器的工作。
以梯度下降的方式學習
由於自變量數量衆多,利用微積分求多元函數的極值方法求解最優值相對複雜,因此需要新的解決方案。
若
由多元函數的微分我們可以得到:
我們似乎能夠以偏導數爲標準來設定
因此,
當維度推廣至多維時,上述迭代仍然成立。另外,梯度方向也是函數變化最快的方向,在相同的步長下,梯度下降是最優的。
由上述
此時,迭代公式如下:
例如訓練集大小