《深度学习》课件6.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《深度学习》课件6.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 深度学习 深度 学习 课件
- 资源描述:
-
1、本章简介本章简介我们已经在上面章节中介绍了处理不同类型数据的深度学习模我们已经在上面章节中介绍了处理不同类型数据的深度学习模型,例如能够处理图像数据的卷积神经网络,能够处理序列数型,例如能够处理图像数据的卷积神经网络,能够处理序列数据的一维卷积网络以及长短期记忆网络,同时在据的一维卷积网络以及长短期记忆网络,同时在KerasKeras中实现了中实现了这些模型。我们也讨论了一些提升模型性能的方法,但是还没这些模型。我们也讨论了一些提升模型性能的方法,但是还没有讨论在实际工程中如何去优化模型。本章将系统地介绍几种有讨论在实际工程中如何去优化模型。本章将系统地介绍几种常见的深度学习模型的优化方法,同
2、时讨论影响深度学习模型常见的深度学习模型的优化方法,同时讨论影响深度学习模型优化的因素。优化的因素。6-1 6-1 参数初始化参数初始化 深度学习模型的训练算法通常是迭代的,需要一步一步地更新,因深度学习模型的训练算法通常是迭代的,需要一步一步地更新,因此要设置一些初始点。初始点的选择很大程度地决定了算法是否收敛,此要设置一些初始点。初始点的选择很大程度地决定了算法是否收敛,以及收敛速度是否达到期望。有一些初始点使模型表现得十分不稳定,以及收敛速度是否达到期望。有一些初始点使模型表现得十分不稳定,致使训练完全失败。致使训练完全失败。当初始化点靠近一个局部最优点时,它有更大的概率收敛至相距最当初
3、始化点靠近一个局部最优点时,它有更大的概率收敛至相距最近的局部最优点。这一点可以通过图近的局部最优点。这一点可以通过图6.36.3来理解。来理解。图图6-3 6-3 初始点的梯度与模型收敛至最近局部最优点有关初始点的梯度与模型收敛至最近局部最优点有关目前存在的一些初始化策略是简单的、启发式的,并没有一个对于目前存在的一些初始化策略是简单的、启发式的,并没有一个对于参数初始化的成熟理论。而有些初始点从优化的观点看或许是有利的,参数初始化的成熟理论。而有些初始点从优化的观点看或许是有利的,但是从泛化的观点看是不利的。但是从泛化的观点看是不利的。虽然如此,但是有一个初始化原则确是很明确的,那就是初始
4、化参虽然如此,但是有一个初始化原则确是很明确的,那就是初始化参数时需要在有相同输入的不同单元间数时需要在有相同输入的不同单元间“破坏相似性破坏相似性”。也就是说,如果。也就是说,如果有同一个输入连接到具有相同激活函数的两个不同的隐藏单元时,这些有同一个输入连接到具有相同激活函数的两个不同的隐藏单元时,这些隐藏单元必须具有不同的初始参数。如果它们具有相同的初始参数,后隐藏单元必须具有不同的初始参数。如果它们具有相同的初始参数,后面在计算模型的确定性损失和更新参数时都将一直以相同的方式处理这面在计算模型的确定性损失和更新参数时都将一直以相同的方式处理这两个单元。通常情况下,我们将每个单元的偏置设置
5、为常数,仅随机初两个单元。通常情况下,我们将每个单元的偏置设置为常数,仅随机初始化权重。始化权重。有些启发式方法可用于选择权重的初始大小。例如使用标准初始化有些启发式方法可用于选择权重的初始大小。例如使用标准初始化(Normalized InitializationNormalized Initialization)。初始化。初始化m m个输入和个输入和 n n个输出的个输出的全连接层权重的启发式方法满足式全连接层权重的启发式方法满足式6.36.3所示的分布。所示的分布。,66,i jWUm nm n(6-3)另一种方法是初始化为随机正交矩阵,这时需要仔细挑选每一层的非另一种方法是初始化为随机
6、正交矩阵,这时需要仔细挑选每一层的非线性缩放或增益线性缩放或增益(Gain)(Gain)因子因子 。这种初始化方案也是受启发于不含非。这种初始化方案也是受启发于不含非线性的矩阵相乘序列的深度网络。在该模型下,这个初始化方案保证线性的矩阵相乘序列的深度网络。在该模型下,这个初始化方案保证了达到收敛所需的训练迭代总次数独立于深度。换句话说在这种初始了达到收敛所需的训练迭代总次数独立于深度。换句话说在这种初始化方案下,深度学习模型的深度不再对训练所需的迭代总次数产生影化方案下,深度学习模型的深度不再对训练所需的迭代总次数产生影响。该方法的一个重要观点是,在前馈网络中,激活和梯度会在每一响。该方法的一
7、个重要观点是,在前馈网络中,激活和梯度会在每一步前向传播或反向传播中增加或减小,由于前馈网络在每一层使用了步前向传播或反向传播中增加或减小,由于前馈网络在每一层使用了不同的权重矩阵,因此遵循随机游走行为。如果该随机游走调整到保不同的权重矩阵,因此遵循随机游走行为。如果该随机游走调整到保持范数,那么前馈网络能够很大程度地避免相同权重矩阵用于每层的持范数,那么前馈网络能够很大程度地避免相同权重矩阵用于每层的梯度消失与爆炸问题。梯度消失与爆炸问题。有一种被称为稀疏初始化(有一种被称为稀疏初始化(Sparse InitializationSparse Initialization)的替代方案,)的替代
8、方案,它令每个单元初始化有它令每个单元初始化有 个非零权重。这个想法是将该单元输入的个非零权重。这个想法是将该单元输入的数量独立于单元所在层总的输入数目数量独立于单元所在层总的输入数目 ,保证了不使权重的大小随,保证了不使权重的大小随着标准化(除以着标准化(除以 )而变得极小。简单来说非零权重的个数是固定)而变得极小。简单来说非零权重的个数是固定的,与每一层的具体规模无关。所以稀疏初始化有助于实现单元之的,与每一层的具体规模无关。所以稀疏初始化有助于实现单元之间初始化时的多样性,避免了由于层规模过大而造成的权重变小的间初始化时的多样性,避免了由于层规模过大而造成的权重变小的现象。但是,由于获得
9、较大取值的权重相当于被加了较强的先验,现象。但是,由于获得较大取值的权重相当于被加了较强的先验,因此需要长时间的梯度下降才能够修正较大的目标函数偏离值。因此需要长时间的梯度下降才能够修正较大的目标函数偏离值。本节讨论了权重初始化对模型性能的影响,并介绍了几种常用本节讨论了权重初始化对模型性能的影响,并介绍了几种常用的权重与偏置的初始化方法,如标准化权重初始值、稀疏初始的权重与偏置的初始化方法,如标准化权重初始值、稀疏初始化等。但是深度学习模型的参数不仅仅只是权重与偏置,它还化等。但是深度学习模型的参数不仅仅只是权重与偏置,它还拥有许多超参数,诸如学习率、动量系数等。下一节将介绍这拥有许多超参数
10、,诸如学习率、动量系数等。下一节将介绍这些超参数的寻优算法。些超参数的寻优算法。大部分深度学习算法都包含许多超参数,从不同方面或多或少地影响着大部分深度学习算法都包含许多超参数,从不同方面或多或少地影响着算法的性能。例如,有些超参数会影响算法运行的时间和存储成本,有算法的性能。例如,有些超参数会影响算法运行的时间和存储成本,有些超参数会影响模型的质量,有些会影响推断正确结果的能力。这些超些超参数会影响模型的质量,有些会影响推断正确结果的能力。这些超参数包括前面提到的学习率(影响学习速度)、模型深度(影响模型的参数包括前面提到的学习率(影响学习速度)、模型深度(影响模型的泛化能力)等。泛化能力)
11、等。有两种选择超参数的基本方法:手动选择和自动选择。手动选择超参数有两种选择超参数的基本方法:手动选择和自动选择。手动选择超参数需要了解这些超参数是要完成什么工作,以及机器学习模型如何通过这需要了解这些超参数是要完成什么工作,以及机器学习模型如何通过这些参数才能取得良好的泛化。自动选择超参数算法可以从很大程度上减些参数才能取得良好的泛化。自动选择超参数算法可以从很大程度上减少人为工作量,但是往往需要更高的计算成本。少人为工作量,但是往往需要更高的计算成本。6-2 6-2 超参数寻优算法超参数寻优算法手动搜索超参数通常是当我们受限于运行时间和内存大小的时候采手动搜索超参数通常是当我们受限于运行时
12、间和内存大小的时候采取的最小化泛化误差的方式。在此我们不去探讨如何确定各种超参取的最小化泛化误差的方式。在此我们不去探讨如何确定各种超参数对运行时间和内存的影响,因为这高度依赖于平台硬件或网络模数对运行时间和内存的影响,因为这高度依赖于平台硬件或网络模型的框架。手动搜索超参数的主要目标是调整模型的有效容量以匹型的框架。手动搜索超参数的主要目标是调整模型的有效容量以匹配任务的复杂性。配任务的复杂性。6.2.1 6.2.1 手动超参数寻优手动超参数寻优当泛化误差是以某个超参数为变量的函数时,通常会表现为一条当泛化误差是以某个超参数为变量的函数时,通常会表现为一条U U形曲线,如图形曲线,如图6-4
13、6-4所示。在某个极端情况下,超参数对应着低容量,所示。在某个极端情况下,超参数对应着低容量,并且泛化误差由于训练误差较大而很高,如当模型的深度过低的时并且泛化误差由于训练误差较大而很高,如当模型的深度过低的时候所对应欠拟合的情况。另一种极端情况就是超参数对应着高容量,候所对应欠拟合的情况。另一种极端情况就是超参数对应着高容量,并且泛化误差由于训练误差和测试误差之间的差距较大而很高,如并且泛化误差由于训练误差和测试误差之间的差距较大而很高,如模型的深度过深,虽然模型能够很好地学习输入数据但是会发生过模型的深度过深,虽然模型能够很好地学习输入数据但是会发生过拟合。最优的模型容量应该位于这个拟合。
14、最优的模型容量应该位于这个U U型曲线中间的某个位置,能型曲线中间的某个位置,能够达到最低可能的泛化误差。够达到最低可能的泛化误差。图图6-4 6-4 超超参数与模型性能关系参数与模型性能关系并非每个超参数与损失之间的关系都能对应着完整的并非每个超参数与损失之间的关系都能对应着完整的U形曲线。很多超参数与形曲线。很多超参数与性能之间的对应是离散的,如中间层单元的数目,这种情况下只能离散地探索性能之间的对应是离散的,如中间层单元的数目,这种情况下只能离散地探索一些点的性能。有些超参数是二值化的,通常这些超参数用来指定是否使用学一些点的性能。有些超参数是二值化的,通常这些超参数用来指定是否使用学习
15、算法中的一些可选部分,如前面介绍的门控制是否参与计算的深度学习模型习算法中的一些可选部分,如前面介绍的门控制是否参与计算的深度学习模型(这些超参数只能探索曲线上的两点,即(这些超参数只能探索曲线上的两点,即“是是”=1或或“否否”=0)。还有一些超)。还有一些超参数可能会有最小值或最大值,可以限制其探索曲线的其他范围(例如权重衰参数可能会有最小值或最大值,可以限制其探索曲线的其他范围(例如权重衰减系数的最小值是减系数的最小值是0。当其为。当其为0时意味着约束项不起作用)。时意味着约束项不起作用)。手动调整超参数时不要忘记最终目标,就是提升测试集性能。加手动调整超参数时不要忘记最终目标,就是提升
16、测试集性能。加入正则化方法只是我们实现这个目标的一种方式。当然也可以通入正则化方法只是我们实现这个目标的一种方式。当然也可以通过收集更多的训练数据来减少模型的泛化误差。实践中能够确保过收集更多的训练数据来减少模型的泛化误差。实践中能够确保训练有效的训练有效的“暴力暴力”方法就是不断提高模型容量和训练集的大小,方法就是不断提高模型容量和训练集的大小,直到解决问题。但是这种做法增加了训练的计算代价,所以只有直到解决问题。但是这种做法增加了训练的计算代价,所以只有在拥有足够计算机资源时才是可行的,同时要注意数据资源的质在拥有足够计算机资源时才是可行的,同时要注意数据资源的质量。量。如前所述,当我们做
17、过相同类型的应用或具有相似网络结构建模如前所述,当我们做过相同类型的应用或具有相似网络结构建模经验的话,就可以适当地自行确定初始值和调整超参数。但现在经验的话,就可以适当地自行确定初始值和调整超参数。但现在越来越需要的是通过自动算法找到合适的超参数,因为大多数情越来越需要的是通过自动算法找到合适的超参数,因为大多数情况下已经无法手动寻找大型网络较优的初始值了。下面介绍两种况下已经无法手动寻找大型网络较优的初始值了。下面介绍两种自动超参数优化(自动超参数优化(Hyperparameter OptimizationHyperparameter Optimization)算法,分别是)算法,分别是网
18、格搜索(网格搜索(Grid SearchGrid Search)和随机搜索()和随机搜索(Random SearchRandom Search)。)。6.2.2 6.2.2 超参数寻优算法超参数寻优算法一、网格搜索算法一、网格搜索算法当有三个或更少的超参数存在时,常见的超参数搜索方法就是网当有三个或更少的超参数存在时,常见的超参数搜索方法就是网格搜索。对于每个超参数都选择一个较小的有限值集去探索,最格搜索。对于每个超参数都选择一个较小的有限值集去探索,最后挑选使验证集误差达到最小的超参数。那么应该如何选择搜索后挑选使验证集误差达到最小的超参数。那么应该如何选择搜索集合的范围呢?在超参数是数值有
19、序的情况下,每个列表中的最集合的范围呢?在超参数是数值有序的情况下,每个列表中的最小和最大元素可以先提取出来,以确保在所选范围内寻找最优解。小和最大元素可以先提取出来,以确保在所选范围内寻找最优解。通常,网格搜索会在对数尺度(通常,网格搜索会在对数尺度(Logarithmic ScaleLogarithmic Scale)下挑选合适)下挑选合适值,例如,一个学习率的取值集合可以是值,例如,一个学习率的取值集合可以是 ,或者隐藏,或者隐藏单元数目的取值集合可以为单元数目的取值集合可以为 。123410,10,10,1050,100,200,500二、随机搜索算法与网格搜索算法相比,随机搜索算法能
20、更快地收敛到超参数的较优取与网格搜索算法相比,随机搜索算法能更快地收敛到超参数的较优取值。算法如下所示。值。算法如下所示。(1)首先为每个超参数定义一个边缘分布,例如,)首先为每个超参数定义一个边缘分布,例如,Bernoulli分布或者分布或者对数尺度上的均匀分布,对应着正实值超参数。例如:对数尺度上的均匀分布,对应着正实值超参数。例如:(6-4)(6-5)其中,其中,表示区间在表示区间在 上均匀采样的样本。上均匀采样的样本。(2)然后搜索算法从联合的超参数空间中采样并运行每一个样本,逐)然后搜索算法从联合的超参数空间中采样并运行每一个样本,逐个比较目标函数值,将坏的点抛弃,保留好的点,最后便
21、得到近似的个比较目标函数值,将坏的点抛弃,保留好的点,最后便得到近似的最优解。最优解。log_(1,4)learningrateu log_10learningratelearningrate 6-3 6-3 基于梯度的自适应学习算法基于梯度的自适应学习算法通过对深度学习算法的讨论,我们可以很清楚地看出几乎所有的学通过对深度学习算法的讨论,我们可以很清楚地看出几乎所有的学习过程都离不开梯度。模型中几乎所有的权重与偏置参数的学习过习过程都离不开梯度。模型中几乎所有的权重与偏置参数的学习过程都需要梯度的参与。前面介绍的梯度下降算法,虽然是一种能让程都需要梯度的参与。前面介绍的梯度下降算法,虽然是一
22、种能让模型自动学习的方法,但又不可避免地引出了一个新的超参数,即模型自动学习的方法,但又不可避免地引出了一个新的超参数,即学习率。学习率是一个非常重要的超参数,因为它对模型的性能有学习率。学习率是一个非常重要的超参数,因为它对模型的性能有显著的影响。太小的学习率会使模型的学习缓慢,而太大的学习率显著的影响。太小的学习率会使模型的学习缓慢,而太大的学习率有可能导致跨过希望得到的较优点,如图有可能导致跨过希望得到的较优点,如图6-56-5所示,无法达到损失值所示,无法达到损失值的最小点。的最小点。损失值通常是高度敏感于参数空间中某些方向的,也就是梯度下降的方损失值通常是高度敏感于参数空间中某些方向
23、的,也就是梯度下降的方向,它不能漫无目的地迭代。虽然前面所说的带动量的梯度下降学习算向,它不能漫无目的地迭代。虽然前面所说的带动量的梯度下降学习算法可以在一定程度上缓解这些问题,但这样做的代价是引入了另一个超法可以在一定程度上缓解这些问题,但这样做的代价是引入了另一个超参数,即动量参数,这又增加了工作量。参数,即动量参数,这又增加了工作量。图图6-5 损失函数损失函数6.3.1 6.3.1 AdaGradAdaGrad算法算法AdaGrad算法流程如图算法流程如图6-6所示,学习率所示,学习率独立地应用于模型所有的参数。独立地应用于模型所有的参数。在损失函数上,拥有最大偏导数的参数相应地拥有一
24、个较大的学习率使之在损失函数上,拥有最大偏导数的参数相应地拥有一个较大的学习率使之能够快速地下降,而具有小偏导值的参数就获得一个小学习率。值得注意能够快速地下降,而具有小偏导值的参数就获得一个小学习率。值得注意的是,算法中为了数值计算的稳定增加了一个平滑值的是,算法中为了数值计算的稳定增加了一个平滑值。该参数避免了计算。该参数避免了计算过程中分母可能为零的情况发生。过程中分母可能为零的情况发生。图图6-6 AdaGrad算法流程算法流程RMSProp算法优化了算法优化了AdaGrad,改变梯度积累为指数加权的移动平均。,改变梯度积累为指数加权的移动平均。AdaGrad旨在应用于凸问题时快速收敛
25、(关于凸优化的知识超出了本书的范围,读旨在应用于凸问题时快速收敛(关于凸优化的知识超出了本书的范围,读者可以参考凸优化的相关书籍)。者可以参考凸优化的相关书籍)。AdaGrad根据平方梯度的整个历史收缩学根据平方梯度的整个历史收缩学习率,会使得学习率在达到较优结果前就变得太小了。而习率,会使得学习率在达到较优结果前就变得太小了。而RMSProp使用指数使用指数衰减平均以丢弃遥远过去的历史值,从而避免了过大衰减的问题,使其能够衰减平均以丢弃遥远过去的历史值,从而避免了过大衰减的问题,使其能够找到较优值,并且快速收敛。找到较优值,并且快速收敛。RMSProp的标准算法形式如图的标准算法形式如图6-
展开阅读全文