深度学习笔记(11) 超参数调试

  • 1. 选择合适的范围
  • 2. 超参数调试实践

1. 选择合适的范围

关于训练深度最难的事情之一是要处理的参数的数量
学习速率 a 到 Momentum(动量梯度下降法)的参数 β
如果使用Momentum或Adam优化算法的参数,β1,β2和ε
还得选择层数
也许还得选择不同层中隐藏单元的数量
也许还想使用学习率衰减
使用的不是单一的学习率a,可能还需要选择mini-batch的大小

最为广泛的学习应用是a,学习速率是需要调试的最重要的超参数
例如Momentum参数β,0.9就是个很好的默认值
当应用Adam算法时,一般从不调试β1,β2和ε,总是选定其分别为0.90.99910 -8
还会调试mini-batch的大小,以确保最优算法运行有效


当给超参数取值时

  • 采用由粗糙到精细的策略
    通过试验超参数的不同取值,可以选择对训练集目标而言的最优值或对于开发集而言的最优值,或在超参搜索过程中最想优化的东西
  • 随机取值可以提升搜索效率
    随机取值并不是在有效范围内的随机均匀取值,而是选择合适的标尺

    假设要选取隐藏单元的数量n[l]
    假设选取的取值范围是从50到100中某点
    这种情况下,在从50-100的数轴上可以随机在其取点
    这是一个搜索特定超参数的很直观的方式

    如果要选取神经网络的层数L
    也许会选择层数为2到4中的某个值,顺着2,3,4随机均匀取样才比较合理
    这是在几个在考虑范围内随机均匀取值的例子,这些取值还蛮合理的
    但对某些超参数而言不适用

    假设在搜索超参数a(学习速率),假设怀疑其值最小是0.0001或最大是1
    如果画一条从0.0001到1的数轴,沿其随机均匀取值
    那90%的数值将会落在0.1到1之间
    反而,用对数标尺搜索超参数的方式会更合理
    因此这里不使用线性轴
    分别依次取0.0001,0.001,0.01,0.1,1,在对数轴上均匀随机取点
    在Python中,可以这样做,使

    import numpy as np
    import mathr = -4 * np.random.rand()
    a = math.pow( 10, r )
    

    那么a∈[10-4,100]

另一个棘手的例子是给β 取值,用于计算指数的加权平均值
假设认为β是0.9到0.999之间的某个值,当计算指数的加权平均值时
取0.9就像在10个值中计算平均值
有点类似于计算10天的温度平均值
而取0.999就是在1000个值中取平均
不要随机均匀在此区间取值

所以最好的方法就是,探究1-β,此值在0.1到0.001区间内
设定了1-β=10r,β=1-10r
在这里颠倒了大小,左边的是最大值,右边的是最小值
所以要做的就是在[-3,-1]里随机均匀的给 r 取值


2. 超参数调试实践


如果拥有足够的计算机去平行试验许多模型:
那绝对采用鱼子酱方式,尝试许多不同的超参数

如果没有许多计算资源或足够的CPU和GPU下:
采用熊猫方式,在小批量的训练过程中,耐心地调试学习率等


参考:

《神经网络和深度学习》视频课程


相关推荐:

深度学习笔记(10) 优化算法(二)
深度学习笔记(9) 优化算法(一)
深度学习笔记(8) 实践层面(三)
深度学习笔记(7) 实践层面(二)
深度学习笔记(6) 实践层面(一)


谢谢!

