为什么要写这本书
近些年来,伴随着计算机计算能力的不断升级,很多原来只有在科幻电影里才有的桥段越来越多地出现在我们身边了,并给了我们更多的想象空间与期待。
在2016年,人工智能界最令人瞩目的事情莫过于谷歌的AlphaGo以4:1的悬殊比分轻松击败韩国著名九段围棋大师李世石。之后化名“Master”的AlphaGo更是一路大开杀戒,分别在对弈网站“弈城”和“腾讯围棋”登录,先后打败了柯洁九段、朴廷桓九段、陈耀烨九段以及创造日本大满贯传奇的井山裕太和亚洲杯冠军李钦诚等世界一流高手,取得了50胜0负的战绩。当然了,“玩不起”的人类最终觉得让AlphaGo在国际围棋网站排名上占一个坑来碾压人类是非常“不公平”的事情,最终把人家给拉黑了。
人类这么做是不是有违AI(ArtificialIntelligence,人工智能)研究的初衷暂且不讨论,毕竟我们的眼光还是应该更多地投向那些“更有趣”的领域。除此之外,还有很多非常有趣的人工智能项目也经常在网络视频中带给我们惊喜,比如谷歌的机械狗、谷歌的无人驾驶汽车等。
这种机械狗很有趣,除了能够彼此之间互相协调进行编队行进以外,还能像真的狗一样在被踢了一脚之后迅速调整重心,并在短暂的踉跄后站稳,然后继续先前作业,不过怎么踢都不会来咬你。
而谷歌的无人驾驶汽车也有着非常优异的能力,到2015年11月底为止,根据谷歌提交给机动车辆管理局的报告,谷歌的无人驾驶汽车在自动模式下已经完成了130多万英里的里程。
可以说,这些事情都在鼓舞着我们这些对未来世界充满渴望的人投入更多的精力去研究AI带来的新惊喜,而人工智能这一领域中最为核心的内容之一就是深度学习。深度学习现在在全世界范围内都有着众多的专业工作者和业余爱好者在进行着研究,并且每个月都有不少新的落地产品问世。应该说,深度学习是目前世界上最热门的研究领域之一,而且也是未来几十年最热门的研究方向之一。
在中国,深度学习也有着众多的专业研究机构和业余爱好者,在我的周围就有数以千计的深度学习爱好者——这一点都不夸张,他们非常渴望了解深度学习的知识并加以应用。但是,深度学习由于其本身的复杂性,使得很多有着浓厚兴趣的爱好者望而却步,我认为主要的门槛来自于两个方面。
一方面,深度学习是非常典型的计算密集型的应用领域,家用PC机通常是无法有效胜任一个完整而可靠的深度学习应用的(作为初级实验或者“玩具”的除外)。不过现在随着CPU的计算速度逐步加快,以及GPU应用的不断普及,这方面的门槛在慢慢地降低。
另一方面,深度学习从其解决问题的根本理论方面需要比较深厚和扎实的数学基础,尤其是高等数学、线性代数、泛函分析及其延伸学科的基础,这就使得很多高等数学相关基础不好的朋友学习起来非常吃力。当然,这一方面目前可以走的捷径也不是没有,我们可以通过现成的框架(比如TensorFlow、Torch、Caffe或Theano等)来搭建环境,并用简单的代码或模型描述文件来组建一个相对完整的神经网络进行学习和分类应用。
除此之外,像Caffe还有一个叫做ModelZoo的共享社群——这是一个让大家把已经训练好的模型放在上面做共享的社群。在模型训练中,前面大量耗时的分析和建模工作以及训练后得到的最宝贵的模型成果就可以浓缩并沉淀为一个可下载的模型描述文件,里面是网络的节点权重和拓扑结构信息。这种社群化的方式会让很多原本没有太好训练条件的朋友有了可以学习和借鉴的对象,也有了可以游乐和尝试的空间。这些模型需要在其各自的授权使用协议下合理使用,有的是允许进行商业应用和改动,而有的则不可以,这一点需要注意。在下载后,我们可以对其进行FineTuning,也就是进行细节调优或改进性训练,使得这些模型可以在自己需要的环境和条件下更好地工作。不过这个地方还是有一个门槛,对于很多数学能力欠佳的工程师来说,不容易迈过去,那就是训练和调优中的方向性问题。一旦出现召回率和准确率不再提高,或者性能等问题,往往会找不到改进的方向和方法,这是需要扎实的数学基础和深度学习领域的实践经验来解决的。
我们这本书的宗旨很简单,就是希望通过聊天和讲故事的方式,凭借高中以上水平的数学知识把大家一步一步地带入深度学习的领域。只要大家在阅读本书的时候保持一点点耐心,即便没有高等数学知识的朋友,通过努力也一样可以基本掌握深度学习的应用技巧。请不要犹豫,跟我来吧!
本书特色
本书本着“平民”起点,从“零”开始的初衷,介绍深度学习的技术与技巧,逐层铺垫,把微积分、梯度等知识重点化整为零,把学习曲线最大程度地拉平,让读者有良好的代入感和亲近感。
本书用漫画插图来调节阅读气氛,并且在每个讲解的部分都有对比和实例说明,相信每位读者都能感受到非常好的阅读平滑感。
读者对象
对深度学习有兴趣但数学基础弱的开发人员与架构师
科研院所的研究人员
对深度学习有兴趣的大学生、研究生
其他深度学习爱好者,如产品经理、投资人、管理者等
如何阅读本书
本书基本独立成册,适用于零基础的初学者,但仍建议以本书姊妹篇《白话大数据与机器学习》为引导读物。本书共分三篇,共13章。
基础篇(第1~3章),介绍一些非常基础的概念铺垫,以便了解背景。
原理与实践篇(第4~8章),介绍老牌的深度学习网络的数学原理和工程实现原理。尤其是第4章,如果读者能基本读懂,后面的网络实现层面的问题基本都可以迎刃而解。
扩展篇(第9~13章),介绍一些网络的变种和一些较新的网络特性。
其实当你把这本书看完后,就会知道这种技术的底层原理虽然略显复杂,但是在框架逐步成熟以及开源项目日益增加的情况下,对于应用市场层面的技术人员来说,真正要做的工作已经不是书写复杂的算法了——这些都已经被很好地封装到内聚性极高的框架中,而且开放了友好的接口和足够多的参数给使用者做调整。这样一来,最重要的工作反而是海量样本的低成本获取和丰富的计算资源的获取。因此从这个角度来看,我可以负责任地说,深度学习领域的门槛在一定程度上应该说比传统机器学习的还要低。当读完这本书时,你就会发现,深度学习真的不难。
勘误和支持
由于笔者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果你有更多的宝贵意见,欢迎扫描下方的二维码,关注奇点大数据微信公众号qddata和我们进行互动讨论。当然,在公众号的消息中你也可以找到书中的代码地址和QQ讨论群的信息。
同时,你也可以通过邮箱
[email protected]联系到我,期待能够得到大家的真挚反馈,在技术之路上互勉共进。
在此,感谢辽宁工程大学副教授(海归博士后)常戬博士、山东交通学院理学院讲师许文杰博士、许昌学院信息工程学院讲师姚丹丹博士在审校工作方面的支持与帮助,以及深圳华为技术有限公司的万娟女士在插画方面对本书的大力支持。
高扬