深入浅出理解深度学习(附资源打包下载)

网络中有着丰富的教程,供我们开始接触深度学习。你可以选择从著名的斯坦福CS221或者CS224课程开始:

CS221:

http://cs231n.stanford.edu/

CS224:

http://cs224d.stanford.edu/

如果你从未接触过这方面的内容,你可以选择快速AI课程或者深度学习AI课程:

快速AI课程:

http://www.fast.ai/

深度学习AI课程:

https://www.deeplearning.ai/

除了深度学习AI课程,其它所有课程都是免费的,你可以在家中舒适地学习。你需要的仅仅是一台好的电脑(最好带有一块Nividia的GPU), 以及你已经准备好向深度学习迈出你的第一步。

然而,本文不是为一个纯新手准备的。当你了解了一些深度学习算法的原理,你可能想要知道这些算法是怎么运作的。尽管深度学习的绝大部分工作(大概是90%的工作,除去10%的的数据)是添加像Conv2d这样的层,调节不同优化策略(如ADAM)的超参数,或者通过在Python中添加一行代码(得益于可用的优秀框架)使用batch norm以及其它一些技巧,很多人可能都很想知道在这之后到底发生了什么。

本文列举的这些资源,在你放置一个conv2d层或者在Theano里调用T.grad的时候,可以帮助你了解到在代码背后发生了什么。

总论

毋庸置疑,《深度学习》(Deep Learning Book)这本书是最著名、最为人知的资源:

Deearning Book:

http://www.deeplearningbook.org/

其它比较好的资源还有Charniak教授的课程和论文,可以作为深度学习的技术介绍:

Charniak教授课程:

https://cs.brown.edu/courses/csci1460/assets/files/deep-learning.pdf

论文:

https://arxiv.org/abs/1709.01412

当你想要从一个具体的角度理解深度学习的话可以参考其它一些资源比较好的资源。比如,下面这个教程是从应用数学的角度来攥写的,或者如果你仅仅是想要开始写代码而不是深入研究理论的话,可以阅读下面的文章:

应用数学角度的教程:

https://arxiv.org/abs/1801.05894

文章链接:

https://arxiv.org/abs/1703.05298

还有一个比较推荐的是这个基于PyTorch的深度学习课程。这个课程讲解很全面,可以帮助你从一个更加宏观的角度理解:

基于PyTorch的深度学习课程:

https://documents.epfl.ch/users/f/fl/fleuret/www/dlc/

反向传播的问题

很多时候,人们不确定“为什么梯度下降和反向传播是同一件事情?”,或者,“到底什么是链式法则以及反向传播?”要了解这些基本问题,我们可以选择阅读Rumelhart,Hinton和Williams之前写的关于反向传播的论文。这篇论文简单易懂:

Rumelhart,Hinton,Williams关于反向传播的论文:

https://web.stanford.edu/class/psych209a/ReadingsByDate/02_06/PDPVolIChapter8.pdf

除此之外,其它一些非常有用的资源包括Karpathy的关于反向传播导数的博客,以及这段解释导数反向传播的视频:

博客地址:

https://medium.com/@karpathy/yes-you-should-understand-backprop-e2f06eab496b

视频地址:

https://www.youtube.com/watch?v=gl3lfL-g5mA

线性代数和其它数学内容

大家都会给某位立志于学习线性代数的人推荐Strang教授的课程,这大概是关于线性代数最好的资源了:

线性代数课程:

https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/

类似的还有Boyd教授的运筹学课程

运筹学课程:

http://web.stanford.edu/~boyd/cvxbook

Calculus on Manifolds的《Calculus on Manifolds》这本书是关于向量积分的微积分内容(你可以通过Google搜索“Calculus on Manifolds”找到一份pdf)。但是,一开始学习深度学习的时候,我们不需要深入学习这些内容。另一种方法是快速复习《深度学习微积分》(Calculus for DeepLearning)这本书:

Calculus for DeepLearning:

https://arxiv.org/abs/1802.01528

这里还有一些关于深度学习的凸优化内容的讲座笔记:

凸优化讲座笔记:

http://people.eecs.berkeley.edu/~elghaoui/Teaching/EE227BT/lectures.html

此外,Sebastian Reuder的论文也是比较好的资源,同时我也喜欢用下面的笔记来理解tensors的导数

Sebastian Reuder论文:

https://arxiv.org/abs/1609.04747

tensors导数笔记:

https://github.com/mtomassoli/tensor-differential-calculus/blob/master/tensor_diff_calc.pdf

自动求导和深度学习库

在你做深度学习项目的时候,不必非要了解自动计算导数。大多数框架,像Torch,Theano或者Tensorflow会帮你自动运算好。通常来说,你甚至不需要知道怎样进行导数运算。也就是说,如果你一定要弄清楚深度学习框架是怎样工作的,你可能想在下面这篇文章中理解自动求导是如何实现的

文章链接:

https://arxiv.org/abs/1502.05767

其它比较好的用来理解深度学习库功能实现的资源可以在下面的博客和视频中找到:

博客链接:

