位置: IT常识 - 正文

深度学习--超参数(持续更新)(超参数有哪些调优方法)

编辑:rootadmin
深度学习--超参数(持续更新) 目录超参数(Hyperparameter)一.模型参数和超参数的区别二.分类(一)网络参数1.网络层与层之间的交互方式(相加、相乘或者串接等)2.卷积核数量和卷积核尺寸3.神经网络层数(也称深度)layers3.1 深层神经网络隐藏层数4.隐藏层神经元个数hidden units5.输出神经元的编码方式6.神经元激活函数(二)优化参数1.学习率α(learning rate)1.1 学习因子下降参数(learning rate decay)2.批样本数量(batch size)3.不同优化器的参数3.1 动量梯度下降算法参数:β\betaβ3.2 Adagrad算法参数:ε\varepsilonε3.3 Adadelta算法参数:β\betaβ,ε\varepsilonε3.4 Adam算法参数:β1\beta_{1}β1​,β2\beta_{2}β2​,ε\varepsilonε4.损失函数及其可调参数(三)正则化参数1.正则化系数η2.权重衰减系数3.丢弃法比率(dropout)(四)其他1.迭代次数epoch2.k近邻法中的k(最相近的点的个数)3.k均值聚类中的簇数4.决策树模型中树的数量和树的深度5.矩阵分解中潜在因素的数量6.聚类方法里面类的个数7.话题模型里面话题的个数8.参加训练模型的数据规模三.超参数调优(一)优化原因(二)优化策略1.照看(babysitting,又叫试错)2.自动化超参数搜索方法2.1 网格搜索/穷举搜索(grid search)2.2 随机搜索3.微调(fine-turn)4.贝叶斯优化(三)过程(四)学习率调优1.原因2.说明:3.自动调节:4.tensorflow调整策略5.差分学习(differential learning)四.重要性排序(一)学习率α,损失函数上的可调参数(二)批样本数量,动量优化器的动量参数β(三)网络参数,Adam优化器的超参数,权重衰减系数,丢弃法比率五.部分超参数合适的范围超参数(Hyperparameter)一.模型参数和超参数的区别模型参数(Parameter):模型内部的配置变量,模型可以根据数据可以自动学习出的变量,自行根据数据进行驱动调整。 比如,深度学习的权重,偏差等。超参数:也是机器学习算法中的调优参数(tuning parameters)或框架参数,模型外部的配置,不需要数据来驱动,而是在训练前或者训练中人为进行设定和调整,一般需要为它根据已有或现有的经验指定“正确”的值。超参数不同,模型是不同的

