关于机器学习算法的几个思考

一、机器学习的应用领域

机器学习简单来说是让机器从数据中总结经验并从数据中找出某种规律或者模型而用它来分析并解决实际问题。机器学习的应用领域非常宽泛,在我们的衣、食、住、行、教育、娱乐等各个方面都有着广泛的应用,但凡同时满足事物本身存在某种潜在规律、事物难以用普通编程来解决、有大量数据样本可以使用的情况均可用机器学习来解决。宏观来说,机器学习可应用的领域多种多样,目前总的来说其应用大致可分为四个领域,分别为数据挖掘、计算机视觉、自然语言处理及机器人决策(后三者也可归为人工智能领域)等。数据挖掘主要是应用于大数据领域,利用机器学习的模型来挖掘数据中的潜在价值,发现数据之间的关系,如天气预测、房价预测等;计算机视觉是指让机器像人一样看世界,看到图像、视频等媒体并以此来解决实际问题;自然语言处理是让机器像人一样理解语言,理解人写的文字等的含义,并作出一定的反应;机器人决策是指让机器像人一样拥有决策的能力,比如自动驾驶、智能推荐等。

二、机器学习的基本原理

2.1 Hoaffding不等式理论及PAC原理

Hoaffding不等式是是对模型泛化能力的一种表示,如下:在这里插入图片描述
其中,Ein表示在训练数据中,训练结果与真实结果不相等的概率;
Eout表示在所有数据中,训练结果与真实结果不相等的概率,上边不等式即为Hoaffding不等式可知,当数据量N很大的时候,学习的结果与真实结果相差不会很大(限定在之内),其差值的绝对值大于的概率小于一个很小的值,即Ein约等于Eout,这也就是PAC原理。Hoaffding不等式保证了大多数的训练集都是较好的场景,即Ein与Eout近似相等。当hypothesis很多可能会出现bad sample的情况,这会使得Ein和Eout相差很大,而且虽然Hoaffding不等式保证了大多输数据集D的训练误差与泛化误差近似相等,但也会bad data(即使得训练误差与泛化误差相差较大),这时用Hoaffding不等式的联合形式证明机器学习的可能性。

2.2 No Free Lunch Theorem(NFL原理)

不存在在任何情况下准确性都好的模型,即没有一个学习算法可以在任何领域总是产生最准确的学习器,平常说的一个算法比另一个算法更好指的是只针对特定的问题、特定的先验信息、特定的数据的分布、特定的训练样本的数目、代价或奖励函数等,NFL定理说明了无法保证一个机器学习算法在D以外的数据集上一定能分类或预测正确,除非加上一些假设条件。

2.3 奥卡姆剃刀原理

在所有可能选择的模型中,我们应该选择能够很好地解释已知数据并且十分简单(特征少、hypothesis数目有限)的模型。

2.4 数据分布相同

训练数据和验证数据要服从同一个分布,最好都是独立同分布的,这样训练得到的模型才能更好地具有代表性。

2.5 尽量避免窥探数据

因为一旦我们窥探数据,会使我们人为地倾向于某种模型,而非根据数据进行随机选择,影响我们的判断,在选择模型时应尽量用经验、知识来判断选择而非用数据来选择,此外对他人的研究要持怀疑态度并通过自己的研究和测试进行模型选择。

三、机器学习的几个关键问题

3.1 机器学习的分类

按输出空间划分的话,大致可分为二分类、多分类、回归及结构化学习等四种类型;按输出标签划分的话,大致可分为监督学习、非监督学习、半监督学习及强化学习等;按学习的协议不同,大致可分为批学习、线上学习及主动学习;按输入空间的不同进行分类,大致可分为混合特征类型、生特征类型、抽象特征类型。

3.2 机器学习的可行性

