資料探勘學習------------------4-分類方法-4-神經網路(ANN)
4.4神經網路
它是一種應用類似於大腦神經突觸聯接的結構進行資訊處理的數學模型。
神經網路通常需要訓練,訓練的過程就是網路進行學習的過程。訓練改變了網路節點的連線權的值使其具有分類的功能,經過訓練的網路就可用於物件的識別。
1、感知器
由圖可知:①幾個輸入結點,用來表示輸入屬性;②一個輸出點,用來提供模型輸出。
③在感知器中,每個輸入結點都需要經過一個加權wi的連線到輸出結點。模擬神經元間神經鍵連線強度。
④像生物神經系統一樣,訓練一個感知器模型相當於不斷調整鏈的權值,直到能模擬訓練資料的輸入、輸出關係為止。
⑤感知器對於輸入加權求和,在減去偏置因子t,然後考察結果的符號,得到輸出值Y。
例如:3個輸入點,每個輸入點權值都是0.3,偏置因子t = 0.4。
y = { 1,(0.3x1 + 0.3x2 + 0.3x3 - 0.4) > 0
{-1,(0.3x1 + 0.3x2 + 0.3x3 - 0.4) < 0
因此,感知器模型輸出可以用如下數學方程式表示:
Y = sign(w1x1 + w2x2 +...+wnxn - t)
其中,wi:輸入鏈的權值,xi:輸入屬性值,sign:符號函式作為輸出神經元的啟用函式,t:偏置因子。
因此可以更加簡化為y = sign(wx - t)。
2、步驟
感知器訓練階段:
權值w不斷調整指導輸出和訓練樣例的實際輸出一致,感知器具體學習演算法如下:
①令 D = {(xi,yi),i = 1,2,....N}是訓練樣例集。
②用隨機值初始化權值向量w(0)。
③對每個訓練樣例(xi,yi),計算預測輸出Y(k)。
④對每個權值w更新權值。
⑤重複③④直到滿足條件終值。
對於④步的權值更新公式:w(k+1) = w(k) + λ(y - Y(k))Xij
其中,w(k)是第k次迴圈後第i個輸入鏈上的權值,則w(k+1)就是k的下一次。
λ成為學習率,其值在0,1之間,接近0,那麼新權值主要受舊權值的影響,接近1,新權值對當前迴圈中的調整量更加敏感。在某些情況下,可以使用一個自適應的λ:在前幾次迴圈時值相對較大,而在接下來的迴圈中逐漸減小。
Xij是訓練樣例xi的第j個屬性值。
Y(k)是③步第k次xi對應的預測輸出Y(k)。
y是③步的真實輸出。
(y-y(k))是預測誤差。
則,該公式可以表示為:新權值w(k+1)等於舊權值w(k)加上一個正比於預測誤差(y -Y(k))的學習率λ。
(1)預測正確,即預測誤差為零,那麼保持權值保持不變。
(2)預測錯誤,則比如:
如果y=1,Y=-1,那麼預測誤差(y-Y)=2。為了補償這個誤差,需要通過提高所有正輸入鏈的權值,降低所有負輸入鏈的權值來提高預測輸出值。
在權值更新公式時,對誤差影響最大的鏈需要的調整最大。
然而,權值不能改變太大,因為僅僅對當前訓練樣例計算了誤差項。
3、分類:
BP神經網路,RBP網路、Hopfield網路、自組織特徵對映神經網路、學習適量化神經網路。
目前最多的是BP網路。當前的神經網路仍然普遍存在收斂速度慢、計算量大、訓練時間長、不可解釋等缺點。
4、特點
①至少含有一個隱藏層的多層神經網路是一個普適近似,即可以用來近似任何目標函式。
②由於ANN具有豐富的假設空間,因此對於給定的問題,選擇合適的拓撲結構來防止模型的過分擬合是很重要的。
③ANN可以處理冗餘特徵,因為權值在訓練過程中自動學習。冗餘特徵的權值非常小。
④神經網路對訓練資料中的噪聲非常敏感。處理噪聲問題的一種方法是使用確認集來確定模型的泛華誤差,另一種方法是每次迭代將權值減少一個因子。
⑤ANN權值學習使用的是梯度下降方法經常會收斂到區域性極小值。避免區域性極小值得方法是在權值更新公式中加上一個動量項。
⑥訓練ANN是一個很耗時的過程,特別是當隱藏結點數量很大時,然而測試樣例分類時非常快。