感知器演算法PLA

2021-09-07 08:03:44 字數 2130 閱讀 8463

for batch&supervised binary classfication,g≈f <=> eout(g)≥0 achieved through eout(g)≈ein(g) and ein(g)≈0

其中ein是某乙個備選函式h在資料d上犯錯誤的比例,在整個資料集上犯錯誤的比例為eout

1.perceptron hypothesis set

假設訓資料集市線性可分的,感知機學習是目標就是求得乙個能夠將訓練集正例項點和負例項點完全正確分開的分離超平面,

對於一組資料x=,其中每乙個xi代表了乙個屬性值,那麼這個屬性值所代表的屬性的重要程度可能是不同的,我們用一組權重的向量代表每個屬性的重要程度w=,wi變化會產生不同的資料,這樣對每一組資料我們可以計算出乙個得分score,他可能代表了一些具體含義,比如某客戶的信用額度。那麼當score與某一臨界值作比較時,當score大於臨界值時,就是正值表示的含義是發信用卡,當score小於該臨界值時,就是負值表示不發信用卡,這樣分類器就產生了。具體來說:

接著為了之後的簡單,我們進行了合併的操作:

相應的,在二維空間中,h(x)變成了如下形式

2.perceptron learning algorithm (pla)

pla演算法的基本思想是,最開始的時候隨便取一條曲線wn,這條曲線應用到已知的訓練資料集中,那麼會有錯誤的劃分(xn,yn),這時候我們去糾正我們的曲線wn+1=wn+ynxn

根據上圖,由於權向量w是分割線的法向量,無論發生錯誤的點是正值還是負值,經過修正後的分割線調整了方向從而向錯誤點靠攏,就是說他更接近那條完美的分割線。演算法的具體描述是:

3.pla演算法的可行性

想讓pla演算法可停止,必須能夠找到至少一條直線將訓練資料集d劃分成正值和負值兩個部分,即必須有無錯的權向量存在。這樣的d我們稱它為「線性可分」的。d線性可分是pla停止的必要條件,那麼他是充分條件嗎?即如果d線性可分,pla一定會停止嗎?證明如下:

通俗的說就是,如果d裡面的資料能劃分,就一定能找到那條(其實有無數條)劃分線;此時,在d裡面隨便選乙個點,它一定處在劃分線的某一側(不是直線上),並且這一側所有其他點的計算符號都與它相同,所以這些點到直線的距離大於零(不等式(1)的意義);根據這些條件得到不等式(2),它告訴我們權向量就像11點50的分針,近似目標向量就像同一時刻的時針,每一次修正,分針都離時針更近了!

但是上邊的證明還不夠完美,向量內積不僅反映了向量的角度還反映了其長度,兩個向量就算夾角不變,只要長度變化,內積也可以增大!

不錯,權向量的長度會怎麼變化,推導如下

可以看到,修正之後權向量的長度,相較於修正之前的增加有乙個上限,或者說它的長度增長是較慢的。這個上限由d中距離座標原點最遠的那個點決定。

4.learning with noisy data

對於那些有雜質的資料來說,要做到線性可分是非常困難的,因此我們採用的方法是找到一條直線,它是所有可能直線當中犯錯誤最少的?這是乙個很難的問題,因為所含的直線太多了,你必須完整遍歷一遍之後才能找到最優解,這是數學上的np-hard問題。因此又提出了妥協的結果:口袋演算法(pocket algorithm)

感知器演算法

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為樣本數目...