Py学习  »  机器学习算法

入门深度学习,该如何学习?

人工智能头条 • 4 年前 • 314 次点击  

最近经常有朋友提及,想要入门深度学习,该如何学习?


关于深度学习,网上的资料很多,不过貌似大部分都不太适合初学者。 


这里有几个原因:


1.深度学习确实需要一定的数学基础。

如果不用深入浅出地方法讲,有些读者就会有畏难的情绪,因而容易过早地放弃。


2.市面上的深度学习书籍普遍偏理论。

理论内容的深度学习著作越来越多,读者期待有一本动手实践的书籍快速上手。


3.视频课程普遍英文版居多,书籍和视频搭配的深度学习著作很少。

深度学习领域的精品书籍普遍英文版居多,国人的精品著作少之又少,作者功底扎实同时能用中文讲解深度学习动手实践讲清楚的少之又少。


深度学习,确实需要一定的数学基础,但真的那么难么?这个,还真没有。学会李沐大神的《动手学深度学习》,你也可以轻松入门。


京东购书

满100减50



我为什么推荐这本书?   



理由一  重“动手学”,真正意义的可实操,能运行

在《动手学深度学习》出版前,当时的情况是 Ian Goodfellow 的《深度学习》是当时最好的入门书,新而且全面。但它只做了一般的模型描述而没有如何实际使用它们以及效果怎么样。《动手学深度学习》是一本既能讲原理、又有实现和实际使用、不断更新、而且容易读的书。

在过去两年的摸索中,这本入门书在传统意义的书上往前走了几步:

  • 书的每一章用文字、数学、图示和代码来多方面介绍一个知识点。它是一个 Jupyter 记事本,可以独立运行。包含20个左右的文字和代码块,可以15分钟左右读完。

  • 源文件是 Markdown,不保存执行输出,并开源在 Github 上。这样方便更多人贡献和改动审阅,同时可以很容易的不断加新章节。

  • 任何改动都会触发持续集成服务重新执行记事本来获得执行输出,这样保证代码的正确性。一个记事本的执行时间控制在不超过十分钟。这对展示复杂模型的训练颇为挑战。

  • 执行无误后直接用三种格式发布在网上:含有执行输出的 Jupyter 记事本,可以直接浏览的HTML,和适合打印的 PDF。

  • 可以像LaTeX那样方便的索引图、表、公式和文献。

  • 每一章都有可以讨论的链接。

这本书代码的实现很多是基于 MXNet(一开始的目标是为 MXNet 写个好点文档),我们也考虑过要不要提供一个 Pytorch 或者 Keras 的版本。后来发现这个担心比较多余。框架就是一个工具,工具之间的那些不同带来的困难比起理解模型和调出结果来小很多。

课上发现就算是没有接触过这些工具的学生,用 MXNet 做作业,然后在基于不管用啥框架实现的现有算法再开发做项目并没有多大困难。或者说困难都不来自工具本身,特别是算法实现都在课上讲过一遍的情况下。


理由二:亚马逊首席科学家李沐等大师作品,历时三年沉淀。

本书四位作者均是亚马逊科学家,对人工智能领域颇具口碑,李沐老师被众多粉丝喜爱更多的来源于他的口碑公开课,纯中文的授课方式得到了大家的普遍认可。

       


阿斯顿·张(Aston Zhang) 

亚马逊应用科学家,美国伊利诺伊大学香槟分校计算机科学博士,统计学和计算机科学双硕士。他专注于机器学习的研究,并在数个顶级学术会议发表过论文。他担任过 NeurIPS、ICML、KDD、WWW、WSDM、SIGIR、AAAI 等学术会议的程序委员或审稿人以及 Frontiers in Big Data 期刊的编委。 

              


李沐(Mu Li) 

亚马逊首席科学家(Principal Scientist),加州大学伯克利分校客座助理教授,美国卡内基梅隆大学计算机系博士。他专注于分布式系统和机器学习算法的研究。他是深度学习框架 MXNet 的作者之一。他曾任机器学习创业公司 Marianas Labs 的 CTO 和百度深度学习研究院的主任研发架构师。他在理论、机器学习、应用和操作系统等多个领域的顶级学术会议(包括 FOCS、ICML、NeurIPS、AISTATS、CVPR、KDD 、WSDM、OSDI)上发表过论文。 

             


扎卡里·C. 立顿(Zachary C. Lipton) 

