深度学习核心技术与实践(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-01 01:47:04

点击下载

作者:猿辅导研究团队

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

深度学习核心技术与实践

深度学习核心技术与实践试读:

前言

本书的大部分作者在深度学习流行之前有幸从事机器学习相关工作多年。在我们内部,一直认同一个段子:有多少人工就有多少智能。

· 在深度学习流行之前的传统机器学习年代,我们认为“人工”更多强调的是特征工程之难,需要机器学习从业者不断分析数据,挖掘新的特征。

· 在深度学习流行的这几年,我们认为这句话依然成立,只是“人工”更多地强调人工标注,因为深度学习需要大量的标注数据。当然,也有人反驳说不需要标注,用户的使用历史天然就是标注。实际上,这可以理解为一种众筹标注。

· 在深度学习发展的未来,我们希望这句话不再成立,期待无监督模型取得更长足的进步,使得“人工”智能变为真正的智能。

在追求智能的路上,我们虽然是创业公司,但一直坚持机器学习相关课程的学习和Paper Reading,陆续学习了传统的机器学习相关算法,也探索了深度学习的相关原理,并不断应用到实践中。

受益于当今学术开放开源的氛围,深度学习的最新算法甚至代码实践大家都能在第一时间进行学习。所以在创业公司的早期深度学习实践中,最重要的并不是算法理论方面的创新,而是结合产品需求如何进行深度学习技术的落地。这就要求团队不仅需要对业务非常熟悉,也需要对深度学习相关算法了如指掌,同时还需要有人可以真正用代码将算法落地。很幸运,我们的团队具备这样的能力,所以在深度学习的实践中较少走弯路。随着多年的积累,团队在深度学习方面开始有不少自己的创新,也对理论有了整体的认识。从2016年下半年开始,团队部分成员利用周末等业余时间撰写了这本书,算是对团队过去所学深度学习知识的一个总结。本书的撰写都是大家牺牲周末时间完成的,且在撰写过程中,碰到多次项目进度非常紧急的情况,周末时间也被项目占用,但大家还是克服困难,完成了书稿,非常感谢这些作者的配合!此外,猿辅导研究团队的大部分成员参与了审稿相关工作,在此一并表示感谢!

当然,本书撰写较仓促,作者人数也较多,错误和不足在所难免,烦请读者及时反馈,我们将及时纠正。

在这个过程中,有了一点点微不足道的积累。希望通过本书,对过去学过的知识做一些总结归纳,同时分享出来让更多的深度学习爱好者一起受益。

写作分工

朱珊珊编写了第1章的1.2.1节主要部分、1.3节,第2章的绝大部分内容,第13章。

邓澍军编写了前言,第1章的1.1节、1.2.2节至1.2.4节,第2章的2.2.2节、2.2.6节至2.2.8节,第3章,第6章的6.1节、6.2节,第7章,第8章的8.1节,第9章,第10章的10.6节、10.7节,第11、17、18、21章,第25章的25.3节。

陈孟阳编写了第4、10章。

孙萌编写了第5、22章。

冯超编写了第6章的6.3节至6.10节,第8章的8.3节、8.5节至8.7节,第27、28章。

曹月恬编写了第8章的8.2节、8.4节,第24章。

杨晓庆编写了第12、26章。

夏龙编写了第14、15章,第16章的16.1节、16.2节、16.5节、16.6节。

吴凡编写了第16章的16.3节、16.4节。

赵薇编写了第19章。

陈冬晓编写了第20章。

赵玲玲编写了第23章。

王锐坚编写了第25章。

本书特点

本书首先介绍了深度学习的一些基本原理,然后介绍了计算机视觉、语音识别、自然语言处理的相关应用,最后介绍了一些较前沿的研究方向。

本书具有如下特点:

· 计算机视觉、语音识别、自然语言处理这三方面的介绍内容绝大部分是作者团队有过相关实践和研究的方向,和业界联系紧密。

· 所涵盖的深度学习相关知识点比较全面。

· 干货:主要讲解原理,较少贴代码。

本书的篇章脉络如下:

本书读者

本书适合深度学习从业人士或者相关研究生作为参考资料,也可以作为入门教程大致了解深度学习的相关前沿技术。

关于团队

猿辅导研究团队成立于2014年,是创业公司中较早从事深度学习的团队。该团队陆续将深度学习应用于如下领域:

· 拍照印刷体OCR(Optical Character Recognition,光学字符识别):从0开始打造拍照搜题APP小猿搜题(目前累计安装量达1.6亿次)。

· 拍照手写体OCR:包括斑马速算产品中的屏幕手写笔迹的在线手写识别、拍照手写图片的离线手写识别、与公务员考试相关的申论手写识别等。

· 语音识别:包括古诗词背诵、高考听说自动判卷、英语口语打分等项目。

· 自然语言处理:主要应用于英语作文自动批改、自动判卷、短文本对话等项目。

关于公司

猿辅导公司是中国领先的移动在线教育机构,拥有中国最多的中学生移动用户,以及国内最大的中学生练习行为数据库,旗下有猿题库、小猿搜题、猿辅导三款移动教育APP。2017年6月猿辅导获得由华平投资集团领投、腾讯跟投的1.2亿美元E轮融资,估值超过10亿美元,成为国内K-12在线教育领域首个独角兽公司。

读者服务

轻松注册成为博文视点社区用户(www.broadview.com.cn),您即可享受以下服务。

· 下载资源:本书所提供的示例代码及资源文件均可在下载资源处下载。

· 提交勘误:您对书中内容的修改意见可在提交勘误处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。

· 与作者交流:在页面下方读者评论处留下您的疑问或观点,与作者和其他读者一同学习交流。

页面入口:http://www.broadview.com.cn/32905第1部分 深度学习基础篇1 概述

当今时代,人工智能(Artificial Intelligence,AI)、机器学习(Machine Learning,ML)、深度学习(Deep Learning,DL)都是耳熟能详的一些概念。机器学习是实现人工智能的一种方式,而深度学习是机器学习的一个分支。NVIDIA的一张图(如图1-1所示)很好地[1]概括了三者之间的关系。人工智能从20世纪50年代开始兴起,机器学习在80年代兴起,而深度学习的流行则晚一些,在2010年左右。图1-1 人工智能、机器学习、深度学习三者之间的关系1.1 人工智能

2016年3月9日至15日,Google旗下DeepMind公司开发的围棋程序AlphaGo与世界围棋冠军、职业九段选手李世石进行人机大战,最终以4∶1的总比分赢得比赛。

2016年年末至2017年年初,AlphaGo在中国围棋网站上以Master账号与中、日、韩数十位围棋高手过招快棋,连胜60局。

2017年5月23日至27日,AlphaGo迎战世界冠军柯洁,以3∶0的比分毫无悬念地赢下比赛。

2017年12月5日,DeepMind宣布,新AI AlphaZero只须学习34小时即可战胜AlphaGo。

随着AlphaGo的高歌猛进以及媒体的积极炒作,人工智能的概念得到迅速普及,甚至有人开始担心未来人工智能是否会危害到人类。1.1.1 人工智能的分类

人工智能也称为机器智能,是指人工制造出来的机器或系统展现出来的智能。

人工智能也可以进一步分为以下两种类型。

· 弱人工智能(Weak AI):通常是指机器通过机器学习之类的技术从大量数据中学到一些规律,这种学习实际是记忆性的,机器本身并无意识,只是执行某些算法或任务的工具。弱人工智能有时也称为狭义人工智能(Narrow AI)。

· 强人工智能(Strong AI):机器具有意识,能够完全像人类一样思考和具有感情。强人工智能也称为通用人工智能(General AI)或全人工智能(Full AI)。

AlphaGo虽然看上去比人类还厉害,但依然只是弱人工智能,本身并无意识可言。而部分人担心的可能会危害到人类的人工智能,则可以定义为第三类人工智能——超级智能(Super-Intelligence)——机器具有比人类更强大的智慧,甚至是人类无法理解的智慧。1.1.2 人工智能发展史

提及人工智能,就不能不介绍计算机科学之父艾仑·麦席森·图灵(Alan Mathison Turing,1912—1954年),他在1950年创作的Computer Machinery and Intelligence中提出了智能的概念,以及著名的图灵测试——计算机能否在智力行为上表现得和人没有区别。后来英国皇家学会规定的图灵测试标准为:如果机器可以在5分钟内回答由人类测试者提出的一系列问题,且其超过30%的回答可以让测试者认为是人类所回答的,则该机器通过图灵测试并认为其具有智能。时至今日,图灵测试一直被广泛用于测试机器是否具有智能。

人工智能比计算机出现得还更早一些,最早出现在1955年的一次10人研讨会提案中,一般认为,1956年的达特茅斯会议(Dartmouth Artificial Intelligence Conference)才是人工智能真正诞生的地方,当时参加会议的很多人都是大名鼎鼎的科学家,包括John McCarthy(人工智能之父,1971年图灵奖得主,Lisp语言之父)、Marvin Minsky(人工智能之父,1969年图灵奖得主)、Nathaniel Rochester(IBM第一代通用计算机701主设计师)、Claude Shannon (信息论之父)。他们提出人工智能的研究目标是设计可以模拟人类的机器,这种机器可以使用语言,具有抽象理解能力。

至今,人工智能这个概念的提出已经半个多世纪了,为何很多人在最近一两年才真正切身感受到的存在?这一切与人工智能的发展历程密切相关。大体上,人工智能的发展可以分为以下几个阶段。

1.第一个黄金时期(1956年至20世纪70年代中)

1956年达特茅斯会议后的10多年是人工智能发展的第一个黄金时期。在这个时期,大家认为逻辑推理能力是计算机具有智能的最重要原因,这个时期也被称为人工智能“推理期”。计算机被广泛用于解决代数题、证明几何定理等,这些成果得到了广泛赞赏,也让当时的研究者信心倍增,甚至很多人认为推理就是智能,有了推理能力就可以制造出完全智能的机器。

在这个时期,人工智能的相关研究也得到了政府的大力支持,获得了大笔的科研资金。1963年6月,新建立的ARPA(即后来的DARPA,Defense Advanced Research Projects Agency,美国国防部[2]高级研究计划局)赞助了MIT 222万美元经费,用于资助MAC工程,其中包括Marvin Minsky和John McCarthy于1959年建立的人工智能实验室。此后ARPA每年提供300万美元人工智能研究经费,直到20世纪70年代。1963年,John McCarthy在斯坦福大学成立了另一个前瞻性的人工智能实验室。

2.第一个低谷时期(20世纪70年代中至80年代初)

虽然大家信心倍增,也投入了大量的科研资金,但是渐渐地发现当时的计算机运算能力有限,有限的内存和运算速度使得计算机很难处理实际应用中的人工智能问题,之前的盲目承诺无法兑现,光靠推理并没有实现真正的人工智能。人们渐渐失去耐心,批评和怀疑也接踵而至,1973年有个著名的Lighthill报告(具体是指James Lighthill所写的论文Artificial Intelligence:A General Survey),深度抨击了人工智能的进程,这导致之后英国的科研经费大量转向其他方向。YouTube上还有1973年Lighthill与Richard Gregory、John McCarthy、Donald Michie等人工智能支持者的辩论视频,感兴趣的读者可以搜一下Lighthill debate。在一定程度上,Lighthill报告加速了将人工智能打入冷宫的进程。从1974年开始,已经很难找到支持人工智能的科研经费。

在这个时期,感知机之类的联结主义遭遇冷落,1969年Minsky和Papert出版了著作Perceptrons:an introduction to computational geometry,书中暗示1958年由Frank Rosenblatt (1928—1971年)提出的感知机具有严重局限,从数学角度证明了单层感知机计算能力有限的根本原因,指出单层感知机甚至连异或(XOR)这样的问题也不能解决,并论证了单层感知机的这些局限性在多层感知机中是不可能被全部克服的。此处详情可参考本书2.3.2节。

同样在这个时期,专家系统之父Edward Albert Feigenbaum(1994年图灵奖得主)等研究者开始倡导智能机器必须具备知识,据此可以认为,20世纪70年中后期人工智能进入了“知识期”。在这个时期,专家系统代替逻辑推理成为新宠,人们总结出来的大量知识通过规则之类的系统输入计算机,规则的详细程度决定了机器的智能水平,现在人们常说的“有多少人工就有多少智能”是非常适合这个时期的。

3.第二个黄金时期(20世纪80年代初至80年代末)

20世纪80年代,人工智能开始复苏。1981年,日本经济产业省为支持第五代计算机项目拨款8.5亿美元,这种计算机可以与人对话、翻译、理解图像,并能像人一样推理。此后,英国、美国纷纷效仿,也启动了很多相关项目,人工智能迎来了新的发展时期。

20世纪80年代初,另一个令人振奋的事件是John Hopfield和David Rumelhart使联结主义重获新生。1982年美国加州理工学院物理学家John Hopfield博士提出了Hopfield网络,这是一种递归神经网络,从输出到输入增加了反馈连接;1986年David Rumelhart等人发表了Parallel Distributed Processing,文中详细讲解了具有非线性连续变换函数的多层感知机的误差反向传播(Error Back Propagation,BP)算法,时至今日的深度学习,BP依然是中流砥柱。

4.第二个低谷时期(20世纪80年代末至90年代初)

然而,好景不常在,专家系统慢慢暴露出维护难、不完善等缺点。1987年,Apple和IBM的普通台式机的性能反而超过了“智能计算机”,专家系统被质疑。20世纪80年代末,DARPA对人工智能的期望也降低了。1991年,日本的第五代计算机宣告失败,人工智能再一次跌入低谷。

5.第三个黄金时期(20世纪90年代中至今)

从20世纪90年代中期开始,人工智能陆续走向台前,处于第三个黄金发展时期,在这个时期发生的事件包括:

· 1997年,深蓝击败国际象棋世界冠军卡斯帕罗夫。

· 2011年,IBM Watson在美国电视知识抢答竞赛节目“危险边缘(Jeopardy!)”中击败了史上胜率最高的两位人类冠军。

· 2012年至今,ImageNet图像分类大赛年年创新高,并在一定程度上超过了人类的识别能力。

· 2016—2017年,Google DeepMind创造的AlphaGo围棋系统相继战胜世界冠军李世石、柯洁。

世界大国纷纷布局人工智能,美国在2013年4月由奥巴马政府宣布投入1.1亿美元,并从2014年开始,每年各投入3~5亿美元,十年总计将投入45亿美元。

欧盟在2013年年初公布了总投资12亿欧元的十年计划,预计在2018年之前开发出一个具有意识的智能大脑,同时在2014年6月启动了机器人研发计划,目标是为欧盟各行各业提供机器人。

日本在2015年12月开展了第五个科学与技术基础五年计划,预计总投资26万亿日元,用来实现一个全球领先的“超级智能社会(Super)”,以及发展信息技术以及人工智能、机器人等相关技术。

韩国在2013年5月提出了ExoBrain十年计划,预计总投资9000万美元,计划开发专业领域的人机对话系统。

中国在2015年7月发布了《国务院关于积极推进“互联网+”行动的指导意见》,其中人工智能是重点布局的11个领域之一;2016年5月发改委公开了《“互联网+”人工智能三年行动实施方案》;同时,脑科学研究也上升到国家战略高度。

而在这一次人工智能的黄金发展过程中,深度学习起到了至关重要的作用,除上面提到的ImageNet图像分类大赛、AlphaGo与深度学习密切相关外,深度学习使研究者在计算机视觉、语音识别、机器翻译等各个领域都取得了有史以来的最长足进步。深度学习依然是从古老的联结主义发展而来的,是隐层多于一层的神经网络。之所以在这个时期深度学习才得到大力发展,主要原因包括三点:

· 算法——逐层训练初始化模型、分布式并行训练算法等能力的提升。

· 计算——GPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)、TPU(Tensor Processing Unit)等能力的大幅提升。

