请教支持向量机与人工神经网络的区别
请教支持向量机与人工神经网络的区别? 我简单谈一下我的看法吧:===============================
二者在形式上有几分相似,但实际上有很大不同。
简而言之,神经网络是个“黑匣子”,优化目标是基于经验风险最小化,易陷入局部最优,训练结果不太稳定,一般需要大样本;
而支持向量机有严格的理论和数学基础,基于结构风险最小化原则, 泛化能力优于前者,算法具有全局最优性, 是针对小样本统计的理论。
目前来看,虽然二者均为机器学习领域非常流行的方法,但后者在很多方面的应用一般都优于前者。
============================= 以下摘自《有关论文的一点综述:支持向量机及其应用》一文
目前在数据挖掘软件中运用的最早也是最多的分类算法是神经网络,它具有对非线性数据快速建模的能力,通过对训练集的反复学习来调节自身的网络结构和连接权值,并对未知的数据进行分类和预测。但是由于神经网络是基于经验最小化原理,它有如下几个固有的缺陷:
1)结构复杂(神经元的结构,还有输入层,隐含层,输出层组合起来的复杂结构)
2)容易陷入局部极小
3) 容易出现过学习问题,也就是训练出来的模型推广能力不强
为了克服传统神经网络的以上缺点,Vapnik提出了一种新的基于统计学习理论的机器学习算法―支持向量机,正式奠定了SVM的理论基础,由于SVM扎实的理论基础,其目前已经成为继神经网络之后的的机器学习领域研究热点之一。
鉴于支持向量机扎实的理论基础,并且和传统的学习算法想比较(比如人工神经网络),SVM通过提高数据的维度把非线性分类问题转换成线性分类问题,较好解决了传统算法中训练集误差最小而测试集误差仍较大的问题,算法的效率和精度都比较高。所以近年来该方法成为构造数据挖掘分类器的一项新型技术,在分类和回归模型中得到了很好的应用。但由于支持向量机出现的时间在90年代中期,人们对支持向量机的应用主要集中在模式识别方面,对于将支持向量机应用于数据挖掘的研究刚处于起步阶段。
目前,用SVM构造数据挖掘中的分类器来处理海量数据主要面临以下两个困难:
(1)SVM算法对大规模训练样本难以实施
由于SVM是借助二次规划来求解支持向量,而求解二次规划将涉及m阶矩阵的计算(m为样本的个数),当m数目很大时该矩阵的存储和计算将耗费大量的机器内存和运算时间。
针对以上问题的主要改进有有J.Platt的SMO算法、T.Joachims的SVM 、C.J.C.Burges等的PCGC、张学工的CSVM以及O.L.Mangasarian等的SOR算法
(2)用SVM解决多分类问题存在困难
经典的支持向量机算法只给出了二类分类的算法,而在数据挖掘的实际应用中,一般要解决多类的分类问题。可以通过多个二类支持向量机的组合来解决。主要有一对多组合模式、一对一组合模式和SVM决策树;再就是通过构造多个分类器的组合来解决。主要原理是克服SVM固有的缺点,结合其他算法的优势,解决多类问题的分类精度。如:与粗集理论结合,形成一种优势互补的多类问题的组合分类器
支持向量机是基于统计学习理论的新一代学习机器,具有很多吸引人的特点,它在函数表达能力、推广能力和学习效率上都要优于传统的人工神经网络,在实际应用中也解决了许多问题,但由于SVM的出现比较晚,还处于发展阶段,尤其是其算法实现方面存在着效率低下的问题,这也是限制SVM很好地应用于数据挖掘中的一个瓶颈。可以考虑对传统支持向量机进行扩展,实现多分类支持向量机。可以考虑运用于现在的客户智能系统当中,现有客户智能系统采用的分类技术都是传统的数据挖掘技术:
比如神经网络,决策树,回归分析等等。根据最后的图,大家可以看到现在的分析型CRM的整个功能和技术架构,如果把这种新兴的数据挖掘技术-支持向量机,运用于商业智能,相信是种不错的尝试。
页:
[1]