没有合适的资源?快使用搜索试试~ 我知道了~
首页一份优美的课程笔记,吴恩达点赞的深度学习课程信息图
一份优美的课程笔记,吴恩达点赞的深度学习课程信息图 吴恩达在推特上展示了一份由 TessFerrandez 完成的深度学习专项课程信息图,这套信息图优美地记录了深度学习课程的知识与亮点。因此它不仅仅适合初学者了解深度学习,还适合机器学习从业者和研究者复习基本概念。这不仅仅是一份课程笔记,同时还是一套信息图与备忘录。下面,我们将从深度学习基础、卷积网络和循环网络三个方面介绍该笔记。
资源详情
资源评论
资源推荐

一份优美的课程笔记,吴恩达点赞的深度学习课程信息图
吴恩达在推特上展示了一份由 TessFerrandez 完成的深度学习专项课程信息图,这套信息图优美地记录了深度学习课程的知识与亮点。因此它不仅仅适合初学者了解深度学习,还适
合机器学习从业者和研究者复习基本概念。这不仅仅是一份课程笔记,同时还是一套信息图与备忘录。下面,我们将从深度学习基础、卷积网络和循环网络三个方面介绍该笔记。
人工智能·神经网络·深度学习·机器学习·演化计算
深度学习基础
1 深度学习基本概念
监督学习:所有输入数据都有确定的对应输出数据,在各种网络架构中,输入数据和输出数据的节点层都位于网络的两端,训练过程就是不断地调整它们之
间的网络连接权重。
左上:列出了各种不同网络架构的监督学习,比如标准的神经网络(NN)可用于训练房子特征和房价之间的函数,卷积神经网络(CNN)可用于训练图像和类别
之间的函数,循环神经网络(RNN)可用于训练语音和文本之间的函数。
左下:分别展示了 NN、CNN 和 RNN 的简化架构。这三种架构的前向过程各不相同,NN 使用的是权重矩阵(连接)和节点值相乘并陆续传播至下一层节点
的方式;CNN 使用矩形卷积核在图像输入上依次进行卷积操作、滑动,得到下一层输入的方式;RNN 记忆或遗忘先前时间步的信息以为当前计算过程提供长
期记忆。
右上:NN 可以处理结构化数据(表格、数据库等)和非结构化数据(图像、音频等)。
1

右下:深度学习能发展起来主要是由于大数据的出现,神经网络的训练需要大量的数据;而大数据本身也反过来促进了更大型网络的出现。深度学习研究的一
大突破是新型激活函数的出现,用 ReLU 函数替换 sigmoid 函数可以在反向传播中保持快速的梯度下降过程,sigmoid 函数在正无穷处和负无穷处会出现
趋于零的导数,这正是梯度消失导致训练缓慢甚至失败的主要原因。要研究深度学习,需要学会「idea—代码—实验—idea」的良性循环。
2 logistic 回归
左上:logistic 回归主要用于二分类问题,如图中所示,logistic 回归可以求解一张图像是不是猫的问题,其中图像是输入(x),猫(1)或非猫(0)是输出。我
们可以将 logistic 回归看成将两组数据点分离的问题,如果仅有线性回归(激活函数为线性),则对于非线性边界的数据点(例如,一组数据点被另一组包围)
是无法有效分离的,因此在这里需要用非线性激活函数替换线性激活函数。在这个案例中,我们使用的是 sigmoid 激活函数,它是值域为(0, 1)的平滑函数,
可以使神经网络的输出得到连续、归一(概率值)的结果,例如当输出节点为(0.2, 0.8)时,判定该图像是非猫(0)。
左下:神经网络的训练目标是确定最合适的权重 w 和偏置项 b,那这个过程是怎么样的呢?
这个分类其实就是一个优化问题,优化过程的目的是使预测值 y hat 和真实值 y 之间的差距最小,形式上可以通过寻找目标函数的最小值来实现。所以我们
首先确定目标函数(损失函数、代价函数)的形式,然后用梯度下降逐步更新 w、b,当损失函数达到最小值或者足够小时,我们就能获得很好的预测结果。
右上:损失函数值在参数曲面上变化的简图,使用梯度可以找到最快的下降路径,学习率的大小可以决定收敛的速度和最终结果。学习率较大时,初期收敛
很快,不易停留在局部极小值,但后期难以收敛到稳定的值;学习率较小时,情况刚好相反。一般而言,我们希望训练初期学习率较大,后期学习率较小,之
后会介绍变化学习率的训练方法。
右下:总结整个训练过程,从输入节点 x 开始,通过前向传播得到预测输出 y hat,用 y hat 和 y 得到损失函数值,开始执行反向传播,更新 w 和 b,重
复迭代该过程,直到收敛。
2

