机器学习 – 支持向量机

如果使用核数据训练一个支持向量机模型,所得的训练模型中包含支持向量。现在考虑使用现有的旧数据加上少量新数据来训练一个新模型的情况。因此:

  1. 是否应该将新数据与之前模型中的支持向量结合起来,形成新的训练集?(如果是,那么如何将支持向量与新的图数据结合?我正在使用libsvm

或者:

  1. 是否应该将新数据和全部旧数据结合起来形成新的训练集,而不仅仅是支持向量?

哪种方法在重新训练时更好,更可行,并且在准确性和内存使用方面更有效?


回答:

你必须始终考虑整个新拼接的训练集进行重新训练。
旧模型中的支持向量在某些新点更靠近决策边界的情况下可能不再是支持向量。支持向量机背后是一个需要解决的优化问题,请记住这一点。给定一个训练集,你会找到该训练集的最优解(即支持向量)。一旦数据集发生变化,这样的解可能不再是最优的。
SVM的训练不过是最大化问题,其中几何和功能边距是目标函数。这就像最大化给定函数f(x)…但随后你改变了f(x):通过从训练集中添加/删除点,你对决策边界的理解会更好或更差,因为这样的决策边界是通过采样得知的,而这些样本确实是来自你的训练集的模式。
我理解你对时间和内存效率的担忧,但这是一个常见的问题:确实,对于所谓的大数据训练SVM仍然是一个开放的研究课题(关于反向传播训练有一些提示),因为这样的优化问题(以及关于哪些拉格朗日乘数应该成对优化的启发式方法)不容易在多个工作者上并行/分布处理。

LibSVM使用众所周知的顺序最小优化算法来训练SVM:这里你可以找到约翰·普拉特关于SMO算法的文章,如果你需要关于SVM背后优化问题的更多信息。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注