Professional Documents
Culture Documents
吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
吴恩达倾情推荐!这28张图全解深度学习知识真棒!
机器学习… 关注
149 人赞同了该文章
来源:机器之心
欢迎关注 @机器学习社区 ,专注学术论文、机器学习、人工智能、Python技巧
吴恩达在推特上展示了一份由 TessFerrandez 完成的深度学习专项课程信息图,这套信息图优美
地记录了深度学习课程的知识与亮点。因此它不仅仅适合初学者了解深度学习,还适合机器学习从
业者和研究者复习基本概念。欢迎收藏学习,喜欢点赞支持。
这不仅仅是一份课程笔记,同时还是一套信息图与备忘录。下面,我们将从深度学习基础(01-
13)、卷积网络(14-22)和循环网络(23-28)三个方面介绍该笔记,并提供信息图下载地址。
信息图下载地址:
pan.baidu.com/s/1DtYg3T
01 深度学习基本概念
https://zhuanlan.zhihu.com/p/417422703 1/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
监督学习:所有输入数据都有确定的对应输出数据,在各种网络架构中,输入数据和输出数据的节
点层都位于网络的两端,训练过程就是不断地调整它们之间的网络连接权重。
左上:列出了各种不同网络架构的监督学习,比如标准的神经网络(NN)可用于训练房子特征和
房价之间的函数,卷积神经网络(CNN)可用于训练图像和类别之间的函数,循环神经网络
(RNN)可用于训练语音和文本之间的函数。
左下:分别展示了 NN、CNN 和 RNN 的简化架构。这三种架构的前向过程各不相同,NN 使用的
是权重矩阵(连接)和节点值相乘并陆续传播至下一层节点的方式;CNN 使用矩形卷积核在图像
输入上依次进行卷积操作、滑动,得到下一层输入的方式;RNN 记忆或遗忘先前时间步的信息以
为当前计算过程提供长期记忆。
右上:NN 可以处理结构化数据(表格、数据库等)和非结构化数据(图像、音频等)。
右下:深度学习能发展起来主要是由于大数据的出现,神经网络的训练需要大量的数据;而大数据
本身也反过来促进了更大型网络的出现。
https://zhuanlan.zhihu.com/p/417422703 2/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
https://zhuanlan.zhihu.com/p/417422703 4/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
左上:浅层网络即隐藏层数较少,如图所示,这里仅有一个隐藏层。
左下:这里介绍了不同激活函数的特点:
sigmoid:sigmoid 函数常用于二分分类问题,或者多分类问题的最后一层,主要是由于其归一化
特性。sigmoid 函数在两侧会出现梯度趋于零的情况,会导致训练缓慢。
tanh:相对于 sigmoid,tanh 函数的优点是梯度值更大,可以使训练速度变快。
ReLU:可以理解为阈值激活(spiking model 的特例,类似生物神经的工作方式),该函数很常
用,基本是默认选择的激活函数,优点是不会导致训练缓慢的问题,并且由于激活值为零的节点不
会参与反向传播,该函数还有稀疏化网络的效果。
Leaky ReLU:避免了零激活值的结果,使得反向传播过程始终执行,但在实践中很少用。
右上:为什么要使用激活函数呢?更准确地说是,为什么要使用非线性激活函数呢?
上图中的实例可以看出,没有激活函数的神经网络经过两层的传播,最终得到的结果和单层的线性
运算是一样的,也就是说,没有使用非线性激活函数的话,无论多少层的神经网络都等价于单层神
经网络(不包含输入层)。
右下:如何初始化参数 w、b 的值?
当将所有参数初始化为零的时候,会使所有的节点变得相同,在训练过程中只能学到相同的特征,
而无法学到多层级、多样化的特征。解决办法是随机初始化所有参数,但仅需少量的方差就行,因
此使用 Rand(0.01)进行初始化,其中 0.01 也是超参数之一。
04 深度神经网络的特点
https://zhuanlan.zhihu.com/p/417422703 5/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
左上:神经网络的参数化容量随层数增加而指数式地增长,即某些深度神经网络能解决的问题,浅
层神经网络需要相对的指数量级的计算才能解决。
左下:CNN 的深度网络可以将底层的简单特征逐层组合成越来越复杂的特征,深度越大,其能分
类的图像的复杂度和多样性就越大。RNN 的深度网络也是同样的道理,可以将语音分解为音素,
再逐渐组合成字母、单词、句子,执行复杂的语音到文本任务。
右边:深度网络的特点是需要大量的训练数据和计算资源,其中涉及大量的矩阵运算,可以在
GPU 上并行执行,还包含了大量的超参数,例如学习率、迭代次数、隐藏层数、激活函数选择、
学习率调整方案、批尺寸大小、正则化方法等。
05 偏差与方差
那么部署你的机器学习模型需要注意些什么?下图展示了构建 ML 应用所需要的数据集分割、偏差
与方差等问题。
https://zhuanlan.zhihu.com/p/417422703 6/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
如上所示,经典机器学习和深度学习模型所需要的样本数有非常大的差别,深度学习的样本数是经
典 ML 的成千上万倍。因此训练集、开发集和测试集的分配也有很大的区别,当然我们假设这些不
同的数据集都服从同分布。
偏差与方差问题同样是机器学习模型中常见的挑战,上图依次展示了由高偏差带来的欠拟合和由高
方差带来的过拟合。一般而言,解决高偏差的问题是选择更复杂的网络或不同的神经网络架构,而
解决高方差的问题可以添加正则化、减少模型冗余或使用更多的数据进行训练。
当然,机器学习模型需要注意的问题远不止这些,但在配置我们的 ML 应用中,它们是最基础和最
重要的部分。其它如数据预处理、数据归一化、超参数的选择等都在后面的信息图中有所体现。
06 正则化
正则化是解决高方差或模型过拟合的主要手段,过去数年,研究者提出和开发了多种适合机器学习
算法的正则化方法,如数据增强、L2 正则化(权重衰减)、L1 正则化、Dropout、Drop
Connect、随机池化和提前终止等。
https://zhuanlan.zhihu.com/p/417422703 7/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
最后,上图还描述了数据增强与提前终止等正则化方法。数据增强通过向训练数据添加转换或扰动
来人工增加训练数据集。数据增强技术如水平或垂直翻转图像、裁剪、色彩变换、扩展和旋转通常
应用在视觉表象和图像分类中。
而提前终止通常用于防止训练中过度表达的模型泛化性能差。如果迭代次数太少,算法容易欠拟合
(方差较小,偏差较大),而迭代次数太多,算法容易过拟合(方差较大,偏差较小)。因此,提
前终止通过确定迭代次数解决这个问题。
07-08 最优化
最优化是机器学习模型中非常非常重要的模块,它不仅主导了整个训练过程,同时还决定了最后模
型性能的好坏和收敛需要的时长。以下两张信息图都展示了最优化方法需要关注的知识点,包括最
优化的预备和具体的最优化方法。
以上展示了最优化常常出现的问题和所需要的操作。首先在执行最优化前,我们需要归一化输入数
据,而且开发集与测试集归一化的常数(均值与方差)与训练集是相同的。
https://zhuanlan.zhihu.com/p/417422703 9/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
上图也展示了归一化的原因,因为如果特征之间的量级相差太大,那么损失函数的表面就是一张狭
长的椭圆形,而梯度下降或最速下降法会因为「锯齿」现象而很难收敛,因此归一化为圆形有助于
减少下降方向的震荡。
后面的梯度消失与梯度爆炸问题也是十分常见的现象。「梯度消失」指的是随着网络深度增加,参
数的梯度范数指数式减小的现象。
梯度很小,意味着参数的变化很缓慢,从而使得学习过程停滞。梯度爆炸指神经网络训练过程中大
的误差梯度不断累积,导致模型权重出现很大的更新,在极端情况下,权重的值变得非常大以至于
出现 NaN 值。
梯度检验现在可能用的比较少,因为我们在 TensorFlow 或其它框架上执行最优化算法只需要调用
优化器就行。梯度检验一般是使用数值的方法计算近似的导数并传播,因此它能检验我们基于解析
式算出来的梯度是否正确。
下面就是具体的最优化算法了,包括最基本的小批量随机梯度下降、带动量的随机梯度下降和
RMSProp 等适应性学习率算法。
https://zhuanlan.zhihu.com/p/417422703 10/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
https://zhuanlan.zhihu.com/p/417422703 11/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
众所周知学习率、神经网络隐藏单元数、批量大小、层级数和正则化系数等超参数可以直接影响模
型的性能,而怎么调就显得非常重要。目前最常见的还是手动调参,开发者会根据自身建模经验选
择「合理」的超参数,然后再根据模型性能做一些小的调整。
而自动化调参如随机过程或贝叶斯优化等仍需要非常大的计算量,且效率比较低。不过近来关于使
用强化学习、遗传算法和神经网络等方法搜索超参数有很大的进步,研究者都在寻找一种高效而准
确的方法。
目前的超参数搜索方法有:
依靠经验:聆听自己的直觉,设置感觉上应该对的参数然后看看它是否工作,不断尝试直到累趴。
网格搜索:让计算机尝试一些在一定范围内均匀分布的数值。
随机搜索:让计算机尝试一些随机值,看看它们是否好用。
贝叶斯优化:使用类似 MATLAB bayesopt 的工具自动选取最佳参数——结果发现贝叶斯优化的超
参数比你自己的机器学习算法还要多,累觉不爱,回到依靠经验和网格搜索方法上去。
因为篇幅有限,后面的展示将只简要介绍信息图,相信它们对各位读者都十分有帮助。
https://zhuanlan.zhihu.com/p/417422703 12/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
10 结构化机器学习过程
我们需要按过程或结构来设定我们的机器学习系统,首先需要设定模型要达到的目标,例如它的预
期性能是多少、度量方法是什么等。然后分割训练、开发和测试集,并预期可能到达的优化水平。
随后再构建模型并训练,在开发集和测试集完成验证后就可以用于推断了。
11 误差分析
https://zhuanlan.zhihu.com/p/417422703 13/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
在完成训练后,我们可以分析误差的来源而改进性能,包括发现错误的标注、不正确的损失函数
等。
12 训练集、开发集与测试集
https://zhuanlan.zhihu.com/p/417422703 14/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
上图展示了三个分割数据集及其表现所需要注意的地方,也就是说如果它们间有不同的正确率,那
么我们该如何修正这些「差别」。例如训练集的正确率明显高于验证集与测试集表明模型过拟合,
三个数据集的正确率都明显低于可接受水平可能是因为欠拟合。
13 其它学习方法
https://zhuanlan.zhihu.com/p/417422703 15/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
机器学习和深度学习当然不止监督学习方法,还有如迁移学习、多任务学习和端到端的学习等。
14-16 卷积神经网络基础
https://zhuanlan.zhihu.com/p/417422703 16/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
计算机视觉任务涉及的数据体量是特别大的,一张图像就有上千个数据点,更别提高分辨率图像和
视频了。这时用全连接网络的话,参数数量太大,因而改用卷积神经网络(CNN),参数数量可
以极大地减小。
CNN 的工作原理就像用检测特定特征的过滤器扫描整张图像,进行特征提取,并逐层组合成越来
越复杂的特征。这种「扫描」的工作方式使其有很好的参数共享特性,从而能检测不同位置的相同
目标(平移对称)。
卷积核对应的检测特征可以从其参数分布简单地判断,例如,权重从左到右变小的卷积核可以检测
到黑白竖条纹的边界,并显示为中间亮,两边暗的特征图,具体的相对亮暗结果取决于图像像素分
布和卷积核的相对关系。卷积核权重可以直接硬编码,但为了让相同的架构适应不同的任务,通过
训练得到卷积核权重是更好的办法。
卷积运算的主要参数:
https://zhuanlan.zhihu.com/p/417422703 17/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
https://zhuanlan.zhihu.com/p/417422703 18/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
深度卷积神经网络的架构主要以卷积层、池化层的多级堆叠,最后是全连接层执行分类。池化层的
主要作用是减少特征图尺寸,进而减少参数数量,加速运算,使其目标检测表现更加鲁棒。
17 经典卷积神经网络
https://zhuanlan.zhihu.com/p/417422703 19/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
https://zhuanlan.zhihu.com/p/417422703 20/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
ResNet:引入残差连接,缓解梯度消失和梯度爆炸问题,可以训练非常深的网络。
Network in Network:使用 1x1 卷积核,可以将卷积运算变成类似于全连接网络的形式,还可以
减少特征图的通道数,从而减少参数数量。
Inception Network:使用了多种尺寸卷积核的并行操作,再堆叠成多个通道,可以捕捉多种规模
的特征,但缺点是计算量太大,可以通过 1x1 卷积减少通道数。
19 实践建议
https://zhuanlan.zhihu.com/p/417422703 21/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
使用开源实现:从零开始实现时非常困难的,利用别人的实现可以快速探索更复杂有趣的任务。
数据增强:通过对原图像进行镜像、随机裁剪、旋转、颜色变化等操作,增加训练数据量和多样
性。
迁移学习:针对当前任务的训练数据太少时,可以将充分训练过的模型用少量数据微调获得足够好
的性能。
基准测试和竞赛中表现良好的诀窍:使用模型集成,使用多模型输出的平均结果;在测试阶段,将
图像裁剪成多个副本分别测试,并将测试结果取平均。
20 目标检测算法
https://zhuanlan.zhihu.com/p/417422703 22/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
https://zhuanlan.zhihu.com/p/417422703 23/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
人脸识别有两大类应用:人脸验证(二分分类)和人脸识别(多人分类)。
当样本量不足时,或者不断有新样本加入时,需要使用 one-shot learning,解决办法是学习相似
性函数,即确定两张图像的相似性。比如在 Siamese Network 中学习人脸识别时,就是利用两个
网络的输出,减少同一个人的两个输出的差别,增大不同人的两个输出之间的差别。
22 风格迁移
https://zhuanlan.zhihu.com/p/417422703 24/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
风格迁移是一个热门话题,它会在视觉上给人耳目一新的感觉。例如你有一副图,然后将另一幅图
的风格特征应用到这幅图上,比如用一位著名画家或某一副名画的风格来修改你的图像,因此我们
可以获得独特风格的作品。
23-24 循环神经网络基础
https://zhuanlan.zhihu.com/p/417422703 25/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
如上所示,命名实体识别等序列问题在现实生活中占了很大的比例,而隐马尔可夫链等传统机器学
习算法只能作出很强的假设而处理部分序列问题。
但近来循环神经网络在这些问题上有非常大的突破,RNN 隐藏状态的结构以循环形的形式成记
忆,每一时刻的隐藏层的状态取决于它的过去状态,这种结构使得 RNN 可以保存、记住和处理长
时期的过去复杂信号。
循环神经网络(RNN)能够从序列和时序数据中学习特征和长期依赖关系。RNN 具备非线性单元
的堆叠,其中单元之间至少有一个连接形成有向循环。训练好的 RNN 可以建模任何动态系统;但
是,训练 RNN 主要受到学习长期依赖性问题的影响。
以下展示了 RNN 的应用、问题以及变体等:
https://zhuanlan.zhihu.com/p/417422703 26/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
循环神经网络在语言建模等序列问题上有非常强大的力量,但同时它也存在很严重的梯度消失问
题。因此像 LSTM 和 GRU 等基于门控的 RNN 有非常大的潜力,它们使用门控机制保留或遗忘前
面时间步的信息,并形成记忆以提供给当前的计算过程。
25-26 NLP 中的词表征
https://zhuanlan.zhihu.com/p/417422703 27/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
词嵌入在自然语言处理中非常重要,因为不论执行怎样的任务,将词表征出来都是必须的。上图展
示了词嵌入的方法,我们可以将词汇库映射到一个 200 或 300 维的向量,从而大大减少表征词的
空间。此外,这种词表征的方法还能表示词的语义,因为词义相近的词在嵌入空间中距离相近。
除了以上所述的 Skip Grams,以下还展示了学习词嵌入的常见方法:
https://zhuanlan.zhihu.com/p/417422703 28/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
GloVe 词向量是很常见的词向量学习方法,它学到的词表征可进一步用于语句分类等任务。
27-28 序列到序列
https://zhuanlan.zhihu.com/p/417422703 29/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
序列到序列的方法使用最多的就是编码器解码器框架,其它还有束搜索等模块的介绍。
编码器解码器架构加上注意力机制可以解决非常多的自然语言处理问题,以下介绍了 BLEU 分值和
注意力机制。它们在机器翻译的架构和评估中都是不能缺少的部分。
https://zhuanlan.zhihu.com/p/417422703 30/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
以上是所有关于吴恩达深度学习专项课程的信息图,由于它们包含的信息较多,我们只介绍了一部
分,还有很多内容只是简单的一笔带过。所以各位读者最好可以下载该信息图,并在后面的学习过
程中慢慢理解与优化。
推荐文章
北大华为鹏城联合首次提出视觉 Transformer 后量化算法!
基于PyTorch,集合17种方法,南京大学等提出小样本算法库LibFewShot
打破 Transformer 宿命,新秀 VOLO 开源!横扫 CV 多项记录,首个超越 87% 的模型
经典!17 个注意力机制 PyTorch 实现
当Transformer又遇见U-Net!Transformer-Unet:医学图像分割新工作
有了这个机器学习画图神器,论文、博客都可以事半功倍了!
https://zhuanlan.zhihu.com/p/417422703 31/32
10/8/21, 3:08 PM 吴恩达倾情推荐!这28张图全解深度学习知识真棒! - 知乎
https://zhuanlan.zhihu.com/p/417422703 32/32