美文网首页
深度学习调参

深度学习调参

作者: 南国_ | 来源:发表于2021-03-04 09:34 被阅读0次

一、建立评价指标

  • 最好是一个指标
回归问题:均方差mse
分类问题:F1值(准确率+召回率)
标题生成:BLEU
  • 指标是容易理解的
  • 指标的范围最好是在(0,1)之间,并且最好是线性的

二、建立合理的预期

 在任务执行之前,要对任务有合理的预期,知道行业内的最高值是多少,对专业领域知识熟悉。

  • 以看图说话项目为例
    项目分为四个步骤:
     1.目标识别
     2.目标动作识别
     3.场景理解
     4.语音合成

所以,项目预期的\color{red}{最佳效果}为:目标检测效果动作识别效果场景理解效果*文本合成效果 = 0.36 * 0.88 * 0.66 * 0.753 = 0.16

三、建立合理的数据集

 测试集中的数据要和训练集中数据保持一致。
 测试集中的数据要出现在训练集中,如果训练集中都没有,需要将新的数据添加到训练集中。

四、判断是否欠/过拟合, 以及消除欠/过拟合

 首先确定训练集数据分布和测试集训练分布是正确的,再判断网络是过拟合or欠拟合。

1)欠拟合
  • 第一种欠拟合网络


    欠拟合网络曲线(1).png
  • 解决方案:
    1.增加训练的次数(epoch)
    2.增大batch-size
    3.调整激活函数(比如说使用Relu代替SGD)
    4.调整优化算法:使用更好的优化算法、增大学习率

  • 第二种欠拟合网络


    欠拟合网络曲线(2).png
  • 解决方案:
    1.增加网络复杂度
      增加层数
      增加卷积层输出的通道数
      增加全连接层的节点数

 2.检查数据集分布:查看训练数据集和测试数据集是否有相对于的特征。
   增加训练集中数据的种类,使得训练数据可以覆盖所有测试数据的特征;
   使用数据增强;

2)过拟合
  • 第一种过拟合网络loss曲线


    过拟合曲线(1).png
  • 解决方案:
    Early Stopping

  • 第二种过拟合网络loss曲线


    过拟合曲线(2).png
  • 解决方案:
     1.检查数据集分布:查看训练数据集和测试数据集是否有相对于的特征。
       增加训练集中数据的种类,使得训练数据可以覆盖所有测试数据的特征;
       使用数据增强;
     2.减小网络复杂度
     3.添加正则化
     4.增加Dropout层
     5.添加Batch Normalization

5.超参数优化

  • 超参数:
     层数
当网络的层说比较多的情况下,网络对应的损失函数具有非常多的局部最优解,而且这些局部最优解和全局最优解的值非常接近。
根据以上理论,我们应该让网络的层次比较多,避免网络收敛得到一个不好的局部最优解。

 每层神经元个数:整个网络呈纺锤形
 激活函数
 学习率:从0.01开始尝试
 正则化系数
 mini batch大小:从32开始尝试

  Batch Size会影响训练过程的计算资源需求、速度和迭代次数。
较大的Batch Size允许在训练中利用矩阵乘法的计算增强,但需要以更多的内存用于训练过程为代价;
较小的Batch Size会在误差计算中产生更多噪声,并且通常在防止训练过程停止在局部最小值时更有有。
因此,增加Batch Size会提升训练速度,但从放着局部最小值的角度而言,应该避免使用太大的Batch Size

 训练次数Epochs

需要通过观察训练过程中Validation Error的变化来估计正确的迭代次数。只要
Validation Error不断减少,就可以对模型继续迭代。
通过Early Stopping的技术可以自动确定何时停止训练模型。
如果验证错误在过去10个或20个时期内没有改善,则停止训练。
  • 优化方法:
     网络搜索
     随机搜索
     贝叶斯优化:通过历史先验信息,进行参数选择
     进化算法
     神经架构搜索
     见视频

相关文章

  • 深度学习调参

    一、建立评价指标 最好是一个指标 指标是容易理解的 指标的范围最好是在(0,1)之间,并且最好是线性的 二、建立合...

  • 深度学习调参技巧 调参trick

    |公|众|号|包包算法笔记| 背景 事情的起因其实这样,实验室老同学的论文要冲分,问我有没有啥在NN上,基本都有用...

  • 【DL碎片4】深度学习中的的超参数调节

    深度学习中的的超参数调节 我们平时一直都在说“调参、调参”,但实际上,不是调“参数”,而是调“超参数”。 一、参数...

  • 深度学习调参技巧

    对于大数据集dropout=0.5,小数据集可能0.7,0.8

  • 深度学习_调参经验

    面对一个图像分类问题,可以有以下步骤: 1.建立一个简单的CNN模型,一方面能够快速地run一个模型,以了解这个任...

  • 深度学习调参技巧

    从粗到细 实践中,一般先进行初步范围搜索,然后根据好结果出现的地方,再缩小范围进行更精细的搜索。 先参考相关论文,...

  • 深度学习调参技巧

    训练技巧对深度学习来说是非常重要的,作为一门实验性质很强的科学,同样的网络结构使用不同的训练方法训练,结果可能会有...

  • 深度学习网络调参

    从各处窜来的系统性的调参方式和papers,为了做记录和总结,非原创。 一、参数角度 1.学习率 learni...

  • 深度学习调参经验汇总

    此简书账号已不更新,关于移步至我的另外两个博客:https://blog.csdn.net/u014157632和...

  • 深度模型训练方法(二)

    在文章<深度模型训练方法>中提到,深度模型中拥有很多超参,模型的训练其实就是一个调超参的过程。而在调超参时,我们主...

网友评论

      本文标题:深度学习调参

      本文链接:https://www.haomeiwen.com/subject/nknafltx.html