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次迭代 我的問題 這裡是不是...