神經網絡是受人類大腦的啟發而建構的一種模型,它們在很多方面彌補了機器學習和認知科學之間的空白。
1、人工神經網絡
人工神經網絡是模仿人類大腦的神經網絡而建構的一種模型,感覺器是神經網絡組成單元,也叫神經元。
神經元的組成部分:
· 輸入層:X1、X2、X3等,輸入資料;
· 權重 :w1、w2、w3等,輸入層輸入的資料在模型中所占的比重;
· 門檻值激活函數:y = x1w1 + x2w2 + x3w3 + ..... + xkwk (i=1...k) → 階躍函數
y >= θ → y = 1
y < θ → y = 0
· 輸出層:Y,輸出資料 → 離散型資料。
以下是神經網絡中的感覺器單元(perceptron unit)簡圖。
單個感覺器單元能夠實作AND、OR、NOT邏輯運算。XOR邏輯運算是一個神經網絡。
注:以下坐标軸傳回的是一個超平面(超平面是n維歐氏空間中餘次元等于一的線性子空間(也就是必須是(n-1)次元)。來自百度百科定義)。
2、兩種學習規則
在機器學習中,在給出樣本的情況下,通過權重的調整,根據輸入的資料能夠自動映射為輸出資料的權值,以下兩種規則就是專門用于解決此類問題的。
a、感覺器訓練 → 線上性可分的資料集上得到很好的應用,具有很好的收斂性。
b、梯度下降/delta定律 → 在非線性可分的資料集上的運用很好,更具健壯性,隻能收斂于局部最優解。
※兩者的差別在于門檻值的使用,感覺器訓練使用門檻值的輸出,而梯度下降則不使用門檻值。
梯度下降不适用門檻值的原因是實際輸出的結果不可導,是以引入了Sigmoid函數代替階躍函數,它可以了解為一個可導的門檻值。
Sigmoid函數:f(x) = 1/1+exp(-x) 0<f(x)<1
3、多層神經網絡
如圖所示,由輸入層、隐藏層和輸出層組成。
4、BP算法
顧名思義反向傳播算法(back propagation algorithm),又稱為誤差反向傳播算法(error back propagation algorithm)。
在神經網絡中的傳播可參考上圖的紅線,輸入→輸出傳的是資訊,反之,誤差資訊回傳。
目的:調整權值以便實際輸出得到所期待的輸出值。
5、優化權值
原因:在神經網絡中存在更多的節點,層數或者數值更大的情況下,容易出現過拟合的情況。
防止過拟合的手段可以使用交叉驗證法。
※交叉驗證有三個作用:
1、決定神經網絡中有多少隐藏層再利用中;
2、決定每層中放了多少節點;
3、決定什麼時候停止訓練,因為權重由于訓練過多會導緻越來越大。
下圖是誤差與疊代的關系,綠線是交叉驗證,黑線是正常的神經網絡。
6、小結
A、感覺器(perceptron)是一個門檻值單元,一個線性的門檻值單元;
B、将各感覺器的網絡連接配接起來可以産生任何布爾函數;
C、感覺器規則:針對線性可分資料集,能有限的時間内運作并得到結果;
D、可微規則:使用梯度集(gradient set)進行反向傳播
E、神經網絡的優選偏置和限定偏置