如何评价亚马逊的新书《动手学深度学习》

《动手学深度学习》是亚马逊的AI专家阿斯顿·张,李沐等合著的交互式书籍,综合利用文字、公式、图示以及代码帮助读者学习深度学习。不考虑亚马逊为了推广其深度学习框架MXNet,而引入了大量的代码实例,《动手学深度学习》可以作为深度学习入门快速阅读材料,但不宜作为主要的学习资料。

       最近,亚马逊的AI专家阿斯顿·张,李沐等合著的新书《动手学深度学习》引起了人工智能领域的诸多关注,该书的在线预览版本已经公开,因此能够提前拜读。感兴趣的读者可以直接下载对应的PDF版本,也可通过其在Github上的资源库编译得到,资源库中还包含了每个章节的代码,支持使用Jupyter notebook进行交互式学习。正如书名“动手学深度学习”,能够学习理论的同时进行模型的调试,以加深对所学知识的理解。官方还提供了专门的论坛,方便读者讨论。

《如何评价亚马逊的新书《动手学深度学习》》 《动手学深度学习》封面

       毋庸置疑,亚马逊发布该书的主要目的是为了推广其深度学习框架Apache MXNet,书中的算法实现均采用该框架,并提供了大量的代码实例。那么除去深度学习框架部分,单纯作为深度学习方面的学习资料,《动手学深度学习》是否值得一读呢?笔者有幸通读了全书,在此分享些对该书的主观评价,希望对打算将该书作为学习资料的读者提供参考。

第一部分(第1~3章)

       《动手学深度学习》的第一部分内容为预备工作和基础知识,包含三个章节,分别为引言,预备知识以及深度学习基础。该部分篇幅不大,约占全书的五分之一。

       [引言]介绍了深度学习的历史以及最新发展情况,但并不是很全面,然后简要说明了全书的框架。

       [预备知识]章节则较为详细地讲解了如何配置环境,利用Jupyter记事本使用官方发布的资源库来学习该书的内容。接着便讲解了深度学习框架MXNet中的基本数据操作以及帮助文档的查阅。

       [深度学习基础]为第一部分的最后章节,以线性回归及多分类问题为起点,引出单层神经网络和多层感知机模型,阐述了深度学习的基本概念,并以房价预测(Kaggle比赛)及图像分类(Fashion-MNIST数据集)为实例。笔者认为安排合理,易于理解。但由于内容比较基础,适合准备入门的读者。对于已经有深度学习基础的读者,就显得过于浅显了。另外,如果不打算学习MXNET深度学习框架,建议代码实现部分可以跳过。正如书中所讲:“尽管强⼤的深度学习框架可以减少⼤量重复性⼯作,但若过于依赖它提供的便利,我们就会很难深⼊理解深度学习是如何⼯作的。”,通过自己去实现相应的算法模型,能够更好地帮助理解。

第二部分(第4~6章)

       第二部内容旨在介绍现代的深度学习技术,分为深度学习计算、卷积神经网络(Convolutional Neural Netwrok, CNN)以及循环神经网络(Recurrent Neural Network, RNN)三个部分。

       [深度学习计算]的章节名称与实际内容不是很相称,该章节的主要内容其实就是介绍MXNet框架中构建深度学习模型的相关操作。

       [卷积神经网络]的内容比较明确,介绍了卷积神经网络的基本结构和相关操作,较少涉及原理。然后主要对比并实现了七种卷积神经网络结构,分别为LeNetAlexNetVGGNiNGoogLeNetResNet以及DenseNet,试图说明卷积神经网络结构的设计思路。期间针对深层网络的训练,还介绍了批量归一化(Batch Normalization)方法。

       [循环神经网络]主要介绍了循环神经网络的结构以及相关概念,网络结构包含了标准循环神经网络、长短期记忆(Long Short Term Memory)循环神经网络、门限循环单元(Gated Recurrent Unit, GRU)神经网络以及双向循环神经网络(Bidirectional RNN)。应用实例选的是语言建模(Language Modeling, LM),训练数据采用的是周杰伦的歌词,数据量有限,因此训练后的模型效果并不是很好。

第三部分(第7~10章)

       讨论深度学习模型的计算性能以及具体应用,分为优化算法、计算性能、计算机视觉以及自然语言处理等四个章节。容易看出,书中涉及的深度学习应用实例基本就是来源于计算机视觉和自然语言处理领域,包括第一、二部分的实例也是如此。

       [优化算法]章节中的优化算法是指训练深度学习模型的学习策略,即梯度下降(Gradients Descent, GD)算法。该章节以梯度下降算法的基本原理开头,然后依次介绍常用的梯度下降算法的改进版本,包括随机梯度下降(Stochastic Gradients Descent, SGD)算法、动量法、Adagrad算法、RMSProp算法、Adadelta算法Adam算法

       [计算性能]首先提到了MXNet支持命令式和符号式混合编程,然后介绍了MXNet如何通过异步计算、并行计算以及多GPU计算等方式提升深度学习模型的计算效率。

       [计算机视觉]首先介绍了计算机视觉领域的两项泛化技术,图像增广(Image Augmentation)和预训练微调(Pre-train and Fine-tuning)。接着是目标检测(Object Detection)和语义分割(Semantic Segmentation)两项计算机视觉任务,以及对应的深度学习模型,区域卷积神经网络(Regions with CNN features, R-CNN)和全卷积网络(Fully Convolutional Network, FCN)。最后是两个Kaggle上图形相关的比赛:图像分类(CIFAR-10)和狗品种识别(ImageNet Dogs)。该章节的整体内容安排比较凌乱,没有系统性,有拼凑的嫌疑。并且主要是如何实现模型,对于各项任务的原理较少涉及。

       [自然语言处理]首先实现了多种词向量的训练模型,包含word2vec中的Skip-gram模型和连续词袋模型(Continuous Bag of Words, CBOW),GloVeFastText,并利用词向量进行了近义词和类比词分析。接着分别以循环神经网络和卷积神经网络实现了文本情感分类。最后介绍了序列至序列的编码解码(Seq2Seq)模型以及注意力机制(Attention),接着以机器翻译(Machine Translation, MT)任务作为该模型的应用实例。本章内容安排上的问题与计算机视觉章节类似,并不是很合理。

       总的来讲,《动手学深度学习》更像是深度学习框架MXNet的Cookbook,可作为MXNet的入门学习书籍。如果以学习深度学习为目标,这本书并不是很适合,只能作为入门学习时的快速阅读资料,帮助熟悉深度学习的基本概念,了解深度学习模型的建立、训练以及测试的步骤,对深度学习建立初步印象。另外,书中提供多种深度学习模型及相关技术的实例,可以用于了解这些模型或技术的具体实现,并且通过调整模型参数,熟悉不同超参对模型性能的影响。如果想对深度学习的原理进行深入学习,还是建议以Goodfollow,Bengio和Courville合力编写的《深度学习》为学习资料,然后多阅读相关的学术论文。

作者:施孙甲由 (原创)

    原文作者:施孙甲由
    原文地址: https://www.jianshu.com/p/9e63b8c42a2f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