轉載地址:http://www.cnblogs.com/jerrylead/archive/2011/04/18/2020173.html
原題目叫做The perception and large margin classifiers,其實探討的是在線學習。這裏將題目換了換。以前討論的都是批量學習(batch learning),就是給了一堆樣例後,在樣例上學習出假設函數h。而在線學習就是要根據新來的樣例,邊學習,邊給出結果。
假設樣例按照到來的先後順序依次定義爲。X爲樣本特徵,y爲類別標籤。我們的任務是到來一個樣例x,給出其類別結果y的預測值,之後我們會看到y的真實值,然後根據真實值來重新調整模型參數,整個過程是重複迭代的過程,直到所有的樣例完成。這麼看來,我們也可以將原來用於批量學習的樣例拿來作爲在線學習的樣例。在在線學習中我們主要關注在整個預測過程中預測錯誤的樣例數。
拿二值分類來講,我們用y=1表示正例,y=-1表示負例。回想在討論支持向量機中提到的感知算法(perception algorithm)。我們的假設函數爲
其中x是n維特徵向量,是n+1維參數權重。函數g用來將
計算結果映射到-1和1上。具體公式如下:
這個也是logistic迴歸中g的簡化形式。
現在我們提出一個在線學習算法如下:
新來一個樣例,我們先用從之前樣例學習到的
來得到樣例的預測值y,如果
(即預測正確),那麼不改變
,反之
也就是說,如果對於預測錯誤的樣例,進行調整時只需加上(實際上爲正例)或者減去(實際負例)樣本特徵x值即可。
初始值爲向量0。這裏我們關心的是
的符號,而不是它的具體值。調整方法非常簡單。然而這個簡單的調整方法還是很有效的,它的錯誤率不僅是有上界的,而且這個上界不依賴於樣例數和特徵維度。
下面定理闡述了錯誤率上界:
定理(Block and Novikoff):
給定按照順序到來的樣例。假設對於所有的樣例
,也就是說特徵向量長度有界爲D。更進一步,假設存在一個單位長度向量
且
。也就是說對於y=1的正例,
,反例
,u能夠有
的間隔將正例和反例分開。那麼感知算法的預測的錯誤樣例數不超過
。
根據前面對SVM的理解,這個定理就可以闡述爲:如果訓練樣本線性可分,並且幾何間距至少是,樣例樣本特徵向量最長爲D,那麼感知算法錯誤數不會超過
。這個定理是62年提出的,63年Vapnik提出SVM,可見提出也不是偶然的,感知算法也許是當時的熱門。
下面主要討論這個定理的證明:
感知算法只在樣例預測錯誤時進行更新,定義是第k次預測錯誤時使用的樣本特徵權重,
初始化爲0向量。假設第k次預測錯誤發生在樣例
上,利用
計算
值時得到的結果不正確(也就是說
,調換x和
順序主要是爲了書寫方便)。也就是說下面的公式成立:
兩個向量做內積的時候,放在左邊還是右邊無所謂,轉置符號標註正確即可。
這個式子是個遞推公式,就像等差數列一樣f(n+1)=f(n)+d。由此我們可得
又是一個等差不等式,得到:
兩邊開根號得:
其中第二步可能有點迷惑,我們細想u是單位向量的話,
因此上面的不等式成立,最後得到:
也就是預測錯誤的數目不會超過樣本特徵向量x的最長長度與幾何間隔的平方。實際上整個調整過程中就是x的線性組合。
整個感知算法應該是在線學習中最簡單的一種了,目前發現online learning挺有用的,以後多多學習。