深度学习是当下计算机界火得不能再火的研究课题。作为一名计算机人,应当有不断学习当下最前沿技术的觉悟。但问题来了,深度学习领域的入门资料让人看花了眼,我实在不知道该从何学起。刚好在网上看到了Arthur Chan写的此篇文章,我试着(用谷歌)翻译了一下,给各位分享。文中观点不代表译者观点,同时不保证译文质量:)。

许多人问我该如何入门深度学习。坦白说这真是一个不好回答的问题——市面上的书籍和公开课不胜枚举,并且每个人的基础与学习目标也不尽相同。因此给出一个简单实用的学习清单实在不是一件容易的事情。

在本文中我会写出一系列我心目中最重要的学习资源,可以让你快速上手深度学习。在开始介绍之前,我想先和你聊聊我推荐这些资源的理由,以及这份清单与其他人的清单的区别。

推荐原则

网上的确有许多深度学习资源列表。我仅举几个例子:Awesome列表和Reddit机器学习常见问题解答。我认为它们列举的资源非常详尽,质量很高。

此列表并不是一个详尽的列表。相反,列表过于详尽并不是好事。一方面,我们假设您只有有限的时间用来收集资源和学习深度学习。例如,学习每一门在线课程可能需要至少3个月,而完成所有课程需要至少一年的时间。另一方面,没有任何指导,阅读Goodfellow的《深度学习》会让你感到困惑。而诸如Bishop的《模式识别和机器学习》(PRML)之类的书可能是一本更好的“入门书”。因此我们只给出了极少经典的、适合入门的资源。

此列表和其他资源列表之间的另一个区别是资源是经过我个人审核的。我基本亲自体验过列表中的内容。您还会看到一些对该资源简短的评论,诸如“为什么它们是有用的”。

列表正文

万事开头难,我们首先应该以什么资源开始呢?这是一个棘手的问题,因为每个人的学习能力和背景不同。我的建议是从以下开始。

1. 上课(包括网课) - 到目前为止,我认为这是最有效的学习方式。听课+做作业通常会教你很多。
2. 读书 - 这很重要,因为通常普通的课程只是总结一个主题。只有当您阅读某个主题的书籍时,您才会开始深入了解这个领域。
3. 使用框架 - 这使您可以实际创建一些深度学习应用程序,并在现实生活中将您的知识转变成技能
4. 阅读博客 - 这很有用,但您最好知道要阅读哪些博客(请参阅“推荐阅读的博客”部分)。现在博客作者太多了,他们可能自己都“以其昏昏”,更别提“使人昭昭”了。阅读这些只会让你感到更加困惑。
5. 加入论坛并提出问题 - 这是您可以提出一些想法并征求意见的地方。论坛的质量非常重要。所以看看“Facebook论坛”部分。

课程推荐

深度学习基础(更详尽的在这里)

如果你想对深度学习的术语有个大致了解,这就是必修课程。 Ng,Karparthy和Socher的课程能教你基本概念,并且能让你了解并建立自己的深度学习应用。Silver的课程将深度学习概念与强化学习联系起来。 因此,在这4个课程之后,您应该能够了解深度学习并能编写一些基本的深度学习应用程序。

  1. Andrew Ng的Coursera机器学习课程
    跑步前先得学会走路。 在我看来,Ng的课程是最好的机器学习初学者课程。 查看此页面以查看我的评论。

  2. Andrew Ng的deeplearning.ai专业课程
    在我看来,要想从Ng的机器学习课程过渡到最困难的课程(如cs231n和cs224n),这门课就是最好的选择。请参阅我对课程1和课程2的完整评论。还可以在这里查看我的quick impression,并瞻仰一下“深度学习的英雄”Geoffrey Hinton教授。

  3. 李飞飞和Andrew Karpathy的计算机视觉课程(Stanford cs231n 2015/2016)
    我上过一次这门课。这门课的教师有大名鼎鼎的Karpathy,还有另一位经验丰富的研究生Justin Johnson。这门课主要讲CNN,还提及了一点困难的部分和最新技术,如图像定位,检测和分割。

  4. Richard Socher的深度学习和自然语言处理(标准cs224d)
    我上过一次这门课,当我试图理解RNN和LSTM时,前面提到的几个课程对我非常有用。这也可能是学习Socher递归神经网络的最佳课程。与Karpathy的课程相比,Socher更强调数学推导。因此,如果您不熟悉矩阵微分,那么这门课程将很适合你。

  5. David Silver的强化学习
    这是一个由AlphaGo的程序员教授的优秀课程。它从强化学习的基础开始,如基于DP的方法,然后进入更加困难的主题,如蒙特卡罗方法和时序差分方法,以及函数逼近和策略梯度。即使你已经有了监督学习的背景,也需要很长时间理解。强化学习被越来越多的应用程序使用,因此你应该学习(换句话说,学到强化学习已经是深入理解了。如果只要求入门,可以不学了!)。

