PLA演算法總結及其證明

2021-07-02 00:47:41 字數 2491 閱讀 3407

pla(perception learning algorithm) 適用於二維及高維的線性可劃分問題。問題的答案只有同意或者不同意。

銀行可以根據顧客的個人資訊來判斷是否給顧客發放信用卡。將顧客抽象為乙個向量

,包括姓名、年齡、年收入、負債數等。同時設定各個屬性所佔的權重向量為

,對於正相關的屬性設定相對較高的權重,如年收入,對於負相關的屬性設定較低的權重,如負債數。

表示是否想該使用者發放了信用卡。通過求

和的內積減去乙個閥值threshold,若為正則同意發放信用卡,否則不發放信用卡。我們假設存在著乙個從

到的對映

,pla演算法就是用來模擬這個對映,使得求出的函式與

盡可能的相似,起碼在已知的資料集(即樣本上)上一致。

pla演算法即用來求向量

,使得在已知的資料中機器做出的判斷與現實資料相同。當

為二維向量時,相當於在平面上畫出一條直線將所有的點分成兩部分,一部分同意傳送,另一部分的不同意。內積可以表示成:其中,

的值域:

,,( 表示樣本中

的值,用於輸入到演算法進行調整)

結合文中例子:

表示在給定的樣本資料中,給該使用者發放了信用卡,

表示未發放。

pla先假定

為向量,然後找到乙個不滿足條件的點,調整

的值,依次進行迭代所有樣本資料使得最終可以將兩部分完全分開。

錯誤驅動調整

解釋一下ppt的內容,出現錯誤分2種情況:

在給定的已知資料中向該使用者發放了資料,即

樣本中第

個資料為

,但演算法給出的結果是不發放(

),說明兩個向量的內積為負,需要調整

向量使得兩條向量更接近,此時令調整係數為樣本的

,則調整後的

,的下標

表示調整的次數,示意圖:

在給定的已知資料中向該使用者發放了資料,即

樣本中第

個資料為

,但演算法給出的結果是不發放(

),說明兩個向量的內積為正,需要調整

向量使得兩條向量更遠離,此時令調整係數為樣本的

,則調整後的

,示意圖:

注意:2種不同情況的調整的表示式都一樣

兩個向量的內積增大說明:

兩個向量夾角越小或者向量的長度增大

老師的ppt上 

其中,的值域 

因此 這說明每次調整後,向量的長度增加有限。不妨

因此最終是收斂的,到此已經證明了pla演算法最終可以停止。

由上述過程可以得到以下兩個不等式:

那麼來看這個式子:

再根據余弦值最大為1,可以得到

,於是我們得到調整次數:

一方面,我事先肯定不知道

,另一方面為了應對可能出現的雜訊。那麼怎麼衡量當前得到的直線能夠滿足要求呢?我們只能在每一步的時候都判斷一下,調整後的

是否比上一次的

能夠線性可分更多的資料,於是有了下面的改進演算法pocket pla,pocketpla比pla在調整的時候多做一步:判斷當前改正犯的錯是否比之前更小,也就是貪心選擇。

參考dreamermonkey

ppt全部來自台大《機器學習基石》課堂

PLA演算法總結及其證明

pla演算法總結及其證明 pla perception learning algorithm 適用於二維及高維的線性可劃分問題。問題的答案只有同意或者不同意。例如銀行可以根據顧客的個人資訊來判斷是否給顧客發放信用卡。將顧客抽象為乙個向量x,包括姓名 年齡 年收入 負債數等。同時設定各個屬性所佔的比例...

matlab實現PLA演算法

分類模型感知器學習演算法 perceptron learning algorithm,pla pla演算法的乙個簡單應用場景 假設一家銀行要根據顧客的資產 居住年限 未償債務和其他資料字段來評估是否要給這名顧客發放信用卡,用y來表示是否批准或者 1 1 現在已經知道了顧客的資料和y的結果,想要知道判...

演算法理論 PLA

perceptron learning algrithm 二值分類問題,資料線性可分 找到一條直線wtx 0,一邊全為 1,另一邊全為 1。找到了這條線 即,向量w 就得到了分類器。每次選取分類出錯的樣本點,迭代執行 wt 1 t wt t yn t xn t t代表第t次迭代 我的問題 這裡是不是...