亚马逊应用科学家,美国卡内基梅隆大学助理教授,美国加州大学圣迭戈分校博士。他专注于机器学习算法及其社会影响的研究,特别是在时序数据与序列决策上的深度学习。

这类工作有着广泛的应用场景,包括医疗诊断、对话系统和产品推荐。他创立了博客 “Approximately Correct”(approximatelycorrect.com)。 


             


亚历山大·J. 斯莫拉(Alexander J. Smola) 

亚马逊副总裁/ 杰出科学家,德国柏林工业大学计算机科学博士。他曾在澳大利亚国立大学、美国加州大学伯克利分校和卡内基梅隆大学任教。他发表了超过 200 篇学术论文,并著有 5 本书,其论文及书被引用超过 10 万次。他的研究兴趣包括深度学习、贝叶斯非参数、核方法、统计建模和可扩展算法。 


理由三:图书+视频一起学

在学习过程中,大家有一个普遍的共识,看书理论是一回事,写代码是一回事,调代码又是另一回事,每件事之间都有一个 gap,爬都爬不过去,跌跌撞撞很痛苦。《动手学深度学习》搭配有免费的公开课视频,写代码和调代码也当作一回事,跟理论一起讲一起演示。跟着大牛一起学,相信会让你事半功倍。

《动手学深度学习》录像有两个场景,一个是主体是幻灯片,讲师在角落。另一个主体是黑板。

过去几年里《动手学深度学习》作者尝试了各种 DIY 手段来通过便宜的器材来录制准专业的视频。下图是这次使用的器材。

  1. 录像用的是一个4K微单④,放在讲台前4米的三脚架上①,用 HDMI 线③和转录头②跟笔记本相连。4K 主要是为场景二准备,但因为我们定到的教室的黑板不是很好,所以这个场景用得不多,而且经常课堂中忘了切换。后来发现其实用手机就足够了,例如 iPhone 加上 EpocCam 这个应用,然后用个小三脚架放在笔记本的后面。这样极大减轻每次要携带的设备,而且降低了器材成本。但注意不要用笔记本自带的前置摄像头,那个效果不行。

  2. 声音质量很关键。千万不要用笔记本自带的麦克风,人稍微离远点就听不清。我们将一个无线麦克风挂在身上⑦,它跟 hub⑧ 相连,然后再接到笔记本上。后来发现如果走动不频繁的话,用固定麦克风效果也很好⑤,而且容易连接(我们买的这个主要是为 MOOC 用,比较重,如果要携带的话可以买小点的)。

  3. 录制软件用的是 OBS,游戏主播常用。强大,但不是很稳定,而且耗资源,特别是在连了很多设备的情况下。于是专门用了个新的高配 MacBook Pro⑨,保证除了上课外不会动它,而且有足够的计算资源现场运行程序。OBS 出错概率不小,建议每次开始时和中间都要查一下录制是不是正常。否则重新录视频很痛苦,因为没有学生在现场,气氛很不一样。

  4. 物理键盘⑥很方便,一个键配置成开始和停止录制,另外两个是切换场景。它的主要好处是LED背景显示当前状态,可以时不时看下录制是不是正常。因为每个单元录一个视频,一节课通常录7,8个,前几节课常忘了点开始。这个键盘可以时不时看下录制是不是正常。不过我觉得一个更好的办法是用一个iPad做一个扩展显示器,将 OBS 放在上面,这样可以真正看到录制状态。

通常我们会把课程视频在一两天内上传到 YouTube。但这样直接导致来上课的学生锐减。坚持来上课的学生可能学习动机更大,每次互动的时候都感觉大家掌握不错,进而导致一路向前讲,基本把整本书讲完了。

这比原计划多讲了 20%。我觉得可能视频在一周后上传比较好,这样学生需要来上课才能完成一周后要交的作业,从而容易在课堂上把握节奏。

理由四:众多人工智能领域大咖鼎力推荐

本书得到了来自学术界和工业界的韩家炜、Bernhard Schölkopf、周志华、张潼、余凯、漆远、沈强等众多实力大咖鼎立推荐。

👇下滑看看他们怎么说:

来自学术界 

这是一本及时且引人入胜的书。它不仅提供了深度学习原理的全面概述,还提供了具有编程代码的详细算法,此外,还提供了计算机视觉和自然语言处理中有关深度学习的最新介绍。如果你想钻研深度学习,请研读这本书! 

