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 可以增量学习吗?的主要内容,如果未能解决你的问题,请参考以下文章

“增量/减量”SVM 算法 - 可以在附加数据上进行训练

Ml.Net 图像分类增量学习

爬虫学习18.增量式爬虫

增量式强化学习

小白学习MySQL - 增量统计SQL的需求 - 开窗函数的方案

小白学习MySQL - 增量统计SQL的需求 - 开窗函数的方案