· 大量的训练数据——例如ImageNet千万级别的图像数据。

当然,在这个时期也存在泡沫,有人鼓吹传统行业的从业者即将失业,有人担心自己要被机器取代甚至消灭,甚至很小的深度学习创新也开始被媒体捧到天上去,生怕大家觉得这个创新的影响力不够大。作为技术人来说,刨去这些泡沫,深度学习在很多领域都带来了有史以来最大的技术突破,甚至很多突破远远超出了技术实践者本身的预期。1.2 机器学习

机器学习(Machine Learning)是一门研究计算机模拟和实现人类行为的科学,通过不断改善知识结构,进而超越人类能力的学科。机器学习算法是从数据中自动分析并获得规律,进而可以对未知数据进行预测的算法。1.2.1 机器学习的由来

很多时候,人们希望能借助机器的力量来自动完成一些任务,从而将人类从烦琐的事项中解放出来。比如自动监测违规车辆及排查嫌疑车,可以代替交通警察用人眼监控显示屏;自动驾驶,可以选择最佳路线、躲避其他车辆而安全地驾驶;自动人脸识别,可以代替人工完成特定的服务。

概括来说,这个过程涉及了两大步骤。

· 认知这个世界,获取信息。

· 根据信息进行判断和决策。

从人类的角度看,第2步显然重要得多。人们进行了种种努力,不断探索如何能排除感性的干扰,做出更加理性的决策。这样的决策在给定信息的情况下,被称为“全局最优”策略。而这一步,在机器看来却轻巧得多,它可以充分调动强大的计算能力,综合各种优化算法,在极短的时间内就能给出最优的答案。