——韩家炜,ACM 院士、IEEE 院士、美国伊利诺伊大学香槟分校计算机系 Abel Bliss 教授 


这是对机器学习文献的一个很受欢迎的补充,重点是通过集成 Jupyter 记事本实现的动手经验。深度学习的学生应该能体会到,这对于熟练掌握这一领域是非常宝贵的。 

——Bernhard Schölkopf,ACM 院士、德国国家科学院院士、德国马克斯• 普朗克研究所智能系统院院长 


这本书基于MXNet 框架来介绍深度学习技术,书中代码可谓“所学即所用”,为喜欢通过Python 代码进行学习的读者了解、接触深度学习技术提供了很大的便利。 

——周志华,ACM 院士、IEEE 院士、AAAS 院士、南京大学计算机科学与技术系主任 


这是一本基于Apache MXNet 的深度学习实战书籍,可以帮助读者快速上手并掌握使用深度学习工具的基本技能。本书的几个作者都在机器学习领域有着非常丰富的经验。他们不光有大量的工业界实践经验,也有非常高的学术成就,所以对机器学习领域的前沿算法理解深刻。这使得作者们在提供优质代码的同时,也可以把最前沿的算法和概念深入浅出地介绍给读者。这本书可以帮助深度学习实践者快速提升自己的能力。 

——张潼,香港科技大学计算机科学与数学教授 


来自工业界 

虽然业界已经有不错的深度学习方面的书籍,但都不够紧密结合工业界的应用实践。 我认为《动手学深度学习》是最适合工业界研发工程师学习的,因为这本书把算法理论、应用场景、代码实例都完美地联系在一起,引导读者把理论学习和应用实践紧密结合,知行合一,在动手中学习,在体会和领会中不断深化对深度学习的理解。 因此我毫无保留地向广大的读者强烈推荐《动手学深度学习》。 

——余凯,地平线公司创始人、首席执行官 


强烈推荐这本书!它其实远不只是一本书:它不仅讲解深度学习背后的数学原理,更是一个编程工作台与记事本,让读者可以一边动手学习一边收到反馈,它还是个开源社区平台,让大家可以交流。作为在AI 学术界和工业界都长期工作过的人,我特别赞赏这种手脑一体的学习方式,既能增强实践能力,又可以在解决问题中锻炼独立思考和批判性思维。 

作者们是算法工程兼强的业界翘楚,他们能奉献出这样的一本好的开源书,为他们点赞! 

——漆远,蚂蚁金服副总裁、首席人工智能科学家 


一年前作者开始在将门技术社群中做深度学习的系列讲座,当时我就对动手式讲座的内容和形式感到耳目一新。一年过去,看到《动手学深度学习》在持续精心打磨后终于成书出版,感觉十分欣喜! 

深度学习是当前人工智能领域里炙手可热的领域,吸引了大量感兴趣的开发者踊跃学习相关的开发技术。然而对大多数学习者而言,掌握深度学习是一件很不容易的事情,需要相继翻越数学基础、算法理论、编程开发、领域应用、软硬优化等几座大山。因此学习过程不容易一帆风顺,我也看到很多学习者还没进入开发环节就在理论学习的过程中抱憾放弃了。然而《动手学深度学习》却是一本很容易让学习者上瘾的书,它最大的特色是强调在动手编程中学习理论和培养实战能力。阅读本书最愉悦的感受是它很好地平衡了理论介绍和编程实操,内容简明扼要,衔接自然流畅,既反映了现代深度学习的进展,又兼具易学和实用特性,是深度学习爱好者难得的学习材料。特别值得称赞的是本书选择了 Jupyter 记事本作为开发学习环境,将教材、文档和代码统一起来,给读者提供了可以立即尝试修改代码和观察运行效果的交互式的学习体验,使学习充满了乐趣。 

在过去的一年中,作者和社区成员对《动手学深度学习》进行了大量优化修改才得以成书,可以说这是一本深度学习前沿实践者给深度学习爱好者带来的诚心之作,相信大家都能在阅读和实践中拥有一样的共鸣。 

——沈强,将门创投创始合伙人 


总之,这部精品著作,用方方面面的实力,等着征服你。



 《动手学深度学习》该如何读?  


我适合读这本书吗?

本书面向希望了解深度学习,特别是对实际使用深度学习感兴趣的大学生、工程师和研究人员。本书并不要求读者有任何深度学习或者机器学习的背景知识,我们将从头开始解释每一个概念。

