关于机器学习算法分类与经典算法综述
关于机器学习算法分类与经典算法综述
1 背景
机器学习领域的著名学者汤姆·米切尔(Tom Mitchell)将机器学习定义为:对于计算机程序有经验E、学习任务T和性能度量P,如果计算机程序针对任务T的性能P随着经验E不断增长,就称这个计算机程序从经验E学习。这个定义比较简单抽象,随着对机器学习的研究越来越深入,我们会发现机器学习的内涵和外延也在不断变化。简言之,机器学习就是用计算机通过算法来学习数据中包含的内在规律和信息,从而获得新的经验和知识,以提高计算机的智能性,使计算机面对问题时能够做出与人类相似的决策。随着各行各业的发展,数据量增多,对数据处理和分析的效率有了更高的要求,一系列的机器学习算法应运而生。机器学习算法主要是指运用大量的统计学原理来求解最优化问题的步骤和过程。针对各式各样的模型需求,选用适当的机器学习算法可以更高效地解决一些实际问题。
2 机器学习算法的分类
按照现在主流的分类方式,可以根据训练样本及反馈方式的不同,主要将机器学习算法分为监督学习、无监督学习和强化学习3种类型。其中监督学习是机器学习这三个分支中最大和最重要的分支。另外,作为监督学习与无监督学习相结合的半监督学习方法,暂不列在本文讨论范围之内。
2.1 监督学习算法(Supervised Algorithms)
在监督学习中,训练集中的样本都是有标签的,使用这些有标签样本进行调整建模,从而使模型产生一个推断功能,能够正确映射出新的未知数据,从而获得新的知识或技能。
根据标签类型的不同,可以将监督学习分为分类问题和回归问题两种。前者预测的是样本类别(离散的),例如给定鸢尾花的花瓣长度、花瓣宽度、花萼长度等信息,然后判断其种类;后者预测的则是样本对应的实数输出(连续的),例如预测某一时期一个地区的降水量。常见的监督学习算法包括决策树、朴素贝叶斯及支持向量机等。
2.2 无监督学习算法(Unsupervised Algorithms)
无监督学习与监督学习相反,训练集的样本是完全没有标签的。无监督学习按照解决的问题不同,可以分为关联分析、聚类问题和维度约减三种。关联分析是指通过不同样本同时出现的概率,发现样本之间的联系和关系。
这被广泛地应用于购物篮分析中。例如,如果发现购买泡面的顾客有百分之八十的概率买啤酒,那么商家就会把啤酒和泡面放在临近的货架上。聚类问题是指将数据集中的样本分成若干个簇,相同类型的样本被划分为一个簇。
聚类问题与分类问题关键的区别就在于训练集样本没有标签,预先不知道类别。维度约减是指保证数据集不丢失有意义的信息的同时减少数据的维度。利用特征选择方法和特征提取两种方法都可以取得这种效果,前者是指选择原始变量的子集,后者是指将数据由高维度转换到低维度。无监督学习与人类的学习方式更为相似,被誉为是人工智能最有价值的地方。常见的无监督学习算法包括稀疏自编码、主成分分析及K-means等。
2.3 强化学习算法(Reinforcement Algorithms)
强化学习是从动物行为研究和优化控制两个领域发展而来。强化学习和无监督学习一样都是使用未标记的训练集,其算法基本原理是:环境对Agent(软件智能体)的某个行为策略发出奖赏或惩罚的信号,Agent要使每个离散状态期望的奖赏都最大,从而根据信号来增加或减少以后产生这个行为策略的趋势。
强化学习这一方法背后的数学原理与监督/非监督学习略有差异。监督/非监督学习更多地应用了统计学知识,而强化学习更多地应用了离散数学、随机过程等这些数学方法。常见的强化学习算法包括Q-学习算法、瞬时差分法、自适应启发评价算法等。
3 机器学习经典算法及其应用
机器学习作为一个独立的研究方向已经经过了近四十年的发展,期间经过一代又一代研究人员的努力,诞生了众多经典的机器学习算法,但限于篇幅无法对所有算法一一整理总结,以下只列举了有代表性的一部分经典算法进行描述。
3.1 朴素贝叶斯(Naive Bayesian)
朴素贝叶斯算法基于统计学分类中的贝叶斯定理,将特征条件独立性假设作为前提,是一种常见的有监督学习分类算法。对于给定的一组数据集,朴素贝叶斯算法会求得输入/输出的联合概率分布,然后在统计数据的基础上,依据条件概率公式,计算当前特征的样本属于某个分类的概率,选择概率最大的分类。
在实际情况下,朴素贝叶斯算法的独立假设并不能成立,所以其性能略差于其他一些机器学习算法,但是由于其实现简单、计算复杂度低且对训练集数据量的要求不大,使其在文本分类、网络舆情分析等领域上有着十分广泛的应用。另一方面,由于实际应用中存在各特征相互干涉、训练数据集缺失等的情况,于是又从中优化演变出其他贝叶斯算法,以增强其泛化能力。朴素贝叶斯算法的改进及应用如表1所示。
3.2 K 均值算法(K-Means)
K均值算法是一种常用的聚类算法。其核心思想是把数据集的对象划分为多个聚类,并使数据集中的数据点到其所属聚类的质心的距离平方和最小,考虑到算法应用的场景不同,此处描述的"距离"包括但不限于欧氏距离、曼哈顿距离等。
它的工作流程分为四步:1)在数据集n 个对象中任意选取k 个对象作为初始的聚类中心;2)计算数据集中其他对象到这些聚类中心的距离,分别将这些对象划分到与其距离最近的聚类中心;3)重新计算聚类均值得到其质心,然后将所得到的质心作为新的聚类中心;4)不断重复第二步和第三步直到标准测度函数最终收敛为止。
K均值算法原理十分简单,需要调节的参数只有一个k,且具有出色的速度和良好的可扩展性,因而K均值算法作为经典的聚类算法,被普遍应用于需要解决此问题的各个领域之中。
3.3 AdaBoost 算法(Adaptive Boosting)
Boosting算法是一种可以用来减小监督学习中偏差的机器学习算法,其中AdaBoost算法是最优秀的Boosting算法之一,其核心思想是将分类精度比随机猜测略好的弱分类器提升为高分类精度的强分类器。AdaBoost算法可用于分类和回归,但目前的研究和应用大多集中于分类问题。
为了创建一个强大的分类器,AdaBoost算法使用了多次迭代的方法。它会依据每次训练后的样本集分类是否正确和上次分类的准确率,来确定数据集中样本的权值,将修改过权值的新数据集送给下层分类器进行训练,然后将每次训练得到的分类器相融合,得到的结果是一个比弱分类器更加准确的分类器,并作为最终的决策分类器以实现算法。
相较于其他机器学习算法,AdaBoost算法虽然对异常值和噪声数据比较敏感,但其具有能够显著改善子分类器预测精度、不需要先验知识、理论扎实、克服了过拟合问题等众多优点。这使AdaBoost算法及其演化算法凭借其优秀性能受到不同领域研究人员的关注,目前被广泛应用于机器视觉、计算机安全、计算生物学等诸多领域。
3.4 支持向量机(SVM)
支持向量机是一种对数据进行二元分类的广义线性分类器,其决策边界是对学习样本求解得到的最大边距超平面。基本思想是:找到集合边缘上的若干数据(称为支持向量),用这些点找出一个平面(称为决策面),使得支持向量到该平面的距离最大。
支持向量机的学习策略就是间隔最大化,其算法就是求解凸二次规划的最优化算法,关键在于求得分类间隔最大值的目标解。根据训练数据集是否线性可分的不同,支持向量机分为:线性可分支持向量机、线性支持向量机和非线性支持向量机。
在支持向量机算法提出之初就被成功地应用于手写数字的识别上,证明了其算法在理论上具有突出的优势。支持向量机模型与许多机器学习算法能够很好地联合应用,这使得支持向量机有着众多性能更佳的改进模型。在近几年内的发展中,支持向量机在人脸识别、文字识别、图像处理等各方面都得到了广泛应用。
3.5 线性回归(Linear Regression)
线性回归分为一元线性回归以及多元线性回归。在回归分析中,若只有一个自变量以及一个因变量,并且两个变量之间能够用直线表示,这就称为一元线性回归分析,其数学模型为:
\(y = wx + b\),
同理,因变量受多个自变量影响,这时一元线性回归就不能满足条件了,需要建立多元回归模型,其数学模型为:
\(y = w_{1}x_{1} + w_{2}x_{2} + w_{3}x_{4} + ... + b\),
线性回归是使用权重参数来拟合出线性模型的一种方法。
3.6 梯度下降法(Gradient Descent)
梯度下降是一种优化算法,它是是大多数机器学习算法的核心和灵魂,其作用是在梯度的负值所定义的最陡下降方向上不断的移动(迭代)从而达到最小化某些函数的作用。在机器学习过程中,可以使用梯度下降法来学习线性回归或者神经网络中每个神经元的权重,达到更新参数的目的。通过梯度下降法,在训练模型的时候能够降低模型的损失,它在机器学习中是一种广泛用于减少损失的方法,像在上坡走路一样找到一种最快最省力的方法像在上坡走路一样找到一种最快最省力的方法。
3.7 逻辑回归(Logistic Regression)
统计学中,逻辑模型用于对特定类别或事件(例如通过/失败)的概率进行建模。逻辑回归是使用逻辑函数来估计概率,用来测量因变量与一个或几个自变量之间的关系。因此逻辑回归一般用来分析二元分类以及多元分类。逻辑回归与线性回归的区别在于,线性回归更多的是得到一种较为准确的结果,可能某个数字;而逻辑回归得到的是一种概率,基于0到1之间,是一种非常有效计算概率的机制。逻辑回归可以用于寻找导致某一事件的因素,例如找到某一疾病发生的因素。
3.8 决策树算法(Decision Tree)
决策树是一个树结构(二叉树或非二叉树)。决策树每个决策点表示的是一个特征属性上的测试,而其每个分支代表的是这个特征属性在它的某个值域上的输出结果,决策树的每个叶节点都可以存放一个类别。使用决策树来进行决策的过程是从根节点开始的,然后测试待分类项中相应的特征属性,并按照其值来选择所要输出的分支,直到到达最终的叶子节点,并将叶子节点存放的类别来作为决策结果输出。决策树算法背后的基本思想是使用属性选择度量(ASM)选择最佳属性以拆分记录,使得该属性成为决策节点,并将数据集分为更小的子集。通过递归,可以为每个子项不断重复这个过程,从而来启动树的构建,直到其中一个条件匹配为止。属性选择度量用于将数据划分为最佳可能方式的拆分标准的启发式算法,也可以称为拆分规则,因为有助于确定给定节点上元组的断点。
3.9 随机森林分类法(Random forests Classifiers)
随机森林算法主要用于分类和回归。森林是由树木(特征)组成,拥有的树越多,森林(特征)越坚固。随机森林分类法就是从随机选择的数据样本上创建决策树,从每棵树上获得预测并提供投票,来选择最佳的解决方案。随机森林应用也非常多,例如推荐引擎等。在分类问题过程中,每棵树进行投票后,最受欢迎的类会被当作最终结果;在回归问题过程中,所有树输出的平均值会被当作最终结果。随机森林算法的过程是从给定数据集中选择随机样本,然后为每个样本构建决策树,并从每棵决策树上获得预测的结果,再对每个预测的结果来进行投票,最终选择所投票最多的预测结果作为最终的预测结果。
随机森林由于参与该过程的决策树数量被认为是高度准确和稳健的方法,不会受到过度拟合问题的影响,因为它取消了所有预测的平均值,从而抵消了偏差。与其他算法相比,随机森林生成预测的速度很慢,因为它有多个决策树,每当在进行预测的过程时,森林中所有的树都会对相同的给定输入做出预测,然后再对其进行投票,过程较耗时。
3.10 聚类算法(Clustering Algorithms)
在机器学习中,无监督学习方法一直是我们追的方向而其中的聚类算法更是发现隐藏数据结构与知识的有效手段。聚类是将样本进行分类,然后将样本收集到相类似的组中,根据某些预定义的相似性或距离(不相似性),来进行采样测量。它的应用包括使用案例包括细分客户等。Kmeans聚类法是聚类算法中最为原始的一类,它可以随机将每个观察样本分配到 k 类中的某一类,然后来计算每个类的平均值,再然后它重新将每个观察的样本分配到与其最为接近的均值所在的类别,最后再重新计算其均值。这一步需要不停的重复,直到不再需要出现新的分配为止。其是在未标记的多维数据集中搜索预定数量的聚类,聚集中心是属于聚类所有点的算术平均值,每个点都靠近自己的集群中心,而不是靠近其他集群的中心。
聚类算法对大数据集处理具有相对可伸缩和高效率的特性,它会尝试找出到使平方误差函数值最小的k个划分。聚类算法是使用最简单的聚类算法之一,其他类似的聚类算法(例如分层聚类等)都是在其基础上深化得来的。
4 总结
经过漫长的发展,经历了萌芽期、停滞期、复兴期、成型期直到现在的蓬勃发展期,最终机器学习算法的研究成果得到广泛应用实属不易。虽然目前有着众多机器学习算法,但没有一种算法能够适用所有问题,针对不同的应用场景,监督学习、无监督学习、强化学习都有各自合适的选择,各种类别的机器学习算法均有擅长的领域和难以克服的缺陷,尽管机器学习的经典算法较为简单,但其是机器学习发展的基础和核心,可将其进行改进和联合使用,以发挥优点弥补不足,促进机器学习能力的提升。
5 参考文献
[1] 赵彰.机器学习研究范式的哲学基础及其可解释性问题[D].上海:上海社会科学院,2018.
[2] 张润,王永滨.机器学习及其算法和发展研究[J].中国传媒大学学报(自然科学版),2016,23(2):10-18,24.
[3] 杨剑锋,乔佩蕊,李永梅,等.机器学习分类问题及算法研究综述[J].统计与决策,2019(6):36-40.
[4] 屠恩美,杨杰.半监督学习理论及其研究进展概述[J].上海交通大学学报,2018,52(10):1280-1291.
[5] 邓建国,张素兰,张继福,等.监督学习中的损失函数及应用研究[J].大数据,2020,6(1):60-80.
[6] 焦李成,杨淑媛,刘芳,等.神经网络七十年:回顾与展望[J].计算机学报,2016,39(8):1697-1716.
[7] 张耀中,胡小方,周跃,等.基于多层忆阻脉冲神经网络的强化
[8] 马骋乾,谢伟,孙伟杰.强化学习研究综述[J].指挥控制与仿真,2018,40(6):68-72.
[9] 李旭然,丁晓红.机器学习的五大类别及其主要算法综述[J].软件导刊,2019,18(7):4-9.
[10] 渠云龙.基于不同场景的贝叶斯分类的改进研究与应用[D].长春:吉林大学,2019.
[11] 柏宇轩.Kmeans应用与特征选择[J].电子技术与软件工程,2018(1):186-187.
[12] 薛琳瑶.K-means算法在地质灾害系统中的应用研究[D].西安:西安工业大学,2018.
[13] Freund Y,Schapire R E.A decision-theoretic generalizationof on-line learning and an application to boosting[J].Journal ofComputer and System Sciences,1997,55(1):119-139.
[14] 潘志庚,刘荣飞,张明敏.基于模糊综合评价的疲劳驾驶检测算法研究[J].软件学报,2019,30(10):2954-2963.
[15] 贾宏云.基于AdaBoost模型的藏文文本分类研究与实现[D].拉萨:西藏大学,2019.
[16] 林香亮,袁瑞,孙玉秋,等.支持向量机的基本理论和研究进展[J].长江大学学报(自科版),2018,15(17): 6,48-53.
[17] 程建峰,乐俊刘丹.基于SVM算法的用户行为认证方法[J].计算机系统应用,2017,26(11):176-181.
[18] 姜建国,常子敬,吕志强,等.USB HID攻击检测技术研究[J].计算机学报,2019,42(5):1018-1030.
[19]周志华,机器学习,清华大学出版社,2016.
[20]Nick T G , Campbell K M . Logistic Regression[J].Methods in Molecular Biology, 2007, 404(404):273.
[21]刘颖超, 张纪元. 梯度下降法[J]. 南京理工大学学报(自然科学版), 1993.
[22]None. Applied Logistic Regression Analysis[J].Technometrics, 1996, 38(2):192-192.
[23]唐华松, 姚耀文. 数据挖掘中决策树算法的探讨[J]. 计算机应用研究, 2001(08):21-22+25.
[24]关晓蔷. 基于决策树的分类算法研究[D]. 山西大学.
[25]范昕炜. 支持向量机算法的研究及其应用[D]. 浙江大学,2003.
[26]Zhang ML, Zhou Z H . ML-KNN: A lazy learning approach to multi-label learning[J]. Pattern Recognition, 2007,40(7):2038-2048.
[27]Breiman L. Random Forests[J]. Machine Learning, 2001,45(1):5-32.
[28]Rasmussen E. Clustering algorithms[M] Information retrieval. Prentice-Hall, Inc. 1992.
[29] Bobin J, Starck J L. Compressed Sensing in astronomy and remote sensing: a data fusion perspective[J]. Proceedings of SPIE, 2009, 7446.
[30] Shengliang L, Kun L, Feng Z, et al. Innovative remote sensing imaging method based on compressed sensing[J]. Optics and Laser Technology, 2014, 63 : 83-9.