但另一方面——“像人类一样认知这个世界”——却不是它的强项。面对一张图片,它可以告诉你一共有多少个像素点,也可以准确地给出图片上每一个像素点的像素值,但却分辨不出那些像素点组成的脸庞。如图1-2所示,十年前机器学习领域还在聚焦于如何能让机器准确地识别类似简单的物体。机器的识别能力甚至比不上一个3岁的孩童。不仅如此,在经过训练能认出图片上的物体后,一旦光影变幻、物体遮挡或角度变化,就很可能又会识别失败。图1-2 Caltech 101数据集

人们挠挠头,不知道怎么教机器这个憨憨的学生去“感知”这个世界。于是人们转而看看关于自己大脑的研究,也就是神经科学,希望能获得一些关于“认知”的理论。可惜,当时大脑神经科学也是一片广阔而充满了未解之谜的领域。虽然对神经元的研究、激活和信息传导有了一定的成果,但还不足以解释“认知”这个宏大的课题。尽管如此,人们还是乐观地开始了对机器学习领域中的人工神经网络的研究。经过大半个世纪的坎坷和沉浮,厚积薄发,在21世纪开始大放异彩,在各个领域都取得了惊人的进展。

机器学习的领域很广泛,与视觉相关的领域包括:物体识别、图像分割、图像索引、人脸识别、场景识别、场景匹配等。而且还有很多有趣的商业应用,比如谷歌眼镜等。