由NFL原理可知机器学习无法找到一个目标函数与真实函数完全一致的情况,但根据统计学上的一些假设可证明学习的可能性。如由Hoaffding不等式建立Ein与Eout的联系可证明对某个假设h当数据足够大时Ein与Eout是金丝大概相等的证明其可学习性;当h较多时,只要证明hypothesis的个数M是有限的(不能太大也不能太小,太小可能会使得找不到合适的h使得Ein足够小,太大会使Ein与Eout相差较大)、N足够大,那么算法A任意选择一个函数g使得Ein与Eout约等成立,同时,如果找到一个函数g,使Ein约为0 ,而针对M无限大的情况,可通过将无限大的假设数量限制在有限范围内(因hypothesis之间会有重叠,可由成长函数知hypothesis可被划分为有限种),而针对多维度的情况(如二维感知机),将成长函数引入Hoaffding不等式也能证明PAC及训练误差足够小成立,就证明了机器学习是可行的。

3.3 过拟合

过拟合是指对训练数据的拟合过分好的情况,其是VC维过大的一个过程,其直观表现是算法对训练数据的拟合程度较好、所对应的损失函数较小而泛化能力却很差,过拟合往往将噪声也拟合了进去,使得模型过于复杂,当Ein很小而Eout很大时往往会出现过拟合。导致过拟合的原因有多种,大致可分为噪声干扰(确定性噪声和随机噪声)、数据过少或缺乏代表性、模型过于复杂(VC维过大),针对不同的情况处理过拟合的方式有多种,如增大数据量、以简单的模型开始来训练模型、数据清洗、数据剪枝、数据增广、正则化、dropout、集成学习等方法。而欠拟合与过拟合大致相对,不再过多阐述。

3.4 成长函数及断点

对于由N个点组成的不同集合中,某集合对应的dichotomy最大,那么这个dichotomy值就是成长函数的解值 ,它的上界是2的N次方。断点即是成长函数的值不能2的k次方的最小值。

3.5 VC维

VC维就是某假设集H能够shatter的最多inputs的个数,即最大完全正确的分类能力。其中shatter指的是对于inputs的所有情况都能列举出来(如对N个输入,如果能够将 2的N次方种情况都列出来,则称该N个输入能够被假设集H shatter),简单来说VC维等于断点的个数减1,即最大的非断点数量。VC维应与自由度联系起来,不能过大也不能过小,选择合适的才能使Ein足够小且假设空间H具有良好的泛化能力,根据VC维我们就可以很好解释具有大量训练集的模型更有可能选择近似正确的假设,但如果潜在假设太多,那么最终可能会得到错误的假设的问题。

3.6 Dropout

Dropout是神经网络中防止过拟合的方法。dropout的做法是在训练时随机的选择一部分神经元进行正向传播和反向传播,另外一些神经元的参数值保持不变,以减轻过拟合。dropout机制使得每个神经元在训练时只用了样本集中的部分样本,这相当于对样本集进行采样,即bagging的做法。最终得到的是多个神经网络的组合。

3.7 正则化

正则化(Regularization)是机器学习中一种模型选择的经典方法,是一种旨在减少测试误差的行为(有时会增加训练误差),其要在损失函数上加上一个正则化项或惩罚项来使结构风险最小化,可通过正则化来控制模型的复杂度。常用的正则化方法是在损失函数后面添加一个系数的“惩罚项”,其是为了防止系数过大从而让模型变得复杂,如惩罚项是L1范数、L2范数的的L1正则化(通过让原目标函数加上了所有特征系数绝对值的和来实现正则化,偏向特征选择而降低模型复杂度)、L2正则化(通过让原目标函数加上了所有特征系数的平方和来实现正则化,更适用于防止模型过拟合)。

3.8 Validation

验证集是与训练集同分布但没有参与训练的数据集,可根据验证集在训练集上的泛化能力来反向调节模型的参数或重新训练模型来达到模型选择的作用。而使用验证集进行模型选择的整个过程可分为:先将训练数据分成两个部分,一个是训练集、一个是验证集。若有M个模型,那么分别对每个模型在训练集上进行训练,得到相应模型,再用验证集对每个得到的模型进行验证,选择表现最好的模型作为做好的模型,最后使用该模型对整个数据集进行训练,得到最终的训练模型。常用的验证方法有K折交叉验证(将数据集等比例划分成K份,以其中的一份作为测试数据,其他的K-1份数据作为训练数据,进行K次交叉验证)和普通的交叉验证(按比例一部分训练已部分验证)。

3.9 预测误差及Bias(偏差)、variance(方差)和 error(噪声)

