SVM 可以增量学习吗?
Posted
技术标签:
【中文标题】SVM 可以增量学习吗?【英文标题】:Can an SVM learn incrementally? 【发布时间】:2011-04-27 10:00:54 【问题描述】:我正在使用多维 SVM 分类器(SVM.NET,libSVM 的包装器)对一组特征进行分类。
给定一个 SVM 模型,是否可以合并新的训练数据而无需重新计算所有先前的数据?我想另一种说法是:SVM 是可变的吗?
【问题讨论】:
我开始阅读 Bishop 的书来帮助回答这个问题,但我相信您可能会在 mathoverflow.net 得到更深入的答案 【参考方案1】:实际上,它通常称为增量学习。这个问题以前提出过,在这里得到了很好的回答:A few implementation details for a Support-Vector Machine (SVM)。
简而言之,这可能但并不容易,您必须更改正在使用的库或自己实现训练算法。
我找到了两种可能的解决方案,SVMHeavy 和 LaSVM,它们支持增量训练。但我没用过,对它们一无所知。
【讨论】:
谢谢,我将问题标题更改为更准确。你提到的问题是我的一个很好的答案。 @larsmans 好点。它有时也与主动学习混淆/混为一谈。【参考方案2】:在线和增量虽然相似但略有不同。在网上,它通常可以配置单遍(epoch=1)或epoch数。其中,增量意味着您已经有一个模型;不管它是如何构建的,但是模型可以被新的例子改变。此外,通常需要在线和增量相结合。
这是一个工具列表,其中包含一些关于在线和/或增量 SVM 的评论:https://stats.stackexchange.com/questions/30834/is-it-possible-to-append-training-data-to-existing-svm-models/51989#51989
【讨论】:
以上是关于SVM 可以增量学习吗?的主要内容,如果未能解决你的问题,请参考以下文章