与听觉相关的领域包括:语音识别、乐曲片段匹配,甚至有自动作曲这样有趣的方向。

与认知相关的领域包括:自然语言处理、专家系统等。

基于对人群偏好的推测而进行的内容推荐,也由于有着广阔的应用场景而成为机器学习中很热门的一个领域,包括诸如网页推荐、广告推荐、购物产品推荐、电影推荐等。

此外,还有很多其他五花八门的方向,比如机器人的相关研究。如图1-3所示,斯坦福的Jackrabbot就是一个带着领带、风度翩翩的社会化行走机器人。和其他机器人不同,它在人行道上行走时,会特别学习人类的社会习惯,比如行走时注意他人的个人空间、有礼貌地行走,而不是只为了走到目的地而加快步伐地横冲直撞。

这里,我们简单澄清一些与机器学习密切相关且容易混淆的概念。

模式识别(Pattern Recognition)——在一定程度上等同于机器学习,一般认为模式识别最初来自于工业界,而机器学习来自于学术界,机器学习的经典书籍Pattern Recognition and Machine Learning所讲的就是两者不分家。图1-3 Jackrabbot机器人会遵从社会习俗

统计学习(Statistical Learning)——也是机器学习的近义词,机器学习的很多方法都源自于统计学习,这些方法往往具有优美的数学推导,比如支持向量机(SVM)方法等。总体上,统计学习更偏数学理论一些,而机器学习更偏实践一些。

数据挖掘(Data Mining)——在有些场景中也被等同于机器学习,但更专业的解释应该是机器学习在大数据领域的应用,通过机器学习的方法从大数据中挖掘出规律或知识。

计算机视觉(Computer Vision)——强调机器学习在图像领域的应用。可以说,迄今为止,计算机视觉是机器学习尤其是深度学习最成功应用的领域,没有之一。