你还可以参考:

  • Fast.ai出品的给程序员的深度学习课程
    一个大体上不错的课程。 我建议你阅读Arvind Nagaraj的帖子,比较deeplearning.ai和fast.ai的课程。

  • 深度学习理论
    或Stanford Stat 385,这是深度学习的理论课之一。

  • Hugo Larochelle的神经网络课程
    该领域的另一位明星级创新者。 我只是在深度学习课上听过Larochelle的讲座,但他讲得比任何人都简洁明了。

  • 麻省理工学院自动驾驶课程6.S094
    请参阅“强化学习”小节中的说明。

  • Nando de Freita的机器学习/深度学习课程
    我没能上这门课,但它既适合初学者,也适合更高级的学习者。 它涵盖了强化学习和孪生神经网络等主题。 如果您想使用Torch作为深度学习语言,这门课肯定适合你。

中级深度学习

中级课程意味着更难 - 您必须有数学基础。即使你已经拥有硕士学位,也会遇到许多令人困惑的概念。

  1. Hinton的神经网络与机器学习
    Hinton教授的课可是为数不多的能讲明白深度学习与一般的机器学习方法之间的区别的课。我2016年10月第一次旁听该课程,他对基于统计力学模型的解释引起了我的注意。2017年4月左右我完成了该课程,然后我写了一篇课程的热门评论。不幸的是,由于课程的难度太高,它在这个列表中排名较低。 (一开始我把它排在总排名第2,基础排名第4,但我发现它需要对Karparthy,Socher和Silver的课程有深刻的理解。后来当deeplearning.ai出现时,我将Hinton教授的课程转移到中级课程列表。 )

  2. Daphne Koller的概率图模型
    如果你想了解像DBN这样的更艰深的概念,你也想了解贝叶斯网络,那Koller的课程就是为你准备的。但是这个课,就像Hinton的NNML一样,是出了名的困难 - 你会面对概率论、图论和算法和参数估计的挑战。

强化学习(RL)

强化学习本身历史悠久,你可以认为它脱胎于CS和EE。

我对RL的理解相当浅薄,所以我只能告诉你哪个课更容易,但所有这些课都是高级课程。佐治亚理工学院CS8803可以作为你的入坑课。 Silvers老师很有趣,参考书是Sutton的书,但是为了完成课上的练习,你可能得读一点其他的书。

  1. Udacity的强化学习
    这是由Udacity与佐治亚理工学院联合出版的课程,您可以把它看做高级CS8803。我首先参加了上面说的Silver的课程,但是这门课程对于没有深度学习经验而直接从强化学习开始的人相当友好(这段请看英文原文)。

  2. David Silver的强化学习
    请参阅“深入学习入门”部分中的说明。

  3. 麻省理工学院自动驾驶课程6.S094
    自动驾驶专业课程。该课程主要讲计算机视觉,但有一个关于自动驾驶的超有意思的小练习,很可能对你想用RL解决的问题有所帮助。 (这里是关于班级的一些快速评价。)

你还可以参考:

  • 伯克利的深层强化学习可能是关于深层强化学习的第三课(在Silver和Schulmann之后)。

我听说这些课程的评价很好……

  • Oxford Deep NLP 2017
    这可能是学习NLP的第二门课。我发现这个课的资料很有意思,因为它涵盖了Socher课程没有涵盖的材料。我还没开始学。所以我以后会发表评论。

  • Nicholas Zabara的统计计算课
    看起来非常有趣,大多数材料实际上是基于ML的。

  • CMU CS11-747神经网络和NLP
    格雷厄姆·纽比格的一系列精彩公开课。 Neubig在NLP中编写了一些关于DL的有用教程。所以我也把他加了进去。

  • 2014年纽约大学深度学习课程
    Yann LeCun教授。这门课对我来说很重要,重要性相当于Hinton教授的课。主要是因为LeCun教授是BackProp和SGD最早的实验者之一。不幸的是,这些纽约大学的课被删除了。但是还留有一些幻灯片。

  • 同样来自Yann LeCun教授,深度学习就职讲座。

  • 伯克利的深度学习研讨会:由无监督学习的早期研究员Ruslan Salakhutdinov教授撰写。

  • 阿姆斯特丹大学深度学习
    如果您已经学过cs231n和cs224d,也许这里的材料你已经看过了,但我发现学完前面两门课后来学习该课就很有用。我喜欢这门课里关于反向传播的PPT,因为数学味更浓。

  • 深度学习专题
    如果你想深入学习更深奥的话题,这门课很不多。

  • 语言和语音的深度学习
    我有一点对语音识别的好奇心。这个课程也许是我在ASR上唯一能找到的DL课程。如果你读到了这一段,我会说你在网上发现的大多数软件在现实生活中并不太适用。在我这篇非常古老的文章中讨论了唯一的例外情况。

