這節課主要介紹感知器算法(Perceptron Learning Algorithm)。
Perceptron Hypothesis Set
對於一個線性可分的二分類問題,我們可以採用感知器 (Perceptron)這種假設集。
採用這種假設集進行分類的思想是這樣的:
我們假設樣本的類別是由樣本每一個特徵 共同決定,其中不同的特徵的重要程度不一樣。於是我們通過對所有的特徵進行加權 ,得到一個“分數”,將這個“分數”與一個閾值 進行比較,如果“分數”大於閾值,那麼這個樣本屬於一個類別(類別“+1”),如果“分數”小於閾值,那麼這個樣本屬於另一個類別(類別“-1”)。
這種模型可以用下面的表達式表示出來:
其中不同的向量 代表了不同的假設函數 ,我們的目標是使用一些算法調整 的值,使得假設函數 與我們要預測的函數 儘可能的接近。
我們的想法是:如果 與 足夠接近,那麼它們作用在訓練集 上的結果會是一樣的,即對訓練集中的 ,有 。反過來說,如果對所有訓練集中的 ,有 ,那麼在一定程度上,我們可以認爲 與 是接近的。
Perceptron Learning Algorithm (PLA)
這個模型中訓練 的算法稱爲感知器算法(Perceptron Learning Algorithm),算法的思想是(儘可能地)對預測錯誤的樣本進行修正,使得分類器的預測結果越來越好。預測錯誤的樣本可以分爲以下兩種類型:
當 而預測結果 時,說明此時 與 的內積過小,夾角過大,需要讓 靠近 ,因此將 改爲 ;
當 而預測結果 時,說明此時 與 的內積過大,夾角過小,需要讓 遠離 ,因此將 改爲 ;
反覆修正預測錯誤的樣本點直到所有訓練樣本都預測正確,選擇預測錯誤的樣本的順序沒有限制,可以按自然順序,也可以隨機選擇。
算法描述如下圖:
A Example
我們舉一個例子來說明 PLA 算法的過程。
Guarantee of PLA
目前我們還有一些問題沒有討論,其中比較重要的一個問題是,PLA是不是收斂的,即算法最終能不能停止下來。
首先我們討論線性可分的情況,線性不可分的情況在下一節中討論。當數據集是線性可分時,表示存在 使得 ,下面證明PLA是收斂的,即 能收斂到 ,即算法能停止下來。
- 與 的內積會單調遞增
- 的長度有限制
以上兩點可以推出:
當算法從 開始時,算法更新次數
其中
因此說明了算法最終會收斂。
Conclusion
我們對PLA進行一下總結:(先用一張圖說明,後面再用文字說明)
Convergence
在數據是線性可分的條件下,算法能收斂。
Pros and Cons
算法的優點
算法容易簡單、實現;
算法速度快;
在任意維度下都能工作。算法的缺點
需要數據是線性可分的條件;
不知道算法什麼時候收斂。
Non-Separable Data
當數據集是線性不可分時,表示數據中有噪聲(這裏的噪聲是相對於感知器這個假設集而言的)。在這種情況下,學習的過程發生了一點改變:
對感知器模型來說,此時可能無法使所有樣本都正確分類,此時我們應該退而求其次,找儘可能犯錯少的分界面,我們的學習的目標從
此時的一種思路是使用貪心算法,於是PLA可以改進成Pocket算法: