**
前言
**
为什么要写这本书
近些年来,伴随着计算机计算能力的不断升级,很多原来只有在科幻电影里才有的桥段越来越多地出现在我们身边了,并给了我们更多的想象空间与期待。
在2016年,人工智能界最令人瞩目的事情莫过于谷歌的AlphaGo以4:1的悬殊比分轻松击败韩国著名九段围棋大师李世石。之后化名“Master”的AlphaGo更是一路大开杀戒,分别在对弈网站“弈城”和“腾讯围棋”登录,先后打败了柯洁九段、朴廷桓九段、陈耀烨九段以及创造日本大满贯传奇的井山裕太和亚洲杯冠军李钦诚等世界一流高手,取得了50胜0负的战绩。当然了,“玩不起”的人类最终觉得让AlphaGo在国际围棋网站排名上占一个坑来碾压人类是非常“不公平”的事情,最终把人家给拉黑了。
人类这么做是不是有违AI(Artificial Intelligence,人工智能)研究的初衷暂且不讨论,毕竟我们的眼光还是应该更多地投向那些“更有趣”的领域。除此之外,还有很多非常有趣的人工智能项目也经常在网络视频中带给我们惊喜,比如谷歌的机械狗、谷歌的无人驾驶汽车等。
这种机械狗很有趣,除了能够彼此之间互相协调进行编队行进以外,还能像真的狗一样在被踢了一脚之后迅速调整重心,并在短暂的踉跄后站稳,然后继续先前作业,不过怎么踢都不会来咬你。
而谷歌的无人驾驶汽车也有着非常优异的能力,到2015年11月底为止,根据谷歌提交给机动车辆管理局的报告,谷歌的无人驾驶汽车在自动模式下已经完成了130多万英里的里程。
可以说,这些事情都在鼓舞着我们这些对未来世界充满渴望的人投入更多的精力去研究AI带来的新惊喜,而人工智能这一领域中最为核心的内容之一就是深度学习。深度学习现在在全世界范围内都有着众多的专业工作者和业余爱好者在进行着研究,并且每个月都有不少新的落地产品问世。应该说,深度学习是目前世界上最热门的研究领域之一,而且也是未来几十年最热门的研究方向之一。
在中国,深度学习也有着众多的专业研究机构和业余爱好者,在我的周围就有数以千计的深度学习爱好者——这一点都不夸张,他们非常渴望了解深度学习的知识并加以应用。但是,深度学习由于其本身的复杂性,使得很多有着浓厚兴趣的爱好者望而却步,我认为主要的门槛来自于两个方面。
一方面,深度学习是非常典型的计算密集型的应用领域,家用PC机通常是无法有效胜任一个完整而可靠的深度学习应用的(作为初级实验或者“玩具”的除外)。不过现在随着CPU的计算速度逐步加快,以及GPU应用的不断普及,这方面的门槛在慢慢地降低。
另一方面,深度学习从其解决问题的根本理论方面需要比较深厚和扎实的数学基础,尤其是高等数学、线性代数、泛函分析及其延伸学科的基础,这就使得很多高等数学相关基础不好的朋友学习起来非常吃力。当然,这一方面目前可以走的捷径也不是没有,我们可以通过现成的框架(比如TensorFlow、Torch、Caffe或Theano等)来搭建环境,并用简单的代码或模型描述文件来组建一个相对完整的神经网络进行学习和分类应用。
除此之外,像Caffe还有一个叫做Model Zoo的共享社群——这是一个让大家把已经训练好的模型放在上面做共享的社群。在模型训练中,前面大量耗时的分析和建模工作以及训练后得到的最宝贵的模型成果就可以浓缩并沉淀为一个可下载的模型描述文件,里面是网络的节点权重和拓扑结构信息。这种社群化的方式会让很多原本没有太好训练条件的朋友有了可以学习和借鉴的对象,也有了可以游乐和尝试的空间。这些模型需要在其各自的授权使用协议下合理使用,有的是允许进行商业应用和改动,而有的则不可以,这一点需要注意。在下载后,我们可以对其进行Fine Tuning,也就是进行细节调优或改进性训练,使得这些模型可以在自己需要的环境和条件下更好地工作。不过这个地方还是有一个门槛,对于很多数学能力欠佳的工程师来说,不容易迈过去,那就是训练和调优中的方向性问题。一旦出现召回率和准确率不再提高,或者性能等问题,往往会找不到改进的方向和方法,这是需要扎实的数学基础和深度学习领域的实践经验来解决的。
我们这本书的宗旨很简单,就是希望通过聊天和讲故事的方式,凭借高中以上水平的数学知识把大家一步一步地带入深度学习的领域。只要大家在阅读本书的时候保持一点点耐心,即便没有高等数学知识的朋友,通过努力也一样可以基本掌握深度学习的应用技巧。请不要犹豫,跟我来吧!
目录
第1章 1.0机器学习是什么
1.1 聚类
1.2 回归
1.3 分类
1.4 综合应用
1.5 小结
第2章 深度学习是什么 2.1 神经网络是什么
2.2 深度神经网络
2.3 深度学习为什么这么强
2.4 深度学习应用
2.5 小结
第3章 3.0TensorFlow框架特性与安装
3.1 简介
3.2 与其他框架的对比
3.3 其他特点
3.4 如何选择好的框架
3.5 安装TensorFlow
3.6 小结