语音识别(Speech Recognition)——研究机器听懂人类声音的领域。目前语音识别也取得了长足的进步,有Siri、语音输入法等大家耳熟能详的应用。

自然语言处理(Natural Language Processing)——研究机器理解人类语言的领域。相比计算机视觉、语音识别的感知问题,自然语言处理尤其是其中的语义理解属于认知问题,相对更难一些。

那么具体来说,机器学习是什么呢?它和本书要讲的神经网络以及深度学习是什么关系呢?下面我们将探讨这些问题。1.2.2 机器学习发展史

由于机器学习只是实现人工智能的一种方式,所以人工智能的发展史实质上包括了机器学习的发展历程。“推理期”“知识期”“学习期”就是指与机器学习相关的主流时期,感知机、支持向量机、神经网络等又是机器学习具体的模型,在此不再赘述。

可以说,1996年至今,机器学习在工业界得到广泛应用,从而使机器学习的发展达到一个前所未有的新高度。

比如搜索引擎中的分词、新词挖掘、垃圾网页过滤、网页滤重、Learning to Rank、PageR-ank、主题模型、摘要提取、特征学习等,大量使用了机器学习中的逻辑回归(Logistic Regres-sion,LR)、支持向量机(Supported Vector Machine,SVM)、GBDT(Gradient Boosting Decision Tree)、Latent Semantic Analysis(LSA)/Probabilistic Latent Semantic Analysis(PLSA)/Latent Dirichlet Allocation(LDA)、概率图、深度学习等模型。

再比如在计算广告点击率预测中广泛使用了机器学习中的LR(Logistic Regression)、BPR(Bayesian Probit Regression)、FTRL(Follow-The-Regularized-Leader)、Online Learning、深度学习等相关技术。

而计算机视觉、语音识别、机器翻译等更是在近几年被深度学习不断刷新高度。1.2.3 机器学习方法分类

机器学习方法可以大致分为监督学习、无监督学习、半监督学习、增强学习等几类。

监督学习(Supervised Learning)——通过对标注的训练数据进行学习,得到一个从输入特征到标签的映射模型,再利用这个模型对未知标签的新数据进行预测。比如我们拥有大量正常内容的邮件,同时拥有大量垃圾邮件,那么就可以训练一个监督学习模型来做垃圾邮件分类,最终得到的模型就能鉴定新邮件是否是垃圾邮件。

监督学习又可以进一步分为分类(Classification)和回归(Regression)等类别。如果标签是离散类别的,则一般认为是分类问题,比如前面提到的垃圾邮件分类等;而如果标签是连续数值型的,则一般认为是回归问题,比如房价的预测问题等。

无监督学习(Unsupervised Learning)——不需要对训练数据进行标注,直接对数据进行建模。比如一堆杂乱无章的文字片段或者图片,我们完全可以根据文字或图片本身的内容对其进行大致的归类。

无监督学习比较常见的类别有聚类(Clustering)、密度估计(Density Estimation)和降维(Dimension Reduction)等。其中,聚类是根据样本之间的特征相似度将一组数据聚为一类,使得类内的数据相似度比不同类间的数据相似度更高。密度估计是根据数据集统计推断样本集对应的概率分布。降维,顾名思义,就是降低输入数据的维度。在很多应用中,原始数据具有非常高的维度(比如在广告点击率预测应用中,特征维度往往达到上亿级别),而且有很多特征是冗余或者不相关的,降维算法有助于去除无关特征、合并冗余特征。

半监督学习(Semi-Supervised Learning)——介于监督学习和无监督学习之间的方法。在实际应用中,数据标注往往对模型的学习非常有帮助,但代价也不低,有时候甚至超过了可以忍受的限度,这时候半监督学习就是一种很好的选择。半监督学习的方法非常多,其中滚雪球式的主动学习(Active Learning)是数据挖掘中非常常用的方法,利用学习算法主动选出最值得标注的数据进行人工标注,标注完成后,新的标注数据和之前的标注数据合在一起继续进行训练,训练完毕后继续用算法甄选性价比最高的数据进行人工标注,如此不断迭代,最后得到的模型效果往往非常好。

增强学习(Reinforcement Learning,也翻译成强化学习)——一种交互式的学习方法,模型根据环境给予的奖励或惩罚不断调整自己的策略,尽量获得最大的长远收益。相关的具体介绍可以参考第27章。1.2.4 机器学习中的基本概念

在机器学习算法中,目前在业界得到较多应用的主要是监督学[3]习,监督学习需要训练数据,其本身由模型、策略和算法三要素组成。

机器学习的模型是从数据中学到的用来描述数据所在空间的数学模型,可以说是经过了数学抽象的规律。模型是机器学习的最终目的,有了模型,才能对未知数据进行预测或分析。在监督学习中,模型一般指具体的条件概率分布模型或者决策模型。模型的假设空间F 是所有可能的条件概率分布或者决策函数。这里为了简单起见,仅以决策函数为例进行说明。假设输入集合为X,对应的输出集合(标签,Label)为Y,其假设空间可以表示为:

机器学习常用的模型有很多,比如线性模型、逻辑回归、Softmax、神经网络/深度学习、SVM、决策树、随机森林、GBDT、与矩阵分解相关的系列模型等。

