人工神經網路之感知器演算法

2021-07-25 21:25:55 字數 2622 閱讀 3606

感知器作為人工神經網路中最基本的單元,有多個輸入和乙個輸出組成。雖然我們的目的是學習很多神經單元互連的網路,但是我們還是需要先對單個的神經單元進行研究。

感知器演算法的主要流程:

首先得到n個輸入,再將每個輸入值加權,然後判斷感知器輸入的加權和最否達到某一閥值v,若達到,則通過sign函式輸出1,否則輸出-1。

為了統一表示式,我們將上面的閥值v設為-w0,新增變數x0=1,這樣就可以使用w0x0+w1x1+w2x2+…+wnxn>0來代替上面的w1x1+w2x2+…+wnxn>v。於是有:

從上面的公式可知,當權值向量確定時,就可以利用感知器來做分類。

那麼我們如何獲得感知器的權值呢?這需要根據訓練集是否可分來採用不同的方法:

1、訓練集線性可分時 --> 感知器訓練法則

為了得到可接受的權值,通常從隨機的權值開始,然後利用訓練集反覆訓練權值,最後得到能夠正確分類所有樣例的權向量。

具體演算法過程如下:

a)初始化權向量w=(w0,w1,…,wn),將權向量的每個值賦乙個隨機值。

b)對於每個訓練樣例,首先計算其**輸出:

c)當**值不等於真實值時則利用如下公式修改權向量:

各符號含義:

d)重複b)和c),直到訓練集中沒有被錯分的樣例。

演算法分析:

若某個樣例被錯分了,假如目標輸出t為-1,結果感知器o輸出為1,此時為了讓感知器輸出-1,需要將wx減小以輸出-1,而在x的值不變的情況下只能減小w的值,這時通過在原來w後面新增(t-o)x=即可減小w的值(t-o<0, x>0)。

通過逐步調整w的值,最終感知器將會收斂到能夠將所有訓練集正確分類的程度,但前提條件是訓練集線性可分。若訓練集線性不可分,則上述過程不會收斂,將無限迴圈下去。

2、訓練集線性不可分時 --> delta法則(又叫增量法則, lms法則,adaline法則,windrow-hoff法則)

由於在真實情況下,並不能保證訓練集是線性可分的。因而,當訓練集線性不可分時該如何訓練感知器呢?這時我們使用delta法則,通過這種方式可以找出收斂到目標的最佳近似值,

delta法則的關鍵思想是使用梯度下降來搜尋可能的權向量的假設空間,以找到最佳的擬合樣例的權向量[1]。具體來說就是利用損失函式,每次向損失函式的負梯度方向移動,直到損失函式取得最小值(極小值)。我們將訓練誤差函式定義為:

其中d:訓練集合,td為目標輸出,od為感知器輸出.

隨機梯度下降演算法過程如下:

1)初始化權向量w,將權向量的每個值取乙個隨機值。

2)對每個訓練樣例,分別執行以下操作:

a)通過感知器得到樣例的輸出o。

b)根據感知器的輸出,修改權向量w。

3)重複第2)步,當訓練樣例的誤差率小於設定的閥值時,演算法終止。

演算法條件:誤差損失函式需要對權向量可微;假設空間包含連續引數化的假設。

可能存在的問題:若誤差曲面有多個區域性極小值,則不能保證達到全域性最優。

演算法第2)步的權向量公式的推導?請參考下一節梯度下降法則的推導。

二個區別:

1)感知器訓練法則 和 delta法則(增量法則)

關鍵區別在於:感知器訓練法則根據閥值化的感知器輸出的誤差更新權值;而增量法則根據輸入的非閥值化線性組合的誤差來更新權值。

二者的權值更新公式看似一樣,實則不同:感知器法則的o是指閥值的輸出:,而增量法則中的o是線性單元的輸出:

2)(標準)梯度下降 和 隨機梯度下降

梯度下降每輪遍歷所有訓練樣例,將每個樣例得到權向量的差值進行累加,最終將這些差值之和累加到初始的權向量上;而隨機梯度下降則是在每個訓練樣例中都會更新權重,最終得到乙個損失函式較小的權向量。

3、梯度下降法則的推導

梯度下降演算法的核心就是每次向損失函式下降最陡峭的方向移動,而最陡峭的方向通常就是損失函式對權向量求偏導數得到的向量的反方向。

為了計算以上向量,我們逐個計算每個分量:

每次的權重更新量為:

使用這種方法來進行權重更新的方法叫做梯度下降,此方法將所有訓練集權值計算了乙個總和,然後將權值更新。此方法更新依次權值需要將所有訓練集全部訓練一次,故而速度較慢,效率較低。

為此改進這種蝸牛的更新速度,於是有了隨機梯度下降演算法,權向量更新公式為:

它在每個樣例中迭代的過程中都會進行權值更新,通過這種方式能更加靈活的調整權值,使得權值以更快的速度收斂。

參考文獻

**:

神經網路之 感知器

在神經網路中,我們主要使用的是一種稱為s型神經元的神經元模型。感知器就是我們所謂的 人工神經元 那麼感知器怎麼工作的呢,接下來我們來談談。1.感知器工作機制 上圖中有x1,x2和x3輸入,一般情況下我們可以引入權重w1,w2和w3來表示輸入對輸出的重要性,這時可以計算w1 x1 w2 x2 w3 x...

神經網路學習之感知器

基於m p模型中權重引數需要人為設定的問題,1958年羅森布拉特 roseblatt 提出了感知器,經過訓練,計算機能夠確定神經元的連線權重,由此,神經網路迎來了第一次熱潮。感知器主要有輸入層和輸出層,其中,輸入層接收外界輸入訊號後傳遞給輸出層,輸出層是m p神經元。表示式 誤差修正學習策略 設定訓...

神經網路 異或 神經網路學習之感知器

基於m p模型中權重引數需要人為設定的問題,1958年羅森布拉特 roseblatt 提出了感知器,經過訓練,計算機能夠確定神經元的連線權重,由此,神經網路迎來了第一次熱潮。感知器結構 感知器主要由輸入層和輸出層,其中,輸入層接收外界輸入訊號後傳遞給輸出層,輸出層是m p神經元。表示式 感知器如何自...