深度学习笔记(11) 超参数调试相关推荐

  1. 2.3)深度学习笔记:超参数调试、Batch正则化和程序框架

    目录 1)Tuning Process 2)Using an appropriate scale to pick hyperparameters 3)Hyperparameters tuning in ...

  2. HALCON 21.11:深度学习笔记---设置超参数(5)

    HALCON 21.11:深度学习笔记---设置超参数(5) HALCON 21.11.0.0中,实现了深度学习方法.关于超参数的有关设置内容如下: 不同的DL方法是为不同的任务设计的,它们的构建方式 ...

  3. HALCON 20.11:深度学习笔记(11)---目标检测

    HALCON 20.11:深度学习笔记(11)---目标检测 HALCON 20.11.0.0中,实现了深度学习方法. 本章讲解了如何使用基于深度学习的对象检测. 通过对象检测,我们希望在图像中找到不 ...

  4. DL之模型调参:深度学习算法模型优化参数之对深度学习模型的超参数采用网格搜索进行模型调优(建议收藏)

    DL之模型调参:深度学习算法模型优化参数之对深度学习模型的超参数采用网格搜索进行模型调优(建议收藏) 目录 神经网络的参数调优 1.神经网络的通病-各种参数随机性 2.评估模型学习能力

  5. 【深度学习基础】超参数介绍

    深度学习基础: 性能评估指标 超参数介绍 损失函数 在深度神经网络中,超参数的调整是一项必备技能,通过观察在训练过程中的监测指标如损失loss和准确率来判断当前模型处于什么样的训练状态,及时调整超参数 ...

  6. 吴恩达老师深度学习视频课笔记:超参数调试、Batch正则化和程序框架

            Tuning process(调试处理):神经网络的调整会涉及到许多不同超参数的设置.需要调试的重要超参数一般包括:学习率.momentum.mini-batch size.隐藏单元( ...

  7. 深度学习中的超参数以及两个重要的超参数——学习率和batch_size

    前言   在深度学习中有很多参数是我们在训练模型之前自己设定的,我们把这些参数就称为--超参数.其中主要超参数包括了:学习率.batch_size.梯度下降法循环的数量.隐藏层数目.隐藏层单元数目.激 ...

  8. [深度学习]动手学深度学习笔记-11

    Task06--梯度下降 11.1 梯度下降法 梯度 导数我们都非常熟悉,既可以表示某点的切线斜率,也可以表示某点变化率,公式如下表示: f′(x)=lim⁡Δx→0ΔyΔx=lim⁡Δx→0f(x+ ...

  9. python半径为2.11的圆球的体积_python 学习笔记 11 -- 使用参数使你的程序变得更性感...

    当然,在之前的系列中,我已介绍如何给 Python 脚本传参,当然,今天不会继续介绍这么无聊的东东.首先使用 python 的sys.argv 传参的话,就固定了参数的个数.顺序以及格式,这么死的规定 ...

  10. python函数参数学习_python学习笔记-11.函数参数和返回值进阶

    1. 函数参数和返回值的作用 函数根据有没有参数以及有没有返回值,可以相互组合,共有4种形式: 无参数,无返回值 无参数,有返回值 有参数,无返回值 有参数,有返回值 定义函数时,是否接收参数,或者是 ...

最新文章

  1. [二十五]JavaIO之RandomAccessFile
  2. 【网址收藏】Hadoop3.2.1 【 YARN 】源码分析 : ResourceLocalizationService解析
  3. android bitmap drawable 互转
  4. 杭电计算机研究院排名,2020浙江省大学最新10强排名,浙大第1,杭电第5
  5. redis常用命令getex_redis常用命令大全
  6. keil删除工程_RTT 是如何管理和构建工程的?
  7. 国外计算机cpu排行,处理器天梯图2020 电脑cpu处理器性能排行榜
  8. cubic 如何用matlab,求助高手解决cubic绘图问题
  9. 企业邮箱密码怎么找回?
  10. 最小攻击超过最大攻击_贪婪洞窟攻击力解析 最大攻击与最小攻击对比分析
  11. 计算机视觉基础知识复习
  12. 2022细胞生物学实验原理复习资料汇总
  13. Android大厂面试真题解析大全,安卓未来路在何方
  14. Matlab将图像序列合成为视频
  15. 【TCP专题】TCP的可靠性传输
  16. 华科再次拿下华为“天才少年”最高薪!201万给到通信应届博士生
  17. 干货!小样本分子性质预测新方法——性质感知的关系网络
  18. java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:MaxGCPauseMillis=100/虚拟机调优
  19. MODIS地表温度数据11A2的质量控制
  20. LSM(Log-Structured Merge Tree)

热门文章

  1. iOS小技巧---改变uisearchbar中的cancel按钮的文字、取消clearButton
  2. 用Semisynchronous Replication半同步,mk-table-checksum数据同步一致性检查,监控主从同步运行状态的脚本等方式加强SQL性能和数据审核...
  3. 夏天快到了,教你怎样干掉讨厌的蚊子『转』
  4. SQL Server相关知识
  5. 《JSON笔记之二》----封装JSONUtil
  6. php 导出excel类,php 导出excel类
  7. 迟到的 cocoapod 版本适配 之网利宝
  8. Xcode 创建自定义模板
  9. 关于js数组的六种算法---水桶排序,冒泡排序,选择排序,快速排序,插入排序,希尔排序的理解。...
  10. AHK 中的字符串拼接和遍历操作