Neural network Torch7中的支持向量机

Neural network Torch7中的支持向量机,neural-network,svm,torch,Neural Network,Svm,Torch,我的模型基于以下教程: 在最后一个阶段,神经网络用于从CNN中提取的特征。我想在最后一层使用SVM。如何将其添加到现有模型中 在一些论文中已经表明,SVM作为CNN的最后一层似乎比神经网络的功能更好,因此我想尝试一下它们,以提高模型的准确性。支持向量机也可以用于神经网络所缺乏的一类分类。我最后需要一个一类分类器,因此需要在CNN中添加一个支持向量机 请帮忙编辑:自从你以来,我以前的回答完全是胡说八道。相反,您可以将SVM视为 在输出节点上线性激活并通过铰链损耗训练的一层神经网络 (见接受答案的

我的模型基于以下教程:

在最后一个阶段,神经网络用于从CNN中提取的特征。我想在最后一层使用SVM。如何将其添加到现有模型中

在一些论文中已经表明,SVM作为CNN的最后一层似乎比神经网络的功能更好,因此我想尝试一下它们,以提高模型的准确性。支持向量机也可以用于神经网络所缺乏的一类分类。我最后需要一个一类分类器,因此需要在CNN中添加一个支持向量机

请帮忙编辑:

自从你以来,我以前的回答完全是胡说八道。相反,您可以将SVM视为

在输出节点上线性激活并通过铰链损耗训练的一层神经网络

(见接受答案的评论。)

这意味着,在Torch中,您可以使用以下内容模拟(线性)SVM

linearSVM = nn.Sequential()
linearSVM:add(nn.Linear(ninputs, 1))
criterion = nn.MarginCriterion()

请参见…

中的以下问题,这不是官方答案,但您是否考虑过推出自己的SVM模块?你所需要做的就是编写自己的向前和向后消息函数。。。从概念上讲,最难的部分将是对响应函数进行派生…另外,我相信你看到了这一点,但谷歌集团有一个问题专门针对这个问题(有点):请查看我的编辑-我可能刚刚取消了它的“可接受”资格,对不起!太多了!!我挖了一点,发现在CNN上添加SVM的一种方法是使其完全独立于CNN。像平常一样训练CNN,一旦训练完成,用从CNN中提取的特征在训练集上训练SVM。这避免了“手动”更新权重和计算梯度的例行程序。但是这仍然留下了一个关于一类SVM的问题没有得到回答,因为我仍然需要为CNN收集一些负面的例子。另一种方法肯定是你建议的,但它确实似乎有点太复杂了,我无法处理!我打算尝试扩展我的代码示例,以完全定义
linearSVM
模块,但我意识到这种方法可能存在根本性缺陷:我不认为您可以使用back-prop来训练SVM,因为forward消息对所有输入和参数都有一个始终为0的导数。。。