虽然深度学习技术与应用的阐述涉及了数学和编程,但读者只需了解基础的数学和编程,如基础的线性代数、微分和概率,以及基本的 Python 编程知识。

在附录A中我们提供了本书涉及的主要数学知识供读者参考。如果读者之前没有接触过 Python,可以参考其中文教程或英文教程。当然,如果读者只对本书中的数学部分感兴趣,可以忽略掉编程部分,反之亦然。

内容和结构

本书内容大体可以分为3个部分。

  • 第一部分(第1章~第3章)涵盖预备工作和基础知识。第1章介绍深度学习的背景。第2章提供动手学深度学习所需要的预备知识,例如,如何获取并运行本书中的代码。第3章包括深度学习最基础的概念和技术,如多层感知机和模型正则化。如果读者时间有限,并且只想了解深度学习最基础的概念和技术,那么只需阅读第一部分。

  • 第二部分(第4章~第6章)关注现代深度学习技术。第4章描述深度学习计算的各个重要组成部分,并为实现后续更复杂的模型打下基础。第5章解释近年来令深度学习在计算机视觉领域大获成功的卷积神经网络。第6章阐述近年来常用于处理序列数据的循环神经网络。阅读第二部分有助于掌握现代深度学习技术。

  • 第三部分(第7章~第10章)讨论计算性能和应用。第7章评价各种用来训练深度学习模型的优化算法。第8章检验影响深度学习计算性能的几个重要因素。第9章和第10章分别列举深度学习在计算机视觉和自然语言处理中的重要应用。这部分内容读者可根据兴趣选择阅读。

图 0-1 描绘了本书的结构,其中由A章指向B章的箭头表明A章的知识有助于理解B章的内容。

图0-1 本书的结构

代码

本书的一大特点是每一节的代码都是可以运行的。读者可以改动代码后重新运行,并通过运行结果进一步理解改动所带来的影响。

我们认为,这种交互式的学习体验对于学习深度学习非常重要。因为深度学习目前并没有很好的理论解释框架,很多论断只可意会。

文字解释在这时候可能比较苍白无力,而且不足以覆盖所有细节。读者需要不断改动代码、观察运行结果并总结经验,从而逐步领悟和掌握深度学习。

我们提供代码的主要目的在于增加一个在文字、图像和公式外的学习深度学习算法的方式,以及一个便于理解各个算法在真实数据上的实际效果的交互式环境。

书中只使用了 MXNet 的 ndarray、autograd、gluon 等模块或包的基础功能,从而使读者尽可能了解深度学习算法的实现细节。即便读者在研究和工作中使用的是其他深度学习框架,书中的代码也有助于读者更好地理解和应用深度学习算法。

讨论区

进入本书内论坛,上面提供了学习社区地址和 GitHub 开源地址。如果读者对书中某节内容有疑惑,可扫一扫该节开始的二维码参与该节内容的讨论。

值得一提的是,在有关 Kaggle 比赛章节的讨论区中,众多社区成员提供了丰富的高水平方法,我们强烈推荐给大家。希望诸位积极参与学习社区中的讨论,并相信大家一定会有所收获。本书作者和 MXNet 开发人员也时常参与社区中的讨论。



动手学深度学习 (平装)

书名:《动手学深度学习 (平装)》

作者:阿斯顿·张(Aston Zhang) 李沐(Mu Li)[美] 扎卡里 C. 立顿(Zachary C. Lipton)[德] 亚历山大 J. 斯莫拉(Alexander J. Smola)

 编辑推荐:  

  • 亚马逊科学家李沐等重磅作品;

  • 交互式实战环境下动手学深度学习的全新模式,原理与实战完美结合

  • 韩家炜/Bernhard Schölkopf/周志华/张潼/余凯/漆远/沈强 联袂推荐

  • 加州大学伯克利等全球15 所知名大学用于教学;

本书旨在向读者交付有关深度学习的交互式学习体验。书中不仅阐述深度学习的算法原理,还演示它们的实现和运行。

与传统图书不同,本书的每一节都是一个可以下载并运行的 Jupyter 记事本,它将文字、公式、图像、代码和运行结果结合在了一起。此外,读者还可以访问并参与书中内容的讨论。

扫码直接下单

满100减50元


PS:本文部分内容来源于李沐公众号:ApacheMXNet  ,在伯克利教深度学习

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/34049
 
314 次点击