深度学习原理与PyTorch实战(第2版)
上QQ阅读APP看书,第一时间看更新

推荐序

“理解复杂世界”是生活在这个星球上的所有人共同的愿望。

4000多年前,埃及人通过观察发现,当夏天黎明天狼星于东方升起时,尼罗河就会开始洪水泛滥。中国的先民由于积累了大量的观察记录,发展出了用来指代理性思考于脑中仿真的文字符号——“预”。“预”字的左边(予)表示“通过”,右边(页)表示“头脑”,合起来是指让想象情景过脑,这也象征了人类独特的智能行为——“预测”。

随着智能技术的逐步发展,人类观察世界的工具也有了质的飞越,从最早的肉眼观察记录,逐步发展出了通过实验和理论来推演思辨的方式。但随着知识的累积,人类发现世界上难以理解的事情与日俱增,这时才意识到过去犯了一个严重的错误,那就是企图用“简化的模型来描述世界”。问题是,这个世界本就不简单,因此任何企图化繁为简的举动都会让我们离真实越来越远。

既然简化模型这条路行不通,那就正面挑战这个世界的复杂性吧!深度学习开山鼻祖辛顿为我们带来了挑战复杂性的最新武器。从语音识别、计算机视觉,到自然语言,这些我们过去认为计算机不可能完成的任务,都被深度学习逐步破解。深度学习的关键正是计算机不再只靠人为的规则编程,而是用数据进行编程,重现这个世界的复杂性。

但现实中的深度学习工具并不友好。例如,TensorFlow虽然是一款主流的深度学习框架,但其语法难以跨版本兼容且啰唆繁杂,函数改名频率过高。虽然有了挑战复杂性的关键“神器”,但是要想将它切实应用,还要有让人思维更清晰的分析框架。

2017年初,Facebook公司推出了全新的深度学习框架——PyTorch。

在深度学习顶级会议ICLR的提交论文中,提及PyTorch的论文数从2017年的87篇激增到2018年的252篇,而提及TensorFlow的论文数量却没有太大的起伏(从2017年的228篇提升至2018年的266篇),甚至快被PyTorch追平了。同时,随着PyTorch 1.0的问世以及ONNX(Open Neural Network Exchange)深度学习开发生态的逐渐完备,PyTorch无疑成为众多深度学习框架中值得期待的明日之星。

我们在研究深度学习时常常会有一个疑问:既然深度学习要正面解决世界的复杂性,为何现有的深度学习框架却处处是人为的简化呢?比如图片必须固定大小、句子必须固定长度,等等。如果你对于这种束缚感到厌倦,那么使用动态计算图的PyTorch可能会是更好的选择。如果你担心动态计算图难以理解,那么本书将会是你学习和理解PyTorch过程中的最佳帮手,它将神经网络、计算图、自动微分、梯度反传等概念用清晰的文字表达了出来。更重要的是,它很少用到数学公式。

学习技术的过程其实和深度学习的模型一样,需要通过梯度下降的引导,才能逐渐找到复杂问题的最优解。学习任何新事物,只有遵循正确的学习路线,才有可能将基础打牢,进而融会贯通。尤其是对于深度学习这样处于发展中的年轻学科,从各种杂乱的来源中找出接近真相的信息,恐怕是学习中最大的障碍。

由张江老师领衔的集智俱乐部一直是国内复杂系统与深度学习社群中的领头羊,长期为推广技术和培育新生科研种子而努力。集智俱乐部创作的这本《深度学习原理与PyTorch实战》通过丰富的案例和清晰的讲解,带你找到正确的深度学习修炼路线,直至达到最佳学习状态,而不必像随机梯度下降般迂回绕路。

读完本书,你会发现,有了强大的工具和便捷的方法,深度学习竟然可以如此简单。

尹相志

台湾微软数据科学金牌讲师

中国微软加速器专家顾问,集智学园人工智能金牌讲师