2014-01-17 83 views
3

我們都知道SVM的目標函數是迭代訓練的。爲了繼續訓練,如果我們想繼續使用同一個訓練數據集,至少我們可以存儲迭代中使用的所有變量。而如果我們想要訓練一個略有不同的數據集,我們應該怎麼做才能充分利用以前訓練過的模型?或者這種想法是否有意義?我認爲如果我們訓練K-means模型是相當合理的。但我不確定它是否對SVM問題有意義。如何繼續根據以前的模型訓練SVM

回答

2

一般來說這沒有意義。關於每個訓練集矢量,SVM訓練是optimization process。每個訓練矢量具有相關係數,其結果是0(不相關)或> 0(支持向量)。添加另一個訓練矢量會帶來另一個不同的優化問題。

重複使用先前訓練中的信息的唯一方法是我可以想到的是從先前的訓練中選擇支持向量並將它們添加到新的訓練集中。我不確定,但這可能會對泛化產生負面影響 - 支持向量的數量與支持向量的數量有關,因此將新的支持向量添加到新數據集可能會增加支持向量的數量。

顯然,有更多的可能性,如lennon310's answer所述。

+0

是的,我想SV的數量可能會增加。我問這個問題是因爲我不懂硬性負面採礦程序。它將刪除一些* easy *負面訓練示例並添加一些* hard *訓練示例。但我不知道這是一個漸進的培訓過程,還是我們只是改變反面的例子,從頭開始重新訓練SVM。 – Peiyun

+0

是的,我只是解釋了爲什麼我對這個問題感到困惑。謝謝! – Peiyun

+0

@Peiyun好的,對不起,我誤解了:) – BartoszKP

3

有關於這一主題的一些文獻:

  1. alpha-seeding,其中訓練數據分成塊。在ith組塊上訓練SVM後,您將這些組件用於使用(i+1)th組塊訓練SVM。

  2. Incremental SVM可用作在線學習,您可以使用新示例更新分類器,而不必重新訓練整個數據集。

  3. SVM heavy包與在線SVM培訓以及。

3

您所描述的是一種在線學習算法,不幸的是SVM的經典定義是以批處理方式完成的。

然而,支持向量機的幾種求解器可以在線學習的方式對下面的優化問題產生簡單的最優假設。特別是我最喜歡的是Pegasos上-SVM可以在線性時間內找到一個好的近似最優解:

http://ttic.uchicago.edu/~nati/Publications/PegasosMPB.pdf

+0

謝謝。 Pegasos-SVM似乎是一個非常強大的在線學習工具!任何對Pegasos-SVM感興趣的人都可能想要試試[Sofia-ml](https://code.google.com/p/sofia-ml/)。 @Pedrom – Peiyun