深度学习之超参数调试

前言

           以下内容是个人学习之后的感悟,转载请注明出处~

超参数调试

  在深度学习中,超参数有很多,比如学习率α、使用momentum或Adam优化算法的参数(β1,β2,ε)、层数layers、不同层隐藏

单元数hidden units、学习率衰退、mini=batch的大小等。其中一些超参数比其他参数重要,其优先级可以分为以下几级,如图,红色

框最优先,橙色次之,紫色再次之,最后没有框住的一般直接取经验值(当然你也可以自己取)。

  那么如何来调试超参数呢?

  以下图的2维超参数为例(即只调两个超参数,当然有时候需要调的超参数很多时,就需要很多维,不便画出)首先可以在一定的范

围内对这两个超参数随机取值(如图中黑点),若发现其中几个黑点的效果最好,则缩小范围(即蓝色方框)进行细化参数,寻找最适合

的超参数。此法从粗略搜索再到精密搜索,可以达到很好的效果。

  上面提到的随机取值,并非是在有效值范围内的随机均匀取值,而是选择合适的标尺。比如对于隐藏单元数n和隐藏层数L,如下图所

示,其合适的标尺恰好是在有效范围内均匀取值,可以实现很好的调试效果。

  然而,这对某些超参数是不适用的,比如学习率α,其范围在0.0001到1之间,有经验的我们怀疑α有很大可能在0.0001到0.1之间,但

是如果随机均匀取值,那么在0.1到1之间将用去90%的资源,这看上去不对啊,资源没有用在刀刃上。因此,我们需要选择更加合适的标

尺——对数标尺,分别取0.0001、0.001、0.01、0.1、1,这样可以充分利用资源,达到理想的效果。当然,如果你怀疑α是在0.9到0.999之

间,那么(1-α)就在0.1到0.001之间,其实做法是一样的。

  有时候,你训练好超参数不久,你的数据在逐渐的改变,意味着之前训练好的超参数不再适用于现今的数据,那么该如何做呢?我们需

要经常照看模型。一般有以下两种方式,第一种是只有一个模型,如下图中左边所示,该模型的代价函数随时间的变化而变化,我们需要不

断调整其超参数,使曲线不上升;第二种就是建许多个模型,如下图中右边所示,每个模型的代价函数随时间的变化而变化,我们只需要挑

当时表现比较好的模型用于预测数据即可。可以看出,在计算量允许的情况下,第二种方式是非常好的。

以上是全部内容,如果有什么地方不对,请在下面留言,谢谢~

时间: 2024-08-28 09:35:00

深度学习之超参数调试的相关文章

深度学习模型超参数搜索实用指南

要知道,与机器学习模型不同,深度学习模型里面充满了各种超参数.而且,并非所有参数变量都能对模型的学习过程产生同样的贡献. 考虑到这种额外的复杂性,在一个多维空间中找到这些参数变量的最佳配置并不是件容易的事情. 每一位科学家和研究人员,都希望在现有的资源条件下(计算.金钱和时间),找到最佳的模型. 通常情况下,研究人员和业余爱好者会在开发的最后阶段尝试一种搜索策略.这可能会有助改进他们辛辛苦训练出来的模型. 此外,在半自动/全自动深度学习过程中,超参数搜索也是的一个非常重要的阶段. 超参数到底是什

吴恩达《深度学习》第二门课(3)超参数调试、Batch正则化和程序框架

3.1调试处理 (1)不同超参数调试的优先级是不一样的,如下图中的一些超参数,首先最重要的应该是学习率α(红色圈出),然后是Momentum算法的β.隐藏层单元数.mini-batch size(黄色圈出).再之后是Layer.learning rate decay(紫色圈出).最后是Adam算法中的β1.β2.ε. (2)用随机取值代替网格点取值.下图左边是网格点取值,如果二维参数中,一个参数调试的影响特别小,那么虽然取了25个点,其实只相当于取了5个不同的点:而右图中随机取值取了多少个点就代