3 浅层网络的特点
左上:浅层网络即隐藏层数较少,如图所示,这里仅有一个隐藏层。
左下:这里介绍了不同激活函数的特点:
sigmoid:sigmoid 函数常用于二分分类问题,或者多分类问题的最后一层,主要是由于其归一化特性。sigmoid 函数在两侧会出现梯度趋于零的情况,会
导致训练缓慢。
tanh:相对于 sigmoid,tanh 函数的优点是梯度值更大,可以使训练速度变快。
ReLU:可以理解为阈值激活(spiking model 的特例,类似生物神经的工作方式),该函数很常用,基本是默认选择的激活函数,优点是不会导致训练缓慢
的问题,并且由于激活值为零的节点不会参与反向传播,该函数还有稀疏化网络的效果。
Leaky ReLU:避免了零激活值的结果,使得反向传播过程始终执行,但在实践中很少用。
右上:为什么要使用激活函数呢?更准确地说是,为什么要使用非线性激活函数呢?
上图中的实例可以看出,没有激活函数的神经网络经过两层的传播,最终得到的结果和单层的线性运算是一样的,也就是说,没有使用非线性激活函数的话,
无论多少层的神经网络都等价于单层神经网络(不包含输入层)。
右下:如何初始化参数 w、b 的值?
当将所有参数初始化为零的时候,会使所有的节点变得相同,在训练过程中只能学到相同的特征,而无法学到多层级、多样化的特征。解决办法是随机初始
化所有参数,但仅需少量的方差就行,因此使用 Rand(0.01)进行初始化,其中 0.01 也是超参数之一。
3

4 深度神经网络的特点
左上:神经网络的参数化容量随层数增加而指数式地增长,即某些深度神经网络能解决的问题,浅层神经网络需要相对的指数量级的计算才能解决。
左下:CNN 的深度网络可以将底层的简单特征逐层组合成越来越复杂的特征,深度越大,其能分类的图像的复杂度和多样性就越大。RNN 的深度网络也是
同样的道理,可以将语音分解为音素,再逐渐组合成字母、单词、句子,执行复杂的语音到文本任务。
右边:深度网络的特点是需要大量的训练数据和计算资源,其中涉及大量的矩阵运算,可以在 GPU 上并行执行,还包含了大量的超参数,例如学习率、迭
代次数、隐藏层数、激活函数选择、学习率调整方案、批尺寸大小、正则化方法等。
4

5 偏差与方差
那么部署你的机器学习模型需要注意些什么?下图展示了构建 ML 应用所需要的数据集分割、偏差与方差等问题。
如上所示,经典机器学习和深度学习模型所需要的样本数有非常大的差别,深度学习的样本数是经典 ML 的成千上万倍。因此训练集、开发集和测试集的分
配也有很大的区别,当然我们假设这些不同的数据集都服从同分布。
偏差与方差问题同样是机器学习模型中常见的挑战,上图依次展示了由高偏差带来的欠拟合和由高方差带来的过拟合。一般而言,解决高偏差的问题是选择
更复杂的网络或不同的神经网络架构,而解决高方差的问题可以添加正则化、减少模型冗余或使用更多的数据进行训练。
当然,机器学习模型需要注意的问题远不止这些,但在配置我们的 ML 应用中,它们是最基础和最重要的部分。其它如数据预处理、数据归一化、超参数的
选择等都在后面的信息图中有所体现。
5
剩余27页未读,继续阅读












安全验证
文档复制为VIP权益,开通VIP直接复制

评论1