SVM和神经网络

Coy*_*Bit 30 artificial-intelligence machine-learning svm neural-network

SVM和神经网络有什么区别?线性svm是否与NN相同,并且对于非线性可分离问题,NN使用添加隐藏层而SVM使用不断变化的空间维度?

Dav*_*ing 44

这个问题分为两部分.第一部分是"这些方法学习的函数形式是什么?" 对于NN和SVM,这通常是相同的.例如,单个隐藏层神经网络使用与SVM完全相同的模型形式.那是:

给定输入向量x,输出为:output(x)= sum_over_all_i weight_i*nonlinear_function_i(x)

通常,非线性函数也会有一些参数.因此,这些方法需要了解应该使用多少非线性函数,它们的参数是什么,以及所有weight_i权重的值应该是多少.

因此,SVM和NN之间的区别在于它们如何决定应该将这些参数设置为什么.通常,当有人说他们正在使用神经网络时,他们意味着他们正试图找到最小化相对于一组训练样例的均方预测误差的参数.他们也几乎总是使用随机梯度下降优化算法来做到这一点.另一方面,SVM试图最小化训练误差和"假设复杂性"的某种度量.因此,他们会找到一组适合数据的参数,但在某种意义上也是"简单的".你可以把它想象成奥卡姆用于机器学习的剃须刀.与SVM一起使用的最常见的优化算法是顺序最小化优化.

两种方法之间的另一个重大区别是,当NN实现使用它时,随机梯度下降不能保证找到最佳参数集.但是,任何体面的SVM实现都将找到最佳参数集.人们喜欢说神经网络陷入局部极小,而SVM则不然.


Igo*_* F. 24

NN是启发式的,而SVM在理论上是成立的.SVM保证收敛到PAC(可能是近似正确的)意义上的最佳解决方案.例如,对于两个线性可分类,SVM将直接在两个类的最近点之间绘制分离超平面(这些成为支持向量).神经网络将绘制任何分隔样本的线,这对于训练集是正确的,但可能没有最佳的泛化属性.

所以不,即使对于线性可分的问题,NN和SVM也不相同.

在线性不可分类的情况下,SVM和NN都将非线性投影应用于更高维空间.在NN的情况下,这通过在隐藏层中引入额外的神经元来实现.对于SVM,内核函数用于相同的效果.核函数的一个简洁特性是计算复杂度不随维数的增加而增加,而对于NN,它显然随着神经元的数量而增加.


Flu*_*nkt 11

在几个流行的回归分类和分类数据集上运行支持向量机和神经网络(没有参数选择)之间的简单开箱即用的比较,证明了实际差异:如果有许多支持向量,则SVM变得非常缓慢神经网络预测速度高得多,模型尺寸小得多.另一方面,SVM的训练时间要短得多.关于准确度/损失 - 尽管存在上述神经网络的理论缺陷 - 两种方法都是相同的 - 特别是对于回归问题,神经网络通常优于支持向量机.根据您的具体问题,这可能有助于选择正确的型号.

  • 通常,SVM和NN都可以解决非线性问题."非线性度"通过NN中的#hidden-nodes(或层)和SVM中的#support-矢量来控制.SVM在训练期间自动调整此项,而对于NN,开发人员必须定义#hidden-units/topology(尽管存在多种或多或少有用的启发式方法来自动确定最佳拓扑,最好的方法是通过交叉执行参数选择验证) (2认同)