这三部分是模型预测误差的成分,预测误差是对训练的模型与实际的模型相近程度的测量,越小说明一定条件下说明我们的模型越好,训练模型对预测误差的衡量有三个特性:即针对样本外的未知数据、对每个数据点进行测试、看预测与目标是否一致,模型预测时大致会出现正确的被预测称错误的及错误的被预测成正确的这两类,预测误差往往由噪声、模型预测的方差、模型预测值相对真实值的偏差共同决定,其越小表明我们的训练模型在一定条件下越好,在机器学习的过程中我们更关注取更小的偏差和方差,而噪声往往是不可避免的。噪声表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界, 即刻画了学习问题本身的难度,噪声一般有三类情况:由于人为因素,正类被误分为负类,或者负类被误分为正类(针对y);同样特征的样本被模型分为不同的类(针对y);样本的特征被错误记录和使用(针对x)。方差是指根据模型拟合的数据计算的方法,方差度量了同样大小的训练集的变动所导致的学习性能的变化, 即刻画了数据扰动所造成的影响,其值越大表明模型越复杂、拟合过于严重(将噪声也当做模型的输入进行了拟合)。偏差是预测输出与真实标记的差别,偏差度量了学习算法的期望预测与真实结果的偏离程序, 即刻画了学习算法本身的拟合能力,其值越大说明本身模型越简单(欠拟合)。从以上可知偏差与方差往往在一定程度上存在冲突,应相对尽可能的找到是偏差、方差均很小的情况,处理方差、偏差的方法有多种,如在神经网络中增加层数可使偏差减小,通过验证集校验、正则化减小方差。

四、机器学习算法的本质

算法的本质可以简单认为是解决某项问题的步骤、方案或途径,而机器学习算法的本质个人认为是通过机器(计算机)建立了一种从数据到模型的一种映射的步骤、方案或途径(就如同人类从经验、数据中获得一些知识而达到对事物的认知),从而根据这个模型来对某项事物判断、决策以达到类似于人对事物的认知,机器学习算法还探索了根据经验提高解决问题效率的方法,并且只要有足够的运算能力且能保证每次对训练数据的学习都能使模型的表下能力提高一点点就能保证学习能进行下去且能后终止。

机器学习有多重定义,且每种定义都有一定的道理,故机器学习算法也相应地有多种解释。机器学习算法可以说是让机器能够像人类一样可通过观察大量的数据和训练而发现事物规律并获得某种分析问题、解决问题的能力;也可以说是对于某一任务及其该任务性能度量方法,给出特定的算法,能够利用数据不断学习并提高该任务表现的方法;也可说机器学习算法是计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一种手段。

机器学习的具体算法有很多,其相应的算法本质也不一而足。如决策树算法的本质是找到对象属性与对象值之间的一种映射关系;朴素贝叶斯算法的本质是对于给出的待分类项,求解此项出现的条件下各个类别出现的概率并由此判断类别:KNN算法的本质是采用测量不同特征值之间的距离方法进行分类;PCA算法的本质是将n维特征映射为k维;K-Means算法的本质是随机确定K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。

五、机器学习理论和算法之间的关系

机器学习的理论与算法是相辅相成、互相影响的,他们缺一不可。理论是客观存在的规律,是算法的基础;算法是理论的延伸、实现,是依据理论提取出的方法与规则,是理论的体现。理论主要强调为何这样解决问题(着重原因),而算法主要强调怎样解决问题(强调步骤)。理伦为算法提供了正确的思维方式,保证了算法的合理性和可行性,而算法为理论提供了便捷的操作步骤和方法,保证了算法的正确性和快速性。但同时机器学习的算法虽有理论支撑,但没有完整地理论支撑(如基于统计的机器学习有很强的理论支撑,而基于深度学习的神经网络(’炼丹‘)并没有那么强的理论支撑(但现实应用中性能最重要,对理论支撑并不那么看重))。

六、SVM

支持向量机(support vector machine,SVM)是一种二类分类模型,他的基本模型是定义在特征空间上的间隔最大的线性分类器。间隔最大使它有别于感知机;支持向量机还包括核技巧,这使它成为实质上的线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题,支持向量机的学习算法是求解凸二次规划的最优化算法。

