1. 程式人生 > >[筆記]機器學習基石 02 Learning to Answer Yes-No

[筆記]機器學習基石 02 Learning to Answer Yes-No

一個 mage 轉置 ant 好的 mar too 也有 裏的

一 Perception Hypothesis Set

1 A Simple Hypothesis Set: the ‘Perceptron‘

本節還是使用銀行發信用卡的例子,銀行掌握用戶的年齡、年薪、工齡和負債情況。這裏建立一個模型,每一個用戶可以用一個向量來表示,每個用戶的每一種信息可以當作向量的一個維度(xi)。把每個用戶的維度綜合起來產生一個分數,分數超過標準就給信用卡。在計算時加上wi來表示權重。

技術分享圖片

對計算後的結果,好的(可以發卡)表示+1,不好的(不能發卡)表示-1。剛好等於門檻值(threshold)的時候很少,可以忽略不計。

這裏的h稱作感知器

(perceptron),這是本節的主要內容。

2 Vector Form of Perceptron Hypothesis

此時可以對h(x)做一個數學上的轉化,將-threshold當作w0,引入一個x0=+1與w0相乘,數學表示方式被簡化。公式如下圖被簡化為兩個向量內積的形式,其中T表示轉置。

技術分享圖片

3 Perceptions in R2

下面是一個二維圖來說明感知機模型。w0+w1x1+w2x2=0是平面上的一條線,線的一側是好的情況(+1),另一側是壞的情況(-1)。每個用戶的情況y用符號表示,圈表示好(+1),叉表示壞(-1)。

技術分享圖片

perceptions在這個模型中就是一條直線,稱為線性分類器[linear (binary) classifiers]。線性分類器也可以在更高維度。

二 Perception Learning Algorithm(PLA)

1 select g from H

這裏我們設計一個演算法來尋找一條直線,使這條直線能將平面上的所有好壞分開,讓這個g跟f幾乎一模一樣。

技術分享圖片

2 Perception Learning Algorithm(PLA)

一開始在二維平面中有一條會有一些錯誤的初始的線w0(代表g0),然後逐步將線兩側錯誤的點修正,即移動線來完全修正或減輕錯誤,直到這條線達到了期望的效果才結束。

將data中的(xn(t),yn(t))做內積得到wt,在驗證時發現(wTtxn(t))yn(t) ,於是我們嘗試進行糾正。如下圖右側。若要的內積是+結果做出來是-的,則向量w+x;若要的內積是-結果做出來是+的,則向量w-x

註:圖中w為線的法向量

技術分享圖片

在用所有data進行驗證時,可以用默認的正序也可以亂序,總之只要能轉到所有data就好

3 Seeing is Believing

一個使用PLA算法的例子

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

4 Some Remaining Issues of PLA

對於此算法仍然由問題需要思考

*PLA一定會停下來嗎

*PLA的停下來結果對於沒有使用的真是data是否真的滿足g≈f,若沒有停下來是否會有 g≈f

三 Guarantee of PLA

1 Linear Separability

*If PLA halts (i.e. no more mistakes), (necessary condition) D allows some w to make no mistakes

*Call such D linear separable(線性可分)

技術分享圖片

2 PLA Fact

wt Gets More Aligned with wf

線性可分時,必然滿足以下

技術分享圖片

對任意的xn

技術分享圖片

PLA會對每次錯誤的點進行修正,更新權重wt+1的值,如果wt+1與wf越來越接近,數學運算上就是內積越大,那表示wt+1是在接近目標權重wf,證明PLA是有學習效果的。所以,計算wt+1與wf的內積:

技術分享圖片

wt Does Not Grow Too Fast

從推導可以看出,wt+1與wf的內積跟wt與wf的內積相比更大了。似乎說明了wt+1更接近wf,但是內積更大,可能是向量長度更大了,不一定是向量間角度更小。所以,下一步,我們還需要證明wt+1與wt向量長度的關系

技術分享圖片

技術分享圖片

技術分享圖片

四 Non Separable Data

1 More About PLA

對於線性可分的情況,PLA能停下來並正確分類,然而線性不可分時,wf實際上不存在,之前推到不成立,PLA不一定能停下來。所以PLA在使用時也有一些麻煩的地方。

技術分享圖片

2 Learning with Noisy Data

我們在機器學習中使用的data可能是有noisy data的,導致拿到的data不一定會是線性可分。這時的機器學習流程:

技術分享圖片

3 Line with Noise Tolerance

在有noise的情況下我們沒有辦法找到完全正確的線,所以我們轉而去找犯的錯誤最少的線為g。

技術分享圖片

上面的做法是NP問題,但無法做到寫成程序來實現。

4 Pocket Algorithm

我們對PLA算法進行修改,產生了Pocket Algorithm。它的算法流程與PLA相似,首先初始化權重w0,計算出在這條初始化的直線中,分類錯誤點的個數,將這條直線放進口袋。然後進行修正,更新w,得到一條新的直線,再計算分類錯誤的點的個數,並與之前錯誤點個數比較,取個數較小的直線作為我們當前選擇的分類直線,放進口袋替換。之後,再經過n次叠代,不斷比較當前分類錯誤點個數與之前最少的錯誤點個數比較,選擇最小的值的線留在口袋裏。直到叠代次數完成後,選取個數最少的直線對應的w,即為我們最終想要得到的權重值,即口袋裏最終的線。

技術分享圖片

5 Summary

技術分享圖片

[筆記]機器學習基石 02 Learning to Answer Yes-No