推荐整理分享深度学习--超参数(持续更新)(超参数有哪些调优方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:超参数什么意思,超参数什么意思,超参数科技(深圳)有限公司,超参数什么意思,超参数科技(深圳)有限公司专利,什么叫超参数,什么是超参数,什么是超参数,内容如对您有帮助,希望把文章链接给更多的朋友!

机器学习中一直说的“调参”,实际上不是调“参数”,而是调“超参数”。

二.分类(一)网络参数1.网络层与层之间的交互方式(相加、相乘或者串接等)2.卷积核数量和卷积核尺寸

卷积核的核参数是模型参数

3.神经网络层数(也称深度)layers3.1 深层神经网络隐藏层数4.隐藏层神经元个数hidden units5.输出神经元的编码方式6.神经元激活函数(二)优化参数1.学习率α(learning rate)1.1 学习因子下降参数(learning rate decay)2.批样本数量(batch size)

(1)说明:

一个大的batch,可以充分利用矩阵、线性代数库来进行计算的加速,batch越小,则加速效果可能越不明显Batch太小还会导致更新进入局部最小值Batch太大了,权重的更新就会不那么频繁,导致优化过程太漫长

(2)选取:

根据数据集规模、设备计算能力去选取。因此,要采用一些可接受的(但不一定是最佳的)其他超参数值,然后尝试许多不同的小批量大小绘制准确度与时间的关系(这是实际运行时间,而不是循环次数)在快速的性能提升中选择最小的批量大小,之后可以继续优化其他超参数3.不同优化器的参数3.1 动量梯度下降算法参数:β\betaβ3.2 Adagrad算法参数:ε\varepsilonε3.3 Adadelta算法参数:β\betaβ,ε\varepsilonε3.4 Adam算法参数:β1\beta_{1}β1​,β2\beta_{2}β2​,ε\varepsilonε4.损失函数及其可调参数(三)正则化参数1.正则化系数η

增大η会导致更小的权值w,表示网络的复杂度更低;对数据的拟合较好,而在实际应用中,也验证了这一点。

2.权重衰减系数3.丢弃法比率(dropout)

Dropout 通过修改NN中隐藏层的神经元个数来防止NN的过拟合

(四)其他1.迭代次数epoch

No-improvement-in-n规则:

在训练的过程中,记录最佳的validation accuracy当连续10次epoch(或者更多次)没达到最佳accuracy时,你可以认为“不再提高”,此时使用early stoppingn即epoch的次数,可以根据实际情况取10、20、30…2.k近邻法中的k(最相近的点的个数)3.k均值聚类中的簇数4.决策树模型中树的数量和树的深度5.矩阵分解中潜在因素的数量6.聚类方法里面类的个数7.话题模型里面话题的个数8.参加训练模型的数据规模

方案:

从数据源头采集更多数据复制原有数据并加上随机噪声重采样根据当前数据集估计数据分布参数,使用该分布产生更多数据  三.超参数调优(一)优化原因本质上,这是模型优化寻找最优解和正则项之间的关系。网络模型优化调整的目的是为了寻找到全局最优解(或者相比更好的局部最优解),而正则项又希望模型尽量拟合到最优。两者通常情况下,存在一定的对立,但两者的目标是一致的,即最小化期望风险。模型优化希望最小化经验风险,而容易陷入过拟合,正则项用来约束模型复杂度。所以如何平衡两者之间的关系,得到最优或者较优的解就是超参数调整优化的目的。

为什么要做学习率调整? 学习率可以说是模型训练最为重要的超参数。通常情况下,一个或者一组优秀的学习率既能加速模型的训练,又能得到一个较优甚至最优的精度。过大或者过小的学习率会直接影响到模型的收敛。我们知道,当模型训练到一定程度的时候,损失将不再减少,这时候模型的一阶梯度接近零,对应Hessian 矩阵通常是两种情况:

正定,即所有特征值均为正,此时通常可以得到一个局部极小值,若这个局部极小值接近全局最小则模型已经能得到不错的性能了,但若差距很大,则模型性能还有待于提升,通常情况下后者在训练初最常见特征值有正有负,此时模型很可能陷入了鞍点,若陷入鞍点,模型性能表现就很差

以上两种情况在训练初期以及中期,此时若仍然以固定的学习率,会使模型陷入左右来回的震荡或者鞍点,无法继续优化。所以,学习率衰减或者增大能帮助模型有效的减少震荡或者逃离鞍点。

(二)优化策略1.照看(babysitting,又叫试错)

照看法被称为试错法或在学术领域称为研究生下降法。这种方法100%手动,遵循学习过程的所有步骤(从数据收集到特征图可视化),然后按顺序迭代超参数,直到耗尽时间或到截止日期或动机  

2.自动化超参数搜索方法

说明:

优秀的数据预处理合适的模型结构和功能优秀的训练策略和超参数合适的后处理操作严格的结果分析。AutoML的作用是帮助实现高效的模型构建和超参数调整  2.1 网格搜索/穷举搜索(grid search)

列出每个超参数的大致候选集合,利用这些集合进行逐项组合优化

优点:效果较好缺点:计算时间会随着超参数的数量指数级的增长,效率低下

若有两类超参数,每类超参数有3个待探索的值,对它们进行笛卡尔积后得到9个超参数组合

2.2 随机搜索深度学习--超参数(持续更新)(超参数有哪些调优方法)

对每个超参数定义一个分布函数来生成随机超参数

优点:效率更高缺点:不保证一定能找到比较好的超参数  3.微调(fine-turn)

顾名思义指稍微调整参数即可得到优秀的性能

在小数据集上,通常微调的效果比从头训练要好很多,因为在于数据量较小的前提下,训练更多参数容易导致过度拟合

(1)方法:

对最后的改动层使用较大的学习率,对未改动层以较小的学习率进行训练冻结除了顶部改动层以外的所有层参数

(2)微调为什么要先冻结底层,训练顶层?

对顶层进行训练,可以防止顶层糟糕的初始化。越底层的特征通常是越通用的特征,越往上其整体的高层次语义越完备

(3)如何针对数据集选取微调的方法?

数据和原数据集类似。只需修改最后的输出层,训练即可,训练过多参数容易过拟合数据和原数据集差异较大。可以在完成输出顶层的微调后,微调顶层往下一半的层数,进行微调  4.贝叶斯优化(三)过程首先对搜索空间进行一个先验性的假设猜想,即假设一种选择超参的方式然后不断优化更新概率模型最终的目标是找到验证集上误差最小的一组超参数  (四)学习率调优1.原因

学习率可以说是模型训练最为重要的超参数。通常情况下,一个或者一组优秀的学习率既能加速模型的训练,又能得到一个较优甚至最优的精度。过大或者过小的学习率会直接影响到模型的收敛。我们知道,当模型训练到一定程度的时候,损失将不再减少,这时候模型的一阶梯度接近零,对应Hessian 矩阵通常是两种情况:

正定,即所有特征值均为正,此时通常可以得到一个局部极小值,若这个局部极小值接近全局最小则模型已经能得到不错的性能了,但若差距很大,则模型性能还有待于提升,通常情况下后者在训练初最常见特征值有正有负,此时模型很可能陷入了鞍点,若陷入鞍点,模型性能表现就很差

以上两种情况在训练初期以及中期,此时若仍然以固定的学习率,会使模型陷入左右来回的震荡或者鞍点,无法继续优化。所以,学习率衰减或者增大能帮助模型有效的减少震荡或者逃离鞍点  

2.说明:其他超参数旨在提高测试集上的最终分类准确度,因此根据准确率选择它们。但是,学习率只是偶尔影响最终的分类准确性。它的主要目的是控制梯度下降中的步长,监测cost是检测步长是否过大的最佳方法。最后,训练早期阶段,高准确率往往意味着低差异,因此两者不会有太大差异。  3.自动调节:训练的过程中,记录最佳的accuracy,当连续10次epoch(或者更多次)没达到最佳accuracy时,可以认为“不再提高”可以选择让学习率减半(或1/10 ),让程序继续跑继续这个过程,直到learning rate变为原来的1/1024再终止程序  4.tensorflow调整策略

(1)exponential_decay

指数衰减是最常用的衰减方式这种方式简单直接在训练初期衰减较大利于收敛,在后期衰减较小利于精调

(2)piecewise_constant

分段设置学习率法可在不同阶段设置手动不同的学习率这种学习率重点在有利于精调

(3)polynomial_decay

若power小于1,则是开1/power次方,为蓝色线;绿色线为power大于1cycle决定是否在下降后重新上升的过程 5.差分学习(differential learning)

在训练期间为网络中的不同层设置不同的学习率的方法被称为差分学习

前几个层通常会包含非常细微的数据细节,比如线条和边缘,不希望改变这些细节并倾向于保留它的信息相比之下,在后面的层中,比如图中绿色的层:我们可以获得嘴巴、鼻子等详细特征,不需要保留它们

说明:

微调整个模型太昂贵,因为有些网络可能超过100层。因此,通常是一次对模型的一层进行微调但是,这要求具有顺序性,妨碍了并行性,并且需要多次通过数据集,导致过度拟合小数据集已经证明差分学习方法能够在各种NLP分类任务中提高准确度和降低错误率  四.重要性排序(一)学习率α,损失函数上的可调参数学习率:最重要的超参数,直接控制着训练中网络梯度更新的量级,直接影响着模型的有效容限能力损失函数上的可调参数:这些参数通常情况下需要结合实际的损失函数来调整,大部分情况下这些参数也能很直接的影响到模型的的有效容限能力。

这些损失一般可分成三类,

辅助损失结合常见的损失函数,起到辅助优化特征表达的作用。例如度量学习中的Center loss,通常结合交叉熵损失伴随一个权重完成一些特定的任务。这种情况下一般建议辅助损失值不高于或者不低于交叉熵损失值的两个数量级多任务模型的多个损失函数,每个损失函数之间或独立或相关,用于各自任务,这种情况取决于任务之间本身的相关性独立损失函数,这类损失通常会在特定的任务有显著性的效果。例如RetinaNet中的focal loss,其中的参数γ,α,对最终的效果会产生较大的影响。这类损失通常论文中会给出特定的建议值  (二)批样本数量,动量优化器的动量参数β批样本数量(batch size):批样本决定了数量梯度下降的方向。过小的批样本数量,极端情况下,例如batch size为1,即每个样本都去修正一次梯度方向,样本之间的差异越大越难以收敛。若网络中存在批归一化(batchnorm),batch size过小则更难以收敛,甚至垮掉。这是因为数据样本越少,统计量越不具有代表性,噪声也相应的增加过大的批样本数量,会使得梯度方向基本稳定,容易陷入局部最优解,降低精度一般参考范围会取在[1:1024]之间,当然这个不是绝对的,需要结合具体场景和样本情况动量优化器(Gradient Descent with Momentum)的动量衰减参数β:计算梯度的指数加权平均数,并利用该值来更新参数,设置为 0.9 是一个常见且效果不错的选择  (三)网络参数,Adam优化器的超参数,权重衰减系数,丢弃法比率

这些参数重要性放在最后并不等价于这些参数不重要。而是表示这些参数在大部分实践中不建议过多尝试

网络参数:通常情况下增加网络层数能增加模型的容限能力,但模型真正有效的容限能力还和样本数量和质量、层之间的关系等有关,所以一般情况下会选择先固定网络层数,调优到一定阶段或者有大量的硬件资源支持可以在网络深度上进行进一步调整Adam优化器的超参数:Adam优化器中的β1,β2,ϵ,常设为 0.9、0.999、10−8就会有不错的表现权重衰减系数:通常会有个建议值,例如0.0005,使用建议值即可,不必过多尝试丢弃法比率(dropout):通常会在全连接层之间使用防止过拟合,建议比率控制在[0.2,0.5]之间

使用dropout时需要特别注意两点:

在RNN中,如果直接放在memory cell中,循环会放大噪声,扰乱学习。一般会建议放在输入和输出层不建议dropout后直接跟上batchnorm,dropout很可能影响batchnorm计算统计量,导致方差偏移,这种情况下会使得推理阶段出现模型完全垮掉的极端情况  五.部分超参数合适的范围超参数建议范围注意事项卷积核尺寸[7x7],[5x5],[3x3],[1x1],[7x1,1X7]初始学习率SGD:[1e-2, 1e-1]momentum:[1e-3, 1e-2]Adagrad:[1e-3, 1e-2]Adadelta:[1e-2, 1e-1]RMSprop:[1e-3, 1e-2]Adam:[1e-3, 1e-2]Adamax:[1e-3, 1e-2]Nadam:[1e-3, 1e-2]这些范围通常是指从头开始训练的情况。若是微调,初始学习率可在降低一到两个数量级批样本数量[1,1024]当批样本数量过大(大于6000)或者等于1时,需要注意学习策略或者内部归一化方式的调整损失函数部分超参数多个损失函数之间,损失值之间尽量相近,不建议超过或者低于两个数量级这是指多个损失组合的情况,不一定完全正确。单个损失超参数需结合实际情况权重衰减系数[0, 1e-4]丢弃法比率[0, 0.5]

以上未完待更新,仅供个人学习,侵权联系删除,如有错误或不足之处可指出,以便改进。

本文链接地址:https://www.jiuchutong.com/zhishi/299752.html 转载请保留说明!

上一篇:OpenCV实战(16)——角点检测详解(opencv实战项目教程)

下一篇:Web自动化测试怎么做?Web自动化测试的详细流程和步骤(web 自动化测试)

  • 华为p40自带耳机吗(华为p40有耳机)

    华为p40自带耳机吗(华为p40有耳机)

  • 腾讯会议怎么打开麦克风(腾讯会议怎么打开视频摄像头)

    腾讯会议怎么打开麦克风(腾讯会议怎么打开视频摄像头)

  • opporeno4手机一共有几个摄像头(opporeno4手机有什么新功能)

    opporeno4手机一共有几个摄像头(opporeno4手机有什么新功能)

  • 支付宝不是好友可以聊天吗(支付宝不是好友怎么拉黑对方)

    支付宝不是好友可以聊天吗(支付宝不是好友怎么拉黑对方)

  • 手机只有关机才能充电怎么办(手机只有关机才能充进电)

    手机只有关机才能充电怎么办(手机只有关机才能充进电)

  • 微信怎么更换头像(微信怎么更换头像框图片)

    微信怎么更换头像(微信怎么更换头像框图片)

  • 华为手机如何强制分屏(华为手机如何强制刷机)

    华为手机如何强制分屏(华为手机如何强制刷机)

  • vivox23双引擎闪充在哪(vivox23双引擎闪充失灵)

    vivox23双引擎闪充在哪(vivox23双引擎闪充失灵)

  • 苹果ios11小白球怎么设置(苹果手机小白球消失了怎么显示出来)

    苹果ios11小白球怎么设置(苹果手机小白球消失了怎么显示出来)

  • 苹果信息有个感叹号什么意思(苹果信息有个感叹号在闪)

    苹果信息有个感叹号什么意思(苹果信息有个感叹号在闪)

  • 群主可以撤回超过两分钟的消息吗(群主可以撤回超过两分钟的视频吗)

    群主可以撤回超过两分钟的消息吗(群主可以撤回超过两分钟的视频吗)

  • 华为手机卡槽怎么打开(华为手机卡槽怎么取出来没有卡针)

    华为手机卡槽怎么打开(华为手机卡槽怎么取出来没有卡针)

  • ps背影效果怎么做(ps背影图)

    ps背影效果怎么做(ps背影图)

  • 苹果11怎么设置24小时制(苹果11怎么设置24小时到账)

    苹果11怎么设置24小时制(苹果11怎么设置24小时到账)

  • 抖音小店和橱窗的区别(抖音小店和橱窗带货哪个好做)

    抖音小店和橱窗的区别(抖音小店和橱窗带货哪个好做)

  • 快手私信删除能恢复吗(快手私信删除还能找到吗)

    快手私信删除能恢复吗(快手私信删除还能找到吗)

  • 小米5和6的区别(小米5跟小米6的区别)

    小米5和6的区别(小米5跟小米6的区别)

  • 拼多多销量是多久清零(拼多多销量多评价少是怎么回事)

    拼多多销量是多久清零(拼多多销量多评价少是怎么回事)

  • 麒麟980几纳米(麒麟980)

    麒麟980几纳米(麒麟980)

  • iphonex来电铃声突然变小(iphonex来电铃声突然变小怎么设置)

    iphonex来电铃声突然变小(iphonex来电铃声突然变小怎么设置)

  • wim文件是啥详细介绍(wim文件用什么软件打开)

    wim文件是啥详细介绍(wim文件用什么软件打开)

  • hpzipm12.exe是什么进程?hpzipm12.exe可以关闭吗?(hpp是什么文件)

    hpzipm12.exe是什么进程?hpzipm12.exe可以关闭吗?(hpp是什么文件)

  • springboot+chatgpt+chatUI Pro开发智能聊天工具

    springboot+chatgpt+chatUI Pro开发智能聊天工具

  • python怎么设置字体颜色(python怎么设置字符串宽度)

    python怎么设置字体颜色(python怎么设置字符串宽度)

  • python字典合并特性是什么(python如何合并字典)

    python字典合并特性是什么(python如何合并字典)

  • 一般纳税人劳务费税率是多少
  • 住房租金专项附加
  • 税控盘抵扣增值税有时间限制吗
  • 小规模纳税人代理记账一般多少钱
  • 进项税额加计抵扣账务处理
  • 一般纳税人销项开普票,进项票可以抵扣吗
  • 住宿发票专票可抵扣吗
  • 盘盈入库做什么分录
  • 备用金被盗怎么找回来
  • 制造业交新型墙体材料专项基金款分录
  • 以公司买房
  • 小规模纳税人零申报是每季度报吗
  • 食堂买的固定资产怎么帐务处理
  • 增值税哪些可以全额抵扣
  • 电费收入印花税如何计算
  • 从公司账户取现金
  • 附税分录怎么做?
  • 异地预缴本地申报流程
  • 组合销售带来的收益
  • 中药饮片加成率超的原因
  • 小规模的增值税怎么算
  • 收到发票对方已红冲是否退回?
  • 土地拍卖资金交到哪里
  • php b/s
  • 挂靠建筑公司没有票据怎么做账?
  • 增值税发票半年后能冲红
  • 保洁费入账
  • nodejs应用领域
  • twig里使用js变量的方法
  • 企业一次性取得所得税
  • jsonp解决跨域问题spring3.0
  • 非征期不能抄报
  • 未来社区政策支持
  • js快速入门教程
  • cuppath
  • php开发接口
  • 房地产企业季度所得税预缴扣除附加税吗
  • 待摊费用和预提费用属于什么账户
  • 小微企业能申请留抵退税吗?
  • 进口商品会计分录怎么写
  • 如何禁用笔记本键盘触摸板
  • phpcms v9网页禁止复制
  • 个人劳务报酬所得税税率
  • 非税收入票据可以跨年度使用吗
  • 小微企业财政政策
  • 怎样备份mysql数据库
  • 小额贷款在银行需要什么条件
  • 进口货物如何入账
  • 购入厂部用小汽车一部是管理费用吗
  • 支付的中介费进什么科目
  • 待抵扣进项税额和待认证进项税额的区别
  • 发行价格另支付发行费用
  • 本月没有认证的发票怎么做账
  • 账上的进项税额比申报多了怎么调账
  • 固定资产计提折旧的原则
  • 二手车融资租赁被骗怎么投诉
  • 工资达不到5000个人所得税
  • 怎么把应付账款冲平
  • 工程没钱也没有工资
  • 小企业的建账流程
  • mysqlvarchar汉字
  • mac上怎么取消itunes自动续费
  • solaris8+apache2+weblogic813+db2_82客户端+128 安装过程
  • 电脑重装系统步奏
  • 苹果官网
  • 一个mac多重
  • centos 怎么用
  • win7系统360浏览器收藏夹位置
  • win10系统自带浏览器在哪里
  • fragment懒加载原理
  • css百分比进度条
  • jQuery实现ctrl+enter(回车)提交表单
  • ie版本过低怎么升级win7
  • asp.net 4.8
  • 纳税工会经费申请怎么写
  • 陕西省电子税务局
  • 北京市社会团体
  • 天津国税电话
  • 遵从和尊重
  • 税率的计算器在线计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设