SVM的动机是找到是找到一条能正确划分且最胖(线和两边最近点的最远间隔)的线,由于数据存在噪声,最胖能够保证对噪声的容忍度更高而越能保证结果(如分类)的可靠性。

SVM的目标就是就是找到边界最宽且正确分类的超平面,同时边距的计算方式就是计算所有数据到超平面的最小值,总体的边界选择策略就是找到最小值中的最大值(即下确界),进一步通过同比缩放、max转min等操作,可将最大间隔问题化为如下标准格式:

在这里插入图片描述

可以看出,目标函数是一个凸的二次函数,所有的条件均为关于w、b的一次式(条件是线性的),故可将其转化为QP问题求解。

为何叫支持向量机:从上边的分析可知离超平面最近的点(是一个向量)唯一决定了这个超平面,而其它的点的存在对这个平面位置的决定没有任何的帮助,故可认为这些离超平面最近的点支撑起了这个超平面,这些点就叫做支撑向量,而它们所支撑的这个模型叫做支撑向量机。

SVM的好处与理论上的保障
在这里插入图片描述

可看出无论是正则化还是SVM的宽的边距都是同时在做好最小化Ein与W²,只是位置发生了交换,故从某种程度上来说SVM的LargeMargin就是一种正则化。此外,在SVM中我们的演算法想要找出胖胖的边界,我们会选择胖过某一个门槛值的模型,这样的话会使得我们的有效的模型的个数会减少(在VC维度中的观点就是不能分割所有点的模型它的模型复杂度较低,有效的VC维度就月底会使得Eout与Ein越接近),可以通过调节模型边界的胖瘦来控制演算法的VC维度。在不考虑胖瘦的情况下在VC维度很小的情况下它的复杂度较小Ein≈Eout,但是它不能分割复杂的数据;它的复杂度高的时候我们能够分割复杂的资料,但是Ein会与Eout隔很远始终不能两全我们只能做一个适当的权衡。LargeMargin的复杂度会更加小一些Ein≈Eout但是它不能分割复杂的资料。但是我们把LargeMargin与特征转换结合起来的话我们既可以得到不太高的VC维度同时又能分割出一个复杂的边界,从而得到一个控制模型复杂度的方式。

SVM的对偶问题:

在解决QP问题的二次规划是,维度d可能非常大甚至无限维而使得计算非常复杂,这时可找一等价问题,新的QP问题只受资料量的影响有N个变数与N+1个约束条件,这个新的问题就是原始问题的对偶问题(和正则一样都是解决有限制条件下的最佳化问题),其可通过如下方式解决。

在这里插入图片描述

通过拉格朗日乘子法去将原始的问题转化成一个多带一项的问题去解决(如上图中的从最小化Ein到最小化Eaug就是这个过程),通过调试已给的λ来求出最优解(其中正则化中只有一个限制条件所以会有1个参数λ)。之后可进一步将SVM对偶问题转换为拉格朗日对偶问题进行求解。

核函数SVM

特征转换后高VC维会带来的计算复杂度的影响(对偶问题只是让计算看起来避开了VC维度带来的影响,但是这个VC维度还是潜藏在了计算中)。如在对偶问题的标准二次规划问题中,高维度的转化情况下d’远大于d,有时候碰上无限多维的转换,d’的值将会有无限大这时QD矩阵中的两笔资料的Z矩阵的内积的计算将十分困难,而这时我们就需要核函数来帮忙了。

核函数的简单思想就是不再使用中间变量Z向量而直接依靠原始空间(X空间)的数据的线性组合来完成转换(原始方法:X空间—Z空间—做内积,核函数:X空间—做内积(稍加变换))。

增加核函数的SVM的求法如下
在这里插入图片描述

①计算出二次规划所需要的各个参数,尤其是使用核函数计算出Q矩阵。

②使用QP的软件计算出α的值。

③使用α计算出W与b(需要用到支撑向量)的值,b的计算涉及到两个资料点进行特征转换再做内积的步骤,统统都换成核函数的形式。

④返回最终求解的SVM。常用的核函数有线性和函数(在这里插入图片描述)、多项式核函数(在这里插入图片描述)、高斯核函数(在这里插入图片描述)等。

参考:林轩田《机器学习基石》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值