其他参考课程

Virginia Tech Deep Learning at 2015
University of Waterloo by Prof Ali Ghodsi
MIT 6.S191 Introduction to Deep Learning
Deep RL and Control from CMU
Udacity Deep Learning and Deep Learning NanoDegree.

先修课

Linear Algebra By Prof. Gilbert Strang
Probabilistic System and Applied Probability By Prof. John Tsitsiklis

更多关于机器学习基础的课程

ColumbiaX: CSMM.102x
ESL
Caltech Machine Learning.
Andrew Ng’s Machine Learning 2008
Tony Mitchell’s Machine Learning 2011
Nando De Freita’s Machine Learning 2012

其他关于AI的课程

Berkley CS 188
Stanford cs221
edX AI
MIT AI Courseware - lectures by Patrick Winston
Prof. Marvin Minsky’s The Society of Minds

我在推荐书籍页面上写了很多。简而言之,我发现像PRML,Duda&Hart(说的应该是那本《模式分类》,Duda和Hart著)这样的经典作品在深度学习的世界里仍然必读。但如果你还想要一份清单,那么…

Michael Nielson的深度学习书:或NNDL(《神经网络与深度学习》),被许多人强烈推荐。本书非常适合想要了解简单前馈神经网络及其设置的初学者。与大多数教科书不同,它不会用纯数学,而会用一些代码来循循善诱。虽然我最近才读,但我强烈建议大家阅读。另见我的评论。

《PRML》:我喜欢PRML!请去阅读我推荐的书籍页面,查看理由。

《模式分类》:我不像PRML一样喜欢它,但它是我的第一本机器学习圣经。你可以到我的推荐书页,查看理由。

Goodfellow的《深度学习》:这是深度学习的书,但这对于初学者来说并不容易。我最近浏览了这本书。这是我对它的一些快速印象。

Kyung Hyun Cho的分布式表征自然语言理解(这是一篇论文)。这主要是针对NLP科研人员,但重要的是要注意从深度学习的角度来看NLP的特别之处。

其他:查看我的推荐书籍页面。对于初学者,我发现米切尔和多明戈的书非常有趣。

译者注:国内有两本书写的很好,适合入门,那就是《机器学习》周志华著,与《统计学习方法》李航著

框架

  1. TensorFlow:最流行,安装过程令人生畏。另外请看Keras。
  2. Torch:需要会用Lua,但很容易上手。另外请看PyTorch。
  3. Theano:深度学习框架的祖宗。另外请看Lasagne。
  4. Caffe:可能是框架中运行速度最快的,但是设置过程和语法有点复杂。
  5. Neon:也很快。
  6. deeplearning4j:在企业中应用的很多。

框架的教程

Theano教程
TensorFlow教程
char-rnn
Misc
YeravaNN实验室的学习指南

你应该了解的数学概念

学习机器学习需要相当的数学知识。这些概念经常被用到,请大家积极查询。

  • 贝叶斯方法
  • 多维随机变量的分布,尤其是正态分布
  • 矩阵微分
  • 变分法
  • 信息论

