位置: IT常识 - 正文

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

发布时间:2024-01-17
深度学习--超参数(持续更新) 目录超参数(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 自动化测试)

  • 工商年报资产状况纳税总额怎么计算?
  • 上下班出了事故算不算工伤
  • 免征增值税和增值税区别
  • 住房贷款专项扣除
  • 万元版增值税发票最多可以开多少
  • 非营利性代收代付费用会计处理怎么做?
  • 抵扣上月留抵税额的分录
  • 以非现金资产清偿债务的会计处理
  • 外购的自用小轿车
  • 非独立核算的分公司如何报税
  • 股东变更没有公章和营业执照怎么办
  • 固定资产减值准备增加记哪方
  • 电子税票号码是那个
  • 开专票需要备注吗
  • 如何处理填写错题的问题
  • 财务报表年报和季报必须一样吗
  • 12月计提税金
  • 跨年度主营业务收入错账调整
  • 支付知识产权服务费账务处理
  • 建安企业收取管理费虚开怎么处理
  • 苹果mac os x 怎样打开DVD播放程序
  • win11隐藏图标怎么弄出来
  • 税金及附加包括所得税费用吗
  • 固定资产清理会发生什么费用
  • 超市一般纳税人账务处理
  • 怎么获得win10纯净版
  • ros source
  • 长期待摊费用与预付账款的区别
  • 企业收到分红款,要怎么处理才合理
  • 火山口湖成因
  • 自己组装产品再卖掉
  • 注册资金抽回
  • 扩散分类
  • 超过离线开票限定时间怎么办
  • 定额发票借给别人盖别人店的章可以吗
  • 账户验证是什么意思
  • 股东撤资怎么做账
  • 小规模纳税人的增值税账务处理
  • 摊销结束后
  • phpcms专题页面模板
  • 成本费用利润率越高越好吗
  • 航空公司可以开发票吗
  • 电子发票的开具开具方式是?
  • 内账的账务处理
  • 提交表单数据有哪几种方法,php如何获取表单提交的数据
  • sqlserver导入导出数据库
  • 金税四期主要监控的内容
  • 什么内容的发票可以报销
  • 公司充话费
  • 税金及附加是什么科目编号
  • 预付卡销售成品油会计分录
  • 分公司抬头发票总公司可以抵扣吗
  • 法人存入公户的钱摘要
  • 小微企业税控盘维护费每年都要交吗
  • 整个期间影响损耗的因素
  • 未达起征点的收入怎么入账
  • 老项目简易征收税率
  • linux rpm包怎么安装
  • centos7阿里云yum源
  • 记一次因线上mysql优化器误判引起慢查询事件
  • 如何看xp系统
  • unix系统复制命令
  • 安装fedora33
  • 磁盘清理win10
  • win7任务栏快捷启动如何设置
  • WIN10家庭版系统怎么禁用Device
  • linux的含义
  • win7桌面图标靠右
  • js脚本使用
  • nodejs制作网站
  • ubuntu nodejs
  • python爬虫类
  • 老板思维案例
  • python二分查找非递归
  • 使用jQuery给input标签设置默认值
  • Mac Error Create Android Project - “Errors running builder 'Android Resource Manager' on project”
  • 国家税务总局石棉县税务局
  • 吉林省电子税务局操作手册
  • 麻将 空白
  • 公司财务专用章的用途
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号