吴恩达-深度学习-课程笔记-8: 超参数调试、Batch正则化和softmax( Week 3 )

1 调试处理( tuning process ) 如下图所示,ng认为学习速率α是需要调试的最重要的超参数. 其次重要的是momentum算法的β参数(一般设为0.9),隐藏单元数和mini-batch的大小. 第三重要的是神经网络的层数和学习率衰减 adam算法的三个参数一般不调整,设定为0.9, 0.999, 10^-8. 注意这些直觉是ng的经验,ng自己说了,可能其它的深度学习研究者是不这么认为的. 那么如何选择参数呢?下面介绍两个策略,随机搜索和精细搜索. 早一代的机器学习算法中,如下

深度学习——超参数调试

1. 超参数的重要性级别:红->桔->紫 2. 如何调整参数 2.1 不要用grid来设置选择,因为不同参数的重要性不同 参数的选择范围从一个比较大的,到后来一个较小的 3. 为超参数选择合适的范围 3.1 uniform选择:如每层的节点数或网络层数.但并不是适用于所有超参数 3.2 scale的方法:比如选择学习率 如果在[0.0001,1]之间均匀选择,那么其实90%的数据是来自于[0.1,1],10%是来自[0.0001,0.1].所以,更合理的方法应该是 把[0.0001,1]转换成

第九节,改善深层神经网络:超参数调试、正则化以优化(下)

一 批标准化 (batch normalization)        部分内容来自: Batch Normalization 批标准化 深度学习Deep Learning(05):Batch Normalization(BN)批标准化 参考论文:http://jmlr.org/proceedings/papers/v37/ioffe15.pdf 2015年Google提出的Batch Normalization 训练深层的神经网络很复杂,因为训练时每一层输入的分布在变化,导致训练过程中的饱和,

改善深层神经网络:超参数调试、正则化及优化

第一周   深度学习的实用层面 1.1 训练.验证.测试集 应用机器学习是个高度迭代的过程:想法--->编码--->实验 (1)神经网络的层数 (2)隐含层神经元个数 (3)学习率 (4)激励函数 小规模数据:训练集70%,验证集30%   或者 训练60% 验证20% 测试20% 大规模数据:训练90%以上 注:可以没有测试集,验证集用于检测各种算法模型,选出最好的,验证集和测试集必须来源于同一分布 1.2 偏差.方差 人眼识别错误率(最优误差,贝叶斯误差)0%左右,训练集验证集来源于同一分

]DeepLearning.ai学习笔记(二)改善深层神经网络:超参数调试、正则化以及优化--Week2优化算法

1. Mini batch梯度下降法 介绍 假设我们的数据量非常多,达到了500万以上,那么此时如果按照传统的梯度下降算法,那么训练模型所花费的时间将非常巨大,所以我们对数据做如下处理: 如图所示,我们以1000为单位,将数据进行划分,令$x^{\{1\}}=\{x^{(1)},x^{(2)}……x http://pic.cnhubei.com/space.php?uid=1132&do=album&id=825921http://pic.cnhubei.com/space.php?uid

超参数调试、Batch正则化和编程框架

原文地址:https://www.cnblogs.com/nxf-rabbit75/p/9846510.html

基于Spark的异构分布式深度学习平台

导读:本文介绍百度基于Spark的异构分布式深度学习系统,把Spark与深度学习平台PADDLE结合起来解决PADDLE与业务逻辑间的数据通路问题,在此基础上使用GPU与FPGA异构计算提升每台机器的数据处理能力,使用YARN对异构资源做分配,支持Multi-Tenancy,让资源的使用更有效. 深层神经网络技术最近几年取得了巨大的突破,特别在语音和图像识别应用上有质的飞跃,已经被验证能够使用到许多业务上.如何大规模分布式地执行深度学习程序,使其更好地支持不同的业务线成为当务之急.在过去两年,百