我正在阅读Vowpal Wabbit的文档,但它并未说明如何选择特定的学习算法(不是损失函数),如SVM、神经网络、决策树等。如何选择特定的学习算法呢?
或者说,它是根据问题类型(回归/分类)自动选择算法的,就像一种自动机器学习或低代码机器学习库那样吗?
有一些博客展示了如何使用-nn
命令来使用神经网络,但这并不在文档中提及——这是因为它不关注特定算法吗?如上所述,如果是这样,那么Vowpal Wabbit本质上是什么?
回答:
Vowpal Wabbit基于在线学习(类似SGD的更新,但如果你真的需要批量优化,也可以使用--bfgs
)和(机器学习)简化。查看一些教程或论文以理解简化的概念。许多VW论文还涉及到上下文匪徒问题,这被实现为对成本敏感的一对所有(OAA)分类的简化(进一步简化为回归)。查看一个简单的简介或一个简单的示例,展示如何将二元分类简化为回归。
据我所知,VowpalWabbit不支持决策树和集成学习,但可以查看--boosting
和--bootstrap
。它不支持SVM,但可以查看--loss_function hinge
(铰链损失是SVM的两个关键概念之一)和--ksvm
。它不支持神经网络,但--nn
(和相关选项)提供了非常有限的支持,模拟单隐藏层(前馈并使用tanh激活函数),可以添加到简化堆栈中。