http://blog.christianperone.com/2018/03/pytorch-internal-architecture-tour

视频链接:

https://www.youtube.com/watch?v=Lo1rXJdAJ7w

卷积神经网络

在你学习了一些如何使用基本convents的课程后,你可能需要去理解卷积是如何在图像上工作的。“输入应用某种类型的卷积后,输出的维度是多少?”“stride是如何影响卷积的?”“Batch正则化是什么?”“对于这类应用问题,我看到过的最好的资源是下面的教程Ian Goodfellow的演讲

教程链接:

https://arxiv.org/abs/1603.07285

Ian Goodfellow演讲视频:

https://www.youtube.com/watch?v=Xogn6veSyxA

如果你想得到一个好点子的话,下面链接中关于Convenets的评论更加全面,另外这篇关于物体检测的总结也是比较好的资源:

关于Convenets的评论:

https://arxiv.org/abs/1803.08834

关于物体检测的总结:

https://arxiv.org/abs/1803.08834

自然语言处理中的深度学习

我在前文中提出的Stanford 224课程是一个非常好的起点,可以基本让你了解关于自然语言处理中深度学习的方方面面。这里还有一个Graham Neubig(他使用dynet)发布在YouTube上的课程

Graham Neubig发布的课程:

https://www.youtube.com/watch?v=Sss2EA4hhBQ

还有一本你可能喜欢的Yoav Goldberg编写的NLPbook以及这本书编写之后的NLP上新的研究进展的回顾

NLPbook:

https://u.cs.biu.ac.il/~yogo/nnlp.pdf

NLP上新进展回顾:

https://arxiv.org/abs/1708.02709

关于是否在文字上使用ConvNets或者RNNs(LSTM/GRUs,也是一个非常普遍的问题,这里有一个不错的概述:

概述:

https://arxiv.org/pdf/1803.01271.pdf

强化学习

Sutton和Barto所写的《强化学习》(Reinforcement Learning)这本书是开始学习这些方法的不错途径。这本书是免费的,可以在下面链接中获取:

Reinforcement Learning:

http://incompleteideas.net/book/the-book-2nd.html

这里还有一篇关于最新的深度强化学习方法的综述以及一个关于强化学习的非常有趣的教程

深度强化学习方法综述:

https://arxiv.org/abs/1708.05866

强化学习教程:

https://hackernoon.com/intuitive-rl-intro-to-advantage-actor-critic-a2c-4ff545978752

这里有一篇关于MCTS (Monte CarloTree Search)的综述(除了深度强化学习技巧外,Deepmind使用其作为AlphaGo算法的一部分),但是我喜欢用这个快速教程来学习它们:

MCTS综述:

http://mcts.ai/pubs/mcts-survey-master.pdf

快速教程:

http://jeffbradberry.com/posts/2015/09/intro-to-monte-carlo-tree-search/?utm_source=top.caibaojian.com/19271 

其它一些好的综述/教程

在ICLR 2016上,Goodfellow给出过一篇关于GANs(生成对抗网络)广义上生成模型的教程,可以在下面链接中找到:

教程链接:

https://www.youtube.com/watch?v=HGYYEUSm-0Q

神经网络可以用来做艺术迁移(例如Prisma app),可以在这里找到一篇关于如何做这个任务的详细的调查

神经网络应用于艺术迁移:

https://arxiv.org/abs/1705.04058

另一篇关于Reuder写的关于多任务学习的研究(用同一个神经网络结合多个任务)在这里:

关于多任务学习的研究:

https://arxiv.org/abs/1706.05098

评论

尽管深度学习在许多问题上效果很好,我们知道永远有它还无法解决的问题。一些值得阅读的好评论有Shalev-Shwartz等人写的Failures of Gradient-Based Deep Learning:

Failures of Gradient-Based Deep Learning:

https://arxiv.org/abs/1703.07950

这个Hinton的讲座列举了ConvNets的难点为什么ConvNets不能解释训练集图片的负面影响:

ConvNets的难点:

https://www.youtube.com/watch?v=rTawFwUvnLE

ConvNets不能解释训练集图片的原因:

https://arxiv.org/pdf/1703.06857.pdf

下面是前段时间的另一个评论以及一篇关于滥用深度学习的全面报告

评论链接:

https://arxiv.org/abs/1801.00631

关于滥用深度学习的全面报告:

https://arxiv.org/abs/1802.07228

对抗样本

这是一个巨大领域,可以制造欺骗卷积神经网络的人造或真实的数据。我本可将这一节放在评论里,但我没有这样做,原因是:

1. 它们并不是所有应用的都需要面对的技术挑战。

2. 我在这方面不是非常精通。能够使人接触这个话题并引起兴趣的例子在下面这篇文章里,他们生成“对抗物体”来欺骗神经网络:

文章链接:

https://arxiv.org/abs/1703.05298

为了成为一位数据科学家,你还可以在下面链接中阅读关于机器学习算法的例子:

机器学习算法例子:

https://blog.paralleldots.com/data-science/machine-learning/ten-machine-learning-algorithms-know-become-data-scientist/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容