由于假设空间对应的函数有很多,对于如何选择就需要引入特定的评估策略,机器学习一般引入损失函数(Loss Function)或代价函数(Cost Function)来评估预测错误的程度。

常见的损失函数如表1-1所示,其中y表示对应输入样本x的Label,^为函数预测值f (x),注意这里只针对单个样本计算损失。表1-1 常见的损失函数续表

损失函数在输入输出联合概率分布p(x,y)下的期望称为风险函数(Risk Function)或者期望损失(Expected Loss),用R(f)表[3]示。

机器学习的目标是要选择一个期望损失最小的模型,但是这在现实中不可行,因为联合概率分布p(x,y)表征的是所有样本遵循的分布,一般无法求得。只能退而求其次利用训练数据集的平均损失近似表示,这个平均损失称为经验风险(Empirical Risk)或者经验损失(Empirical Loss),记为:

其中,N为样本数量。根据大数定律,当N趋近于无穷大时,[3]R(f)趋近于R(f)。empexp

算法是机器学习的具体学习方法,也可以称为优化算法,包括:[4]梯度下降法、牛顿法、拟牛顿法等。1.3 神经网络

在人工智能的发展史中,我们已经反复发现了神经网络的踪影。作为机器学习的一个分支,神经网络的发展也是跌宕起伏的。

神经网络(Neural Network)是从人类脑神经元的研究中获得灵感,模拟其神经元的功能和网络结构,来完成认知任务的一类机器学习算法;还有一类机器学习算法,则不局限于神经元,而是尝试将问题从数学上抽象,从而对该简化的数学问题进行研究并做出解答。

而深度学习(Deep Learning),则是指多层神经网络,即隐层大于一层的神经网络。在后面的章节中,我们还会详细地讲一讲网络结构和隐层到底是什么。1.3.1 神经网络发展史

1.神经网络的提出与发展(1943—1969年)

早在1943年,人工神经网络就已由McCulloc和Pitts提出,他们分析了理想化的人工神经元网络,并且指出了它们运行简单逻辑运算的机制。但这仅仅是一种理想化的蓝图。直至将近15年后,康奈尔大学的实验心理学家Frank Rosenblatt在一台IBM-704计算机上模拟实现了一种他发明的叫作“感知机”的神经网络模型,人工神经网络才走进了现实。稍后,伴随着Frank Rosenblatt出版的一本名为《神经动力学原理:感知机和大脑机制的理论》的书,感知机迅速获得了人们的关注,并被寄予了极高的期望。

然而,1969年,一本名为《感知机》的书详细地分析了感知机的适用范围,并明确提出对于简单的异或逻辑问题,感知机都由于其非线性而无法解决,而现实中的问题恰巧大多都不是线性可分的。尽管在5年后,Werbos的博士论文证明了,只要在感知机的网络中多加一层,并且利用“后向传播”的学习方法,就可以解决异或问题,但是人们依然对感知机持悲观的态度。不仅如此,这种看法还扩大到所有的神经网络科学上,以至于对整个神经网络的研究陷入了停滞状态。

为了本书内容的简洁性,以下如不特指,“神经网络”均指代“人工神经网络”。

2.神经网络的困境与SVM的独领风骚(1971—2005年)

从20世纪70年代开始,人们对神经网络的研究热情不断下降。与此同时,以Vapnik为首的科学家创造性地提出了VC维的概念,以及结构风险最小化原则。Vapnik是研究统计学出身的,数学功底深厚。随着这个理论的深入,并经过20年的摸索后,Cortes和Vapnik等人在1993年提出了“支持向量机”(Support Vector Machine),成功地将其应用于实际问题中。支持向量机旨在利用核(Kernel)技巧把非线性问题转换成线性问题,解决了感知机所不能解决的问题,一时间独领风骚。其坚实的理论基础和解决现实问题的有效性,使它获得了广泛的认可。而同时,Vapnik等统计机器学习理论专家从理论的角度怀疑神经网络的泛化能力,学术界对于神经网络的研究也更加趋于悲观。

尽管如此,在这长达半个世纪的冰河期,依然有神经网络学家在坚守着自己的阵地。1982年,Hopfield提出了一种新的神经网络,它可以解决一大类模式识别问题,并且可以给出一类组合优化问题的近似解。1986年,Rummelhart与McClelland再次提出了神经网络的学习算法——后向传播。LeCun也发明了卷积神经网络,并利用其实现自动提取图像的特征,成功地完成了手写数字的识别。这些都为后来神经网络的再次兴起奠定了坚实的基础。

3.Hinton引领的神经网络复兴(2006年)

2006年,Hinton提出了深度神经网络(深度学习)。深度神经网络指的是隐层大于一层的网络结构。Hinton提出首先用Restricted Boltzmann Machine经过非监督学习来学习出网络结构,然后再由后向传播算法学习网络内部的参数值。

尽管如此,深度学习仍然广受质疑。于是Hinton带领其学生埋头苦干,于2012年在计算机视觉领域的著名比赛——ImageNet分类比赛中,以高出第二名10个百分点的战绩高调地夺得第一名。这是深度学习在沉寂半个世纪后,第一次在机器学习领域的比赛中参赛,并且取得了卓著的成绩,震动了整个机器学习界。这一成绩坚实地印证了深度学习的有效性,并随后在各个领域也都迅速拔得头筹。深度学习正式进入了复兴和辉煌的时代。

