我們都知道SVM的目標函數是迭代訓練的。爲了繼續訓練,如果我們想繼續使用同一個訓練數據集,至少我們可以存儲迭代中使用的所有變量。而如果我們想要訓練一個略有不同的數據集,我們應該怎麼做才能充分利用以前訓練過的模型?或者這種想法是否有意義?我認爲如果我們訓練K-means模型是相當合理的。但我不確定它是否對SVM問題有意義。如何繼續根據以前的模型訓練SVM
回答
一般來說這沒有意義。關於每個訓練集矢量,SVM訓練是optimization process。每個訓練矢量具有相關係數,其結果是0
(不相關)或> 0
(支持向量)。添加另一個訓練矢量會帶來另一個不同的優化問題。
重複使用先前訓練中的信息的唯一方法是我可以想到的是從先前的訓練中選擇支持向量並將它們添加到新的訓練集中。我不確定,但這可能會對泛化產生負面影響 - 支持向量的數量與支持向量的數量有關,因此將新的支持向量添加到新數據集可能會增加支持向量的數量。
顯然,有更多的可能性,如lennon310's answer所述。
有關於這一主題的一些文獻:
alpha-seeding,其中訓練數據分成塊。在
ith
組塊上訓練SVM後,您將這些組件用於使用(i+1)th
組塊訓練SVM。Incremental SVM可用作在線學習,您可以使用新示例更新分類器,而不必重新訓練整個數據集。
SVM heavy包與在線SVM培訓以及。
您所描述的是一種在線學習算法,不幸的是SVM的經典定義是以批處理方式完成的。
然而,支持向量機的幾種求解器可以在線學習的方式對下面的優化問題產生簡單的最優假設。特別是我最喜歡的是Pegasos上-SVM可以在線性時間內找到一個好的近似最優解:
謝謝。 Pegasos-SVM似乎是一個非常強大的在線學習工具!任何對Pegasos-SVM感興趣的人都可能想要試試[Sofia-ml](https://code.google.com/p/sofia-ml/)。 @Pedrom – Peiyun
- 1. LightGBM:繼續訓練模型
- 2. 加載訓練有素的Keras模型並繼續訓練
- 3. CNTK python api - 繼續訓練模型
- 4. 如何使用Keras的ModelCheckpoint繼續訓練模型
- 5. 如何在R中使用預訓練的SVM模型?
- 6. 如何訓練ML模型?
- 7. 如何創建SVM(EmguCV)的訓練集?
- 8. 如何根據訓練過的Tensorflow模型進行預測?
- 9. LS-SVM的訓練:內存
- 10. CNTK在使用BrainScript時繼續進行模型訓練
- 11. 如何在MATLAB上開始SVM訓練
- 12. 加載訓練SVM - Emgu CV
- 13. accord.net svm增量訓練
- 14. 在OpenCV中訓練SVM
- 15. OpenCV線性SVM不訓練
- 16. Tensorflow相同的訓練精度繼續
- 17. NLP模型訓練
- 18. 鍵盤中斷後繼續訓練?
- 19. 如何根據一組圖像訓練一個支持opencv的SVM?
- 20. 分割訓練數據以訓練n個模型的最佳數量
- 21. OpenCV 3.0.0 SVM訓練模型保存/加載
- 22. 如何在多種類型功能上訓練svm
- 23. 一對一地訓練scikit svm(在線或隨機訓練)
- 24. 如何訓練自定義模型opeennlp?
- 25. Tensorflow:它如何訓練模型?
- 26. Tensorflow:如何恢復訓練模型? (Python)
- 27. 如何訓練咖啡模型?
- 28. Tensorflow:使用預訓練以來模型
- 29. 不同維度的圖像訓練SVM
- 30. 懲罰訓練SVM中的誤報
是的,我想SV的數量可能會增加。我問這個問題是因爲我不懂硬性負面採礦程序。它將刪除一些* easy *負面訓練示例並添加一些* hard *訓練示例。但我不知道這是一個漸進的培訓過程,還是我們只是改變反面的例子,從頭開始重新訓練SVM。 – Peiyun
是的,我只是解釋了爲什麼我對這個問題感到困惑。謝謝! – Peiyun
@Peiyun好的,對不起,我誤解了:) – BartoszKP