第1章 绪论
1.1 机器学习简史
1.1.1 机器学习技术概述
机器学习是指机器通过统计学算法,对大量历史数据进行分析,进而利用生成的经验模型分析、指导现有工作,预测未来结果的一门技术。它是一门多领域交叉学科,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。例如,根据过去的经验来判断明天的天气,“吃货”希望凭购买经验挑选一个好瓜,能不能让计算机帮助人类来实现这些功能呢?答案是肯定的。人的“经验”对应计算机中的“数据”,在程序设计自动控制下,让计算机来学习这些经验数据,生成一个根据所满足的条件来实现相应算法的模型,在面对新的情况中,计算机便能做出有效的判断,这便是机器学习。
1.1.2 机器学习历史发展
1. 机器学习与计算机
自1946年冯?诺依曼发明**台计算机以来,科学家希望计算机不仅具有存储程序自动控制功能,且能像人一样具有自我学习和判断的能力,能在复杂环境中根据相应条件执行各式各样的任务以满足人们所需。而作为实现人工智能的重要途径之一,机器学习一直是该领域的研究热点。不少公司及大学投入了大量资源及精力去提高机器学习算法。截至目前,人工智能在某些领域中已经可以和人类“并驾齐驱”,例如,“阿尔法狗”又称AlphaGo,是一款围棋人工智能程序,由谷歌旗下公司戴密斯?哈萨比斯团队开发,主要工作原理是“深度学习”。AlphaGo有一层神经网络,会把大量矩阵数字作为输入,通过非线性激活方法取权重,另一个数据集合作为输出,基本上和生物神经大脑工作原理一样。AlphaGo有两个大脑,是通过两个不同的神经网络大脑,合作来进行下棋的,这些大脑是多层神经网络,一个大脑作为落子选择器,另一个用来评估棋局。AlphaGo究竟有多厉害呢?2016年3月,人机在韩国*尔展开了一次对战,这是一次可以写入历史的“人机大战”。这场大战持续了5天,受到了全世界的关注,比赛一方是谷歌AlphaGo,另一方是世界围棋冠军韩国名将李世石,九段,棋王。AlphaGo击败了棋王李世石。早在1997年,AlphaGo的前辈,即国际商业机器公司(International Business Machines Corporation,BIM)开发的“深蓝”计算机,就击败过世界排名**的国际象棋大师卡斯帕罗夫。AlphaGo还有一个更厉害的地方,它并不是一个机械的程序编码,而是一个有“监督预判机制”的机器人。它每下一步棋,都会考虑到这种走法是不是更有前途,这种能力就类似于人类的“想象力”,可能会预判到对手所有的步法,让对手无路可走。2017年5月AlphaGo再次挑战柯洁(当时世界围棋排名**),结局以AlphaGo三连杀完胜柯洁告终。
2. 机器学习模型的发展历程
唐纳德?赫布于1949年提出“突触前神经元向突触后神经元的持续重复的刺激,可以导致突触传递效能的增加”,即赫布理论研究的是循环神经网络(recurrent neural network,RNN)中各节点之间的关联性。而RNN具有把相似神经网络连接在一起的特征,并起到类似于记忆的作用。赫布是如此描述赫布理论的:我们可以假定,反射活动的持续与重复(或称“痕迹”)会引起神经元稳定性的持久性提升 当神经元A的轴突与神经元B之间距离非常近,且A对B进行重复持续的刺激时,这两个神经元或者它们的其中之一便会发生某些生长过程或代谢的变化,从而使得A刺激B的效率得到提高。到了1952年,IBM的亚瑟?塞缪尔(Arthur Samuel,被誉为“机器学习之父”)设计了一款可以学习的西洋跳棋程序。它能通过观察棋子的走位来构建新的模型,并用其提高自己的下棋技巧。塞缪尔和这个程序进行多场对弈后发现,随着时间的推移,程序的棋艺变得越来越高(唐杰,2020)。塞缪尔用这个程序推翻了以往“机器无法超越人类,不能像人一样写代码和学习”这一传统认识。而他对“机器学习”的定义是:不需要确定性编程就可以赋予机器某项技能的研究领域。
1958年,具备神经科学背景的Rosenblatt提出了第二个模型—感知机(perceptron),它更接近于如今的机器学习模型。当时感知机的出现让不少人为之兴奋,因为它的可用性比赫布模型要高。Rosenblatt是这样介绍感知机的:感知机可以在较简单的结构中表现出智能系统的基本属性,也就是说研究人员不需要再拘泥于具体生物神经网络特殊及未知的复杂结构。而1960年,Widrow则提出了差量学习规则,且随即被应用到感知机模型中。差量学习规则又称“*小平方”问题,它与感知机结合在一起时可以创建出更精准的线性分类器。不过,Minsky和Papert(1987)给予感知机重重一击,他们提出的异或问题揭露出感知机的本质缺陷—无法处理线性不可分问题。此后,神经网络研究陷入了长达十多年的停滞中。1970年,Linnainmaa*次完整地叙述了反向模式自动微积分算法[反向传播(back propagation,BP)算法的雏形],但在当时并没有引起重视。直到Werbos于1981年提出将BP算法应用于神经网络以建立多层感知机后,神经网络的发展才得以提速。接着在1985年和1986年,多位神经网络学者也相继提出使用BP算法来训练多层感知机的相关想法。其间,Quinlan于1986年提出了著名的机器学习算法—决策树,也就是ID3算法,它也是机器学习领域的主流分支之一。另外,与“黑盒派”的神经网络编程器不同,ID3算法就如发行软件一般,可以运用它的简单规则及清晰理论找到更多具有实际意义的应用场景。自ID3算法提出以来,有不少研究团队对它进行了优化改进(如ID4、回归树、决策树等),至今,它依旧是机器学习领域的“活跃分子”之一。
如果要说机器学习*重要的突破,1995年Cortes和Vapnik提出的支持向量机(support vector machine,SVM)便是其中之一。这种算法不但有坚实的理论基础,还有出色的实验结果。自此之后,机器学习这一领域便分成了两大流派,即神经网络和SVM。不过,自2000年内核版的SVM被提出后,神经网络在这场竞争中逐渐处于下风。新版本的SVM在此前被神经网络垄断的领域中都取得了亮眼的成绩。另外与神经网络相比,SVM的优势是具有凸优化、大边际理论、核函数方面的知识基础。因此,它能从不同的学科理论中汲取养分,从而加快自身的发展进程。而在SVM持续发展之际,神经网络再次受到了重创。Hochreiter在1991年的学位论文及2001年与其他研究人员合作发表的论文中表示,使用BP算法时,神经网络的单元饱和之后系统会发生梯度损失(又称梯度扩散)。简单来说,就是训练神经网络模型时,超过一定的迭代次数模型将会产生过拟合。Freund和Schapire(1999)提出了另外一个有效的机器学习模型—Adaboost。它的核心思想是针对同一训练集训练不同的弱分类器,然后将它们集合起来,构建出更强的*终分类器(强分类器)。另外,Adaboost为两位研究人员赢得了哥德尔奖。直至目前,Adaboost依旧被不少领域采用,如面部识别和检测等。同时它也是可能近似正确(probably approximately correct,PAC)学习理论的实践模型之一。
总体来说,Adaboost就是把多个不同的决策树用一种非随机方式组合的提升树。他们是这样介绍Adaboost的:我们研究的模型可以被解释为在一般决策场景下对已充分了解的预测模型进行大范围而抽象的扩展 。另外一种多决策树的组合模型则是由Breiman(2001)提出的。这种模型中单个决策树由一个随机子集训练而得,而决策树中每一节点各选自这一随机子集。正是因为这些特点,这种算法被命名为随机森林(random forest,RF)。据了解,RF可以避免过拟合现象的出现,这是Adaboost无法做到的。也就是说,与Adaboost相比RF更具优势。此外,RF在许多运算任务中都有不错的变现(如Kaggle比赛)。RF是一种树形集成分类器,森林中每棵决策树都依赖于*立采样的向量值,且具有相同的分布。当森林中决策树的数量足够多时,RF的泛化误差将收敛于一个限制值内。时至今日,神经网络已经进入了一个名为“深度学习”的新时代。这种依赖于级联卷积神经网络的全新算法的出现预示着神经网络第三次大发展的开始。2005年前后,包括LeCun等(1998)、Bengio等(2006)、Hinton等(2006)在内的多位研究人员纷纷发表了相关研究成果。
深度学习模型在诸多领域中都完胜当时*先进的算法,如物体识别、语音识别、自然语言处理等。不过,这绝对不代表机器学习将就此终结。尽管深度学习依然持续火热,但是这一模型同样存在不少缺点,如成本、参数调优等方面的问题。而且,SVM凭借着自身的简洁性,目前依旧活跃于各大领域。
1.2 机器学习的应用
1.2.1 机器学习应用概述
在信息和大数据时代,基于人工智能的机器学习技术的应用无处不在,机器学习技术与人们的生活、工作息息相关,且时刻影响着人们的衣、食、住、行等方方面面。机器学习技术的应用主要包括图像识别、语音识别、流量预测、产品**、自动驾驶汽车、电子邮件中的垃圾邮件和恶意软件过滤、虚拟个人助理、在线欺诈检测等领域。
1.2.2 机器学习应用领域
1. 图像识别
机器学习中的图像识别技术是*常用也是*基础的应用之一,它主要用于识别:人,如防盗门锁等的开关;物,如机场、地铁等场所的安检。据资料统计,基于高清探头图像采集的机器学习对人脸识别准确率达到95%以上。
2. 语音识别
自动语音转换为文字的方式在机器学习中也得到了广泛应用,我们使用手机发送信息时,就可以通过语音输入,然后转换为文字;在餐厅点餐或电话咨询时,机器学习算法中的语音识别也被广泛应用;语音识别无处不在。
3. 流量预测
如果想去一个新的地方,我们会借助高德地图、百度地图和微信等软件来导航,应用软件向我们显示正确的路径、缓慢移动或严重拥堵等情况并预测交通状况来预测交通是否畅通;若是绿色出行的共享单车,则通过定位系统应用程序和传感器实时定位车辆,规定运动轨迹等。
4. 产品**
机器学习被阿里巴巴、拼多多等多种电子商务和娱乐公司用于向用户**产品。每当我们在淘宝上搜索某些产品,或者在同一个浏览器浏览网页时,会获得同一个产品的广告,淘宝使用多种机器学习算法了解用户的兴趣,并**产品。同样,当我们使用腾讯视频时,也会被**一些节目,这也是借助机器学习完成的。
5. 自动驾驶汽车
机器学习*令人兴奋的应用之一是自动驾驶汽车,机器学习在自动驾驶汽车中发挥着重要作用,如特斯拉正在研发自动驾驶汽车。它使用非监督学习方法来训练汽车模型在驾驶时检测人和物体。另外,利用机器学习算法,百度在自动驾驶领域也很优秀,它早已经是一家人工智能公司。
6. 电子邮件中的垃圾邮件和恶意软件过滤
每当我们收到一封新邮件时,它都会被自动分类为重要邮件、普通邮件或垃圾邮件。在我们收到一封骚扰邮件,如明显的广告时,它会被自动归类为垃圾邮件,这一点其实谷歌邮箱做得很好,国内的QQ邮箱似乎没有做到这一点,不过短信可以做到,很多广告的短信能够被自动拦截,这背后的技术就是机器学习。
邮箱使用的垃圾邮件过滤器主要有内容过滤器、标题过滤器、常规黑名单过滤器、基于规则的过滤器、权限过滤器等。常见的机器学习算法有多层感知机、决策树和朴素贝叶斯分类器等都可用于电子邮件中的垃圾邮件和恶意软件过滤等方面。
7. 虚拟个人助理
顾名思义,虚拟个人助理能够帮助我们查询、查找相关信息。这些虚拟个人助理可以通过语音指令以各种方式帮助我们,使用机器学习算法作为重要组成部分,记录我们的语音
展开