《機器學習基石》2-Learning to Answer Yes/No

這節課主要介紹感知器算法(Perceptron Learning Algorithm)。

Perceptron Hypothesis Set

對於一個線性可分的二分類問題,我們可以採用感知器 (Perceptron)這種假設集。

採用這種假設集進行分類的思想是這樣的:
我們假設樣本的類別是由樣本每一個特徵 xi 共同決定,其中不同的特徵的重要程度不一樣。於是我們通過對所有的特徵進行加權 i=1dwixi ,得到一個“分數”,將這個“分數”與一個閾值 threshold 進行比較,如果“分數”大於閾值,那麼這個樣本屬於一個類別(類別“+1”),如果“分數”小於閾值,那麼這個樣本屬於另一個類別(類別“-1”)。

這種模型可以用下面的表達式表示出來:

h(x)=sign((i=1dwixi)threshold)    hH=sign((i=1dwixi)+(threshold)(+1))=sign(i=0dwixi)=sign(wTx)

其中不同的向量 w 代表了不同的假設函數 h(x) ,我們的目標是使用一些算法調整 w 的值,使得假設函數 h(x) 與我們要預測的函數 f(x) 儘可能的接近。

我們的想法是:如果 h(x)f(x) 足夠接近,那麼它們作用在訓練集 D 上的結果會是一樣的,即對訓練集中的 x ,有 f(x)=h(x) 。反過來說,如果對所有訓練集中的 x ,有 f(x)=h(x) ,那麼在一定程度上,我們可以認爲 h(x)f(x) 是接近的。

Perceptron Learning Algorithm (PLA)

這個模型中訓練 w 的算法稱爲感知器算法(Perceptron Learning Algorithm),算法的思想是(儘可能地)對預測錯誤的樣本進行修正,使得分類器的預測結果越來越好。預測錯誤的樣本可以分爲以下兩種類型:

f(x)=y=+1 而預測結果 h(x)=sign(wTx)=1 時,說明此時 wx 的內積過小,夾角過大,需要讓 w 靠近 x ,因此將 w 改爲 w+x=w+yx ;

f(x)=y=1 而預測結果 h(x)=sign(wTx)=+1 時,說明此時 wx 的內積過大,夾角過小,需要讓 w 遠離 x ,因此將 w 改爲 wx=w+yx ;

反覆修正預測錯誤的樣本點直到所有訓練樣本都預測正確,選擇預測錯誤的樣本的順序沒有限制,可以按自然順序,也可以隨機選擇。

算法描述如下圖:

A Example

我們舉一個例子來說明 PLA 算法的過程。




Guarantee of PLA

目前我們還有一些問題沒有討論,其中比較重要的一個問題是,PLA是不是收斂的,即算法最終能不能停止下來。

首先我們討論線性可分的情況,線性不可分的情況在下一節中討論。當數據集是線性可分時,表示存在 wf 使得 yn=sign(wfTxn) ,下面證明PLA是收斂的,即 w 能收斂到 wf ,即算法能停止下來。

  1. wfwt 的內積會單調遞增
  2. wt 的長度有限制

以上兩點可以推出:

當算法從 w0=0 開始時,算法更新次數 TR2ρ2
其中

R2=maxn{f(x)}
ρ=minnynwfT||wfT||xn

因此說明了算法最終會收斂。

Conclusion

我們對PLA進行一下總結:(先用一張圖說明,後面再用文字說明)

Convergence

在數據是線性可分的條件下,算法能收斂。

Pros and Cons

  • 算法的優點
    算法容易簡單、實現;
    算法速度快;
    在任意維度下都能工作。

  • 算法的缺點
    需要數據是線性可分的條件;
    不知道算法什麼時候收斂。

Non-Separable Data

當數據集是線性不可分時,表示數據中有噪聲(這裏的噪聲是相對於感知器這個假設集而言的)。在這種情況下,學習的過程發生了一點改變:

對感知器模型來說,此時可能無法使所有樣本都正確分類,此時我們應該退而求其次,找儘可能犯錯少的分界面,我們的學習的目標從

argwyn=sign(wTxn)
變成了
argminw[[ynsign(wTxn)]]
不幸的是,這是一個 NP-hard 問題。

此時的一種思路是使用貪心算法,於是PLA可以改進成Pocket算法:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章