如何学习深度学习——我的高质量学习资源列表相关推荐

  1. 9款高质量学习软件,原来学霸都是这么炼成的!

    白天不懂夜晚的黑,学霸不懂学渣的泪.现在,学渣也不用流泪了,试试这九款学习软件,学渣也能晋级学霸! 中国大学MOOC 中国大学MOOC(慕课)是由网易公司与教育部爱课程网携手推出的在线教育平台,汇集中 ...

  2. 各类Java高质量学习网址

    Java学习网址: 1. Oracle官方Java学习网站:https://www.oracle.com/java/technologies/javase-downloads.html 2. Java ...

  3. 推荐15个高质量学习网站,仅看一眼,就收获满满,赶紧收藏!

    1.优课联盟 优课联盟是首个全国地方高校优质MOOC课程资源共享平台,上线MOOC课程数量达468门. 你在这里可以免费学习理学工学,计算机,教育语言,文学艺术,创业职场,哲史文化,经济管理,医学,心 ...

  4. 十家高质量学习网站推荐给所有人

    时代,是给那些会学习的人准备的.大学生,如何充实大学生活?职场人,如何提升业务能力?今天,我们精心准备了一份高质量的综合学习网站清单,适合各个年龄段~ 不要在奔跑的年纪浪费时光! 考试酷 网址:htt ...

  5. 关于自我学习,推荐8个高质量免费学习网站「自我学习网站推荐

    记得刚刚毕业那会,我选择了平面设计,但是我学的是工业设计,对于很多平面的东西还是不大了解.进了一家小公司,除了我还有一位设计师,遇到很多问题.我不懂,问他,他总是以各种各样的理由拒绝,最后,索性不问了 ...

  6. 9个有趣又实用的在线学习网站,个个免费高质量,刷到别错过

    分享9个有趣又实用的学习网站,每个都是完全免费且都是高质量的学习工具,涵盖了增长见识.学习资源搜索.大学考试.语言学习等,不管是大学生还是高中.初中.小学都能在这里找到对应的学习资料. 1.wikih ...

  7. 8个高质量学习APP,超多学霸都在用,资源极丰富

    分享8个学霸都在用的学习工具,涵盖了电子版教材.搜题工具.大学英语.在线网课等,每个能够极大的帮你提升学习效率! 1.在线网课-学堂在线 一个涵盖了国内优质的视频课程APP,能够找到大量的高校学习资源 ...

  8. CVPR2022|稀疏融合稠密:通过深度补全实现高质量的3D目标检测

    作者丨花椒壳壳@知乎 来源丨https://zhuanlan.zhihu.com/p/500409423 编辑丨3D视觉工坊 论文标题:Sparse Fuse Dense: Towards High ...

  9. 关于UI设计学习,推荐6个高质量的学习网站!

    做设计这一行,可以说是一门艺术,每一个作品都是要通过设计师殚心竭力的创作才能完成.灵感和天赋这种东西我们难以控制,但给大家找一些UI设计的素材,供大家学习参考还是可以的~今天我就带大家看看学UI设计, ...

最新文章

  1. 使用docker制作hexo镜像
  2. vue解决启动报错cjs loader.js Error: Cannot find module ‘../config‘问题
  3. Hibernate 统计记录总数方法汇总
  4. ProjectManagement::Redmine备份与恢复
  5. 微信支持环信_环信客户互动云v5.39已发布:支持微信小程序接入
  6. 快慢指针 —— 链表中点
  7. 【渝粤教育】国家开放大学2018年秋季 1018t国际公法 参考试题
  8. python flask 分页_Python利用flask sqlalchemy实现分页效果
  9. android sqlite配置,60. (android开发)SQLite作为APP应用的配置打包
  10. 山东省计算机二级c语言题,2012计算机二级C语言题库.doc
  11. 物联网开发平台快速实现ModbusRTU连接
  12. 基于javaweb+jsp的在线书城书店系统(java+jdbc+Servlet+mysql)
  13. python 文本处理(分割)
  14. 【C++】实现自旋锁互斥(TAS 算法和 CAS 算法)
  15. CTF之Bugku 秋名山老司机
  16. PMI推出新认证:PgMP 项目集管理
  17. 时态二--(专升本语法)
  18. 非常好的产品研发管理文章,后面问题回答的很精彩(转)
  19. 初探自动化测试(爬虫)框架nightmarenightwatch
  20. 2_31_HTML的标签及列表_190910

热门文章

  1. h5 默认为移动端页面_20条移动前端H5页面开发规范,h5开发必看文档
  2. 智能网联汽车成兵家必争之地,恒驰智能网联汽车亮点何在?
  3. 湖南对口计算机专业综合试题答案,湖南对口高考计算机专业综合试题汇总.doc...
  4. Oracle 压缩表占用空间、 UNDOTBS01.dbf 占用空间过大解决
  5. 震区归来话旅游867
  6. 互联网等三行业跻身VC投资前三甲
  7. html5请柬制作原理,HTML5请柬(或信封、卡片、纸张)展开动画
  8. Spring Boot集成阿里云视频点播服务的过程记录
  9. python pb与json互转
  10. 让子盒子在父盒子中垂直居中的七个方法