SVM和神经网络

SVM和神经网络有什么区别?线性SVM是否与神经网络相同,对于非线性可分问题,神经网络是通过增加隐藏层来解决的,而SVM是通过改变空间维度来解决的,这种说法正确吗?


回答:

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

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

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

因此,SVM和神经网络之间的区别在于它们如何决定这些参数的设定。通常,当有人说他们在使用神经网络时,他们的意思是他们正在尝试找到一组参数,以最小化相对于一组训练样本的均方预测误差。他们几乎总是会使用随机梯度下降优化算法来实现这一点。另一方面,SVM试图最小化训练误差和某种“假设复杂度”的度量。因此,它们会找到一组适合数据且在某种意义上“简单”的参数。你可以将其视为机器学习中的奥卡姆剃刀原则。与SVM一起使用的最常见的优化算法是序列最小优化

这两种方法之间的另一个重大区别是,随机梯度下降在神经网络实现中使用的方式下,并不能保证找到最优参数集。然而,任何像样的SVM实现都将找到最优参数集。人们喜欢说神经网络会陷入局部最小值,而SVM则不会。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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