dlib 的 dcd 训练器的“热启动”选项是不是仅适用于 1 类分类?

Posted

技术标签:

【中文标题】dlib 的 dcd 训练器的“热启动”选项是不是仅适用于 1 类分类?【英文标题】:is the 'warm start' option of dlib's dcd trainer only for 1-class classification?dlib 的 dcd 训练器的“热启动”选项是否仅适用于 1 类分类? 【发布时间】:2018-03-14 20:45:30 【问题描述】:

我正在将dlib 用于使用 SVM 对医学图像进行分类的程序。因为图像很大(许多特征,比如 10000 到 100000)并且我使用线性内核,所以听起来 svm_c_linear_dcd_trainer 是一个很好的类。

我喜欢svm_c_linear_dcd_trainer 类的另一个原因是它声称支持“热启动”,因此如果经常在样本中添加/减去单个观察值(例如在 LOOCV 中),这对于长向量是有效的.

svm_c_linear_dcd_trainer 的唯一示例使用 one_class 分类。文档建议实现热启动的 force_last_weight_to_1 选项仅用于 1 类分类。

这是真的吗,即这个热启动选项是否不适用于二进制分类?在那种情况下,另一种实现会更快吗?

【问题讨论】:

【参考方案1】:

这不是限制。您是否阅读了该课程的文档? http://dlib.net/dlib/svm/svm_c_linear_dcd_trainer_abstract.h.html#svm_c_linear_dcd_trainer 在 dlib 的文档中,它说热启动仅限于一类分类。 svm_c_linear_dcd_trainer 的文档甚至没有提到我所看到的一个类分类。

【讨论】:

什么是“dob”? 感谢您的回答!在文档中并没有真正说明如何进行热启动?我在示例程序中找到了 force-to-1 选项的链接,那里的 cmets 让我认为它是针对 1 类分类器的...... "但是抛开empirical_kernel_map,将线性SVM变成一类SVM最重要的步骤如下。我们在每个特征向量的末尾附加一个-1值,然后告诉训练师将此功能的权重强制为 1。” 好的。那只是在谈论如何构造一个类分类器。阅读 api 文档以了解特定的 dlib 对象。 好的,所以热启动是由optimizer_state 类模板和使用它的train() 函数完成的,与强制权重为1 或偏差无关。我找到了active_learning.h 示例,现在它更有意义了!

以上是关于dlib 的 dcd 训练器的“热启动”选项是不是仅适用于 1 类分类?的主要内容,如果未能解决你的问题,请参考以下文章

dlib代码解读人脸关键点检测器的训练

使用 194 点海伦数据集训练 dlib 形状预测器

dlib 19.6 多分类器训练数据

如何使用 dlib 训练或合并多个 .svm 并检测多个类

DLIB:为 194 个地标训练 Shape_predictor(海伦数据集)

Dlib - 如何使用 loss_mean_squared_multioutput 训练标签类型?