这一次复兴,离不开Hinton、LeCun、Bengio(关系如图1-4所示)和其他优秀研究者(比如第四巨头Andrew Ng等)的努力工作,他们坚信神经网络的有效实用性,并不断摸索真正可行的神经网络道路。21世纪不断普及的大数据以及高度并行的计算设备——图形处理单元(Graphics Processing Unit,GPU)也为神经网络提供了必不可少的支持。有了这些,才有了深度学习在各个领域遍地开花的今天。图1-4 深度学习巨头Hinton、LeCun和Bengio的关系

回顾神经网络的兴起——衰落——复兴乃至于辉煌的过程,不禁让人唏嘘。如今深度学习研究的大放异彩,离不开大师们近半个世纪的坚守和在质疑中坚定地前行。这不仅需要灵感,还需要魄力,以及一以贯之的坚定的信心。

深度学习在图像识别领域大获成功之后,又被迅速应用到其他问题上。看起来各不相同的问题,一旦理解它们仅仅是特征不同、基于特征都要完成对应的分类问题时,各个问题似乎就有了相似之处。当然,在实践中,能成功地把深度学习应用于各类问题上还是需要相当的想象力、创造力以及对模型的把控力的。图1-5列举了部分精彩的实例,有些似乎超出了人们的想象,却都成为了现实。而对于实现这些有趣应用的神秘而强大的深度学习,我们也将揭开它的面纱。图1-5 深度学习在各领域遍地开花参考文献

[1] Deep Learning Explained-NVIDIA.https://www.nvidia.com/content/dam/en-zz/Solutions/deep-learning/home/DeepLearning_eBook_FINAL.pdf.

[2] MAC工程.http://www.multicians.org/project-mac.html.

[3]李航.统计学习方法.北京:清华大学出版社,2012.

[4] Stephen Boyd and Lieven Vandenberghe.Convex Optimization.Cambridge University Press.2 神经网络

深度学习网络是指隐层大于一层的神经网络,所以了解神经网络的基本原理是学习深度学习必不可少的步骤。

本章首先讨论生物神经元的相关研究,然后介绍常用的神经元,最后以感知机和深度神经网络为例介绍神经网络的基本原理。2.1 在神经科学中对生物神经元的研究

神经元相互连接组成神经网络。每一个神经元从其他神经元处获得输入信息,少部分神经元也从接收器获得信息;神经元处理这些输入信息,一旦被激活,就会继续发送信号至其他相连的神经元。

机器学习中的神经元以生物神经元为原型,受到了其机制不少的启发和影响;然而,为了可以顺利地完成模型的实现,不可避免的,对机器学习中的神经元进行了不少抽象和简化,甚至有些已经跳出了生物神经元的束缚。下面我们首先了解生物神经元的机制,然后再详细了解机器神经网络的神经元模型。2.1.1 神经元激活机制

神经生物学家David Hubel和Torsten Wiesel由于发现了“视觉系统的信息处理”而荣获1981年的诺贝尔生理或医学奖。1958年,他们通过实验证实了位于后脑皮层的神经元与视觉刺激之间存在某种对应关系。换句话说,一旦视觉受到了某种刺激,后脑皮层的特定部分的神经元就会被激活。他们的实验发现了一种被称为“方向选择性细胞”的神经元,当看到眼前物体的边缘,而且这个边缘指向某一个方向时,这种神经元就会被激活。

神经生物学家认识到,生物神经元是神经系统的重要组成单位之一。随后的深入研究揭示了神经元的基本构造由细胞体和神经突(包括树突、轴突、突触)组成,如图2-1所示。树突呈树状分支,为神经元的“信息接收区”,它将受到刺激引起的电位变化向胞体传递;然后会有一个“触发区”负责整合电位,决定是否达到阈值,从而产生神经冲动;细长的轴突为“传导区”,而其末端的突触为“输出区”——神经冲动会导致突触释放出神经传递物质或者电力,从而实现将整合的信息向下一个神经元进行传递的过程。图2-1 生物神经元模型

机器学习中的神经元也暗合了这几个功能区域:接收区、触发区、传导区、输出区。其中,触发区最重要,不同的触发机制也标志着不同类型的神经元。2.1.2 神经元的特点

除神经元的基本激活机制以外,科学家发现,大脑不同位置的神经元似乎专门实现各自的功能。尽管如此,但是各种神经元本身的构成却很相似。在研究中甚至发现,早期的大脑损伤,其功能可能是以其他部位的神经元来代替实现的。当然,在生物体中,这需要在非常早期才有可能。有趣的是,在深度学习中也有类似的实现:在一个数据集上训练成型的深度神经网络,在另一个完全不同的数据集上只需稍加训练,就有可能适应和完成那个新的任务。这在机器学习中被称为“迁移学习”(Transfer Learning)。

此外,科学家还发现,神经元具有稀疏激活性,即尽管大脑具有多达五百万亿个神经元,但真正同时被激活的仅有1%~4%。这种稀疏激活性也影响了机器学习中的神经元的模型设计,比如稍后提到的ReLU神经元,对小于0的输入都进行了抑制,极大地提高了选择性激活的特征。在Dropout及其他剪连接策略中,稀疏性也得到应用。

