感知器演算法

2021-10-12 03:56:18 字數 3467 閱讀 7136

1.判別函式

統計模式識別分為聚類分析法和判決函式法,其中判決函式法又包括幾何分類法(確定性時間分類,線性,非線性)以及概率分類法(隨機事件分類)。

判別函式即用來對模式進行分類的準則函式。

2.線性判別函式

n維線性判別函式的一般形式為:

其中x,w不包含最後一項常數項

:權向量,解向量,即引數向量

增廣向量就把最後一項加進去,

w加乙個wn+1,x加乙個1

這裡有乙個多類情況:

1):用線性判別函式將屬於ωi類的模式與其餘不屬於ωi類的模式分開。將某個待分類模式 x 分別代入 m 個類的d (x)中,若只有di(x)>0,其他d(x)均<0,則判為ωi類。對某一模式區,di(x)>0的條件超過乙個,或全部

的di(x)<0 ,分類失效。相當於不確定區(indefiniteregion ,ir)。

2):在 m 類模式中,與i 有關的m-1個判決函式全為正時,x∈ωi。其中若有乙個為負,則為ir區。

3.廣義線性判別函式

通過某對映,把模式空間x變成x*,以便將x空間中非線性可分的模式集,變成在x*空間中線性可分的模式集。

4.線性判別函式的幾何性質

模式空間:以n維模式向量x的n個分量為座標變數的歐氏空間。

模式向量的表示:點、有向線段。

線性分類:用d(x)進行分類,相當於用超平面d(x)=0把模式空間分成不同的決策區域。

5.感知器演算法

只要求出權向量,分類器的設計即告完成。利用已知類別的模式樣本訓練出權向量w。

訓練:用已知類別的模式樣本指導機器對分類規則進行反覆修改,最終使分類結果與已知類別資訊完全相同的過程。

感知器:對一種分類學習機模型的稱呼,屬於有關機器學習的仿生學領域中的問題,由於無法實現非線性分類而下馬。但「賞罰概念( reward-punishment concept)」 得到廣泛應用。

對樣本進行規範化處理,即ω2類樣本全部乘以(-1),則有:

感知器演算法通過對已知類別的訓練樣本集的學習,尋找乙個滿足上式的權向量。

感知器演算法步驟:

(1) 選擇n個分屬於ω1和 ω2類的模式樣本構成訓練樣本集構成增廣向量形式,並進行規範化處理,一類每個向量變成增廣加1,二類每個乘以-1再加-1。任取權向量初始值w(1)(eg=(0,0,0)),c=1開始迭代。迭代次數k=1。

(2) 用全部訓練樣本進行一輪迭代,計算wt(k)xi 的值,並修正權向量分兩種情況,更新權向量的值:

分類器對第i個模式做了錯誤分類,權向量校正為

,其中c:正的校正增量,取1。

分類正確,權向量不變

(3) 分析分類結果:只要有乙個錯誤分類,回到(2),直至對所有樣本正確分類

感知器演算法是一種賞罰過程:

分類正確時,對權向量「賞」——這裡用「不罰」,即權向量不變;

分類錯誤時,對權向量「罰」——對其修改,向正確的方向轉換。

收斂性:經過演算法的有限次迭代運算後,求出了乙個使所有樣本都能正確分類的w,則稱演算法是收斂的。

當c、w(1)取其他值時,結果可能不一樣,所以感知器演算法的解不是單值的。

多類:訓練樣本為增廣向量形式,但不需要規範化處理。

第k次迭代時,乙個屬於ωi類的模式樣本 x 被送入分類器,計算所有判別函式

分二種情況修改權向量:

1)則權向量不變;

2)若第l個權向量使

,則相應的權向量作調整,即:

編寫感知器演算法程式,求下列模式分類的解向量:

 ω1:

 ω2:

 設w(1)=(-1 -2 -2 0) t.

先做規範化處理,然後把兩組向量合併到乙個列表中,然後每輪進行8次矩陣乘法運算,得到8個d值,每次根據d值正負對w作不同獎罰處理,每輪結束後若d值大於0的次數不等於8則進行下一輪。最終等於8時跳出並列印出此時的w。

python**計算過程:

1

.import pandas as pd 2.

from numpy import*3

. l1=[[

0,0,

0],[

1,0,

0],[

1,0,

1],[

1,1,

0]]#len=4

4. l2=[[

0,0,

1],[

0,1,

1],[

0,1,

0],[

1,1,

1]]5

. w=[[

-1,-

2,-2

,0]]

6. w=mat(w)7.

#規範化處理

8. gl1=l1

9. gl2=l2 10.

for i in

range

(len

(l1)):

11. gl1[i]1)

12.#print(gl1) 13.

14.for i in

range

(len

(l2)):

15. gl2[i]1)

16. gl2[i]

=[j*(-

1)for j in gl2[i]]17

.#print(gl2) 18.

19. gl=gl1+gl2 20.

#print(gl)

21. f=022

. t=023

.while t!=8:

24. f=025

. t=026

.for i in

range

(len

(gl)):

27. d=w*mat(gl[i]

).t

28. d=d.tolist()29

. d=d[0]

[0]30

.print

(d)31

.if d>0:

32. w=w

33. t=t+134

.else:35

. w=w+mat(gl[i])36

. f=f+137

.38.print

(w)

輸出結果:

驗算:輸出w之前的8個d值均為正數,正確。

所以解向量為w=[3,-2,-3,1]t

感知器演算法

coding utf 8 created on thu oct 15 13 58 06 2015 author think 感知器演算法 import mkdata as mk import numpy as np import matplotlib.pyplot as plt n 100 生成測試...

感知器演算法

感知器演算法步驟 1.給出m個帶有標籤的樣本,其中yi 1 or 1 xi xi1,xi2,xin 2.將資料的標籤併入訓練樣本,形成增廣向量,每個資料的維數為n 1 3.在 0,1 均勻分布區間內生成1x n 1 權值矩陣w 4.將資料依次送入感知器進行學習。如果w data k,yk 0 說明訓...

感知器演算法

clc clear all fprintf 感知器演算法 n x 1,4,1 2,6,1 1,2,1 2,2,1 x 0,0,0,1 1,0,0,1 1,0,1,1 1,1,0,1 0,0,1,1 0,1,1,1 0,1,0,1 1,1,1,1 n,n size x 獲取樣本數目和維數 n為樣本數目...