上面简单了解了生物神经元的机制后,下面来具体了解机器学习中的神经元的代表模型。2.2 神经元模型

前文提到,生物神经元被以多种形式抽象和简化,但它们都有一个共同的特征,即由输入、激活函数、输出构成。各种神经元的简化模型的不同之处就在于激活函数不一样。图2-2列出了几种基本神经元。图2-2 神经元的简化模型2.2.1 线性神经元

线性神经元(Linear Neuron)是指输出与输入呈线性关系的一种简单模型。其表达式为y=wx+b。如图2-2(a)所示,它实现的是输入信息的完全传导。在现实中,由于其缺乏对信息的整合而基本不被使用,仅作为一个概念基础。2.2.2 线性阈值神经元

早在1943年,人工神经网络(Artificial Neural Network,ANN)的提出者Warren Sturgis McCulloch(1898—1969年)和Walter Harry Pitts(1923—1969年)就分析了一种简单的人工神经元模型,并且指出了它们运行简单逻辑运算的机制。这种简单的神经元采用线性神经元和二值“开/关”相结合,称为线性阈值神经元(Linear Threshold Neuron),也被称为McCulloch-Pitts神经元。它具有以下特征。

· 输入和输出都是二值的。

· 每个神经元都具有一个固定的阈值θ。

· 每个神经元都从带有权重的激活突触接收输入信息。

· 抑制突触对任意激活突触有绝对否决权。

· 每次汇总带权突触的和,如果大于阈值θ而且不存在抑制突触输入,则输出为1,否则为0。

假定神经元的n个输入为x,x,x,…,x,输出为y,那么每123n次汇总的和为:

其中,w就是权重,sum是带权和,θ是阈值,f 是一个与阈值θi相关的线性阈值函数(Linear Threshold Function)。抑制突触输入可以理解为一个特权开关,一旦其值为1,则输出必为0。

以函数为例,其中x,x,x是布尔输入,123y是上帝知道的真实标注(Label)是神经元的输出。现假定权重向量w=[-1,2,-1],阈值θ为,且没有抑制突触输入。由之前定义可知,。考虑x,x,x的1238种不同取值,我们可以得到如表2-1所示的相关结果。可以看出,这个神经元能完美模拟这个布尔函数。表2-1 布尔函数的“开/关”神经元计算表续表2.2.3 Sigmoid神经元

Sigmoid神经元可以使输出平滑而连续地限制在0~1的范围内,它靠近0的区域接近于线性,而远离0的区域为非线性。Sigmoid神经元可以将实数“压缩”至0~1的范围内,大的负数趋向于0,大的正数则趋向于1。

Sigmoid神经元的数学表达式为:

虽然它的激活函数看起来比前面的模型要复杂不少,但是它的求导结果很漂亮(在训练神经网络中需要计算激活函数的导数)。具体的求导运算如下:

由此可见,Sigmoid的导数可以直接用它的输出值来计算,非常简单。

Sigmoid函数在过去被广泛使用,除求导简单外,还源于它很好地阐释了一个神经元的“燃烧率(Firing Rate)”:从一个假定的完全不激活(0)到完全饱和的燃烧(1)。

但Sigmoid神经元近年来变得鲜少使用。它的两个主要缺陷如下:(1)Sigmoid函数进入饱和区后会造成梯度消失

Sigmoid神经元的一个非常不受欢迎的属性是在函数两端响应趋向于饱和(接近于0或1),这些区域的梯度几近于0。在后向传播中,这个(局部)梯度将以乘数的关系进入整个优化过程。这样,如果局部梯度值很小,将很有效地“杀掉”梯度,使得几乎没有信号流过神经元到达它的权重并递归回数据。此外,在初始化Sigmoid神经元参数时也需要加倍小心,以避免函数进入饱和区。例如,如果初始化的参数值过大,大部分神经元工作在饱和区,则网络变得很难学习。(2)Sigmoid函数并非以0为中心

这一属性同样不受欢迎,因为通过神经元向后传播的网络需要处理非0的数据,这将对梯度下降的过程造成影响。因为如果进入一个T神经元的数据总是正的(如f=wx+b,x>0),那么在反向传播时参数w的梯度要么都是正的,要么都是负的(取决于整个表达式f 的符号)。这可能导致更新参数w时出现恼人的zig-zag运动。不过,当这些梯度在一个批处理数据中先进行累加,最后再更新参数时,符号可能会发生变化,这在一定程度上可以降低影响。2.2.4 Tanh神经元

Tanh神经元是Sigmoid神经元的一个继承,它将实数“压缩”至-1~1的范围内,因此改进了Sigmoid变化过于平缓的问题。

Tanh神经元的数学表达式为:

Tanh的求导结果如下:2.2.5 ReLU

整流线性单元(Rectified Linear Unit),又称为修正线性单元,一般以其英文缩写ReLU来指代。其数学表达式为:

该函数等价于y= max(0,x)。它在阈值以下的输出都被截断成“0”,在阈值以上的输出则线性不变,如图2-3左图所示。[1]Krizhevsky等的实验表明ReLU比Tanh的收敛速度快6倍,如图2-3右图所示。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载