关于神经网络的调参经验技巧和调参顺序 您所在的位置:网站首页 学篮球的顺序有哪些 关于神经网络的调参经验技巧和调参顺序

关于神经网络的调参经验技巧和调参顺序

2024-07-03 22:04| 来源: 网络整理| 查看: 265

文章目录 前言一、写在前面超参数和参数区分超参数选取尺度的考虑 二、调参顺序1.learning rate2.batch size3.其他参数3.1Hidden Units(隐含层单元数)3.2epoch3.3L1、L23.4droupout3.5神经元层数,每层神经元个数 三、一句总结

前言 一、模型方面基本上都做得非常好了,因此真正需要调的参数其实并不多了,或者说调很多参数实际带来的提升都非常小了。

二、在训练一个深度学习模型的过程中,超参数选择什么最优,这是一个基于实验和经验的过程。需要不停的尝试,直到找到合适的参数值。 调参就是trial-and-error,没有其他捷径可以走,唯一的区别是有些人盲目的尝试, 有些人思考后再尝试.。快速尝试, 快速纠错这是调参的关键。 一、写在前面 超参数和参数区分

超参数:如学习率α、网络层数、每层隐藏单元数、学习率衰减值、mini-batch等需要人工选取的参数。

参数:这里所指的参数另外一种说法就是权重,需要被训练的参数。比如: W ∗ X + b W*X+b W∗X+b ,这里W、b就是参数。

超参数选取尺度的考虑

每一种超参数考虑的尺度是不一样的。比如隐藏层数、隐藏层单元数肯定是以线性尺度进行搜索。而如果是学习率α,就需要取对数了,因为学习率有可能从0.00001到0.1之间,因此选用对数搜索尺度更加合理。

二、调参顺序 1.learning rate

学习速率是最为重要的超参数

初始学习率很重要,学习率的变化策略也很重要。 参数更新时的学习率选择,需要根据尝试不同的学习率来确定。 可以画出损失函数随迭代次数的收敛图,选取学习率能使得代价函数收敛到最低的位置。

一个好的起点是从0.01尝试起 可选的几个常用值:

0.010.0010.00010.000010.000001

判断依据就是是验证集的误差(validation error)

2.batch size

当我们使用的梯度下降是建立在batch gradient decent基础之上时,合适的batch size对模型的优化是比较重要的。

这个参数倒不需要微调,在一个大致数量即可,常取 2 n 2^n 2n(GPU对2的幂次的batch可以发挥更佳的性能)。但是太大的batch size会受GPU显存的限制,并且无限接近full batch的行为,速度会慢,所以不能无限增大; 也不能太小,太小了以后可能算法永远不会收敛。

一般情况下,可选的常用值:1,2,4,8,16,32,64,128,256

3.其他参数 3.1Hidden Units(隐含层单元数)

解决的问题的模型越复杂则用越多hidden units,但是要适度,因为太大的模型会导致过拟合。

通常来说3层的隐含层比2层的好,但是继续再深到4,5,6层……就没什么明显效果了(一个例外情况是CNN)

3.2epoch

应该要和模型表现搭配。如果模型已经过拟合了,就没必要继续跑了;相反,如果epoch太小,你epoch跑完了,模型的loss还在下降,模型还在优化,那么这个epoch就太小了,应该增加。

如果不想手动设置epoch数量,我们可以使用Early Stopping

3.3L1、L2

我们可以用可以用L1、L2等惩罚项的方法来防止过度拟合,所以调整正则化的参数可以根据模型表现来,过拟合的时候可以适当加大系数,非过拟合的时候可不调这个参数,毕竟跑一次模型得花不少时间。

3.4droupout

随机失活率一般设置为0.5。对越大越复杂的隐藏层,意味着过度拟合的可能性越大,所以失活率设置越高。

需要注意的是,除非算法过拟合,不然最好不需要用droupout等方法

3.5神经元层数,每层神经元个数

不应该因为害怕出现过拟合而使用小网络。相反,应该进尽可能使用大网络,然后使用正则化技巧来控制过拟合。

三、一句总结

调参可以说是一种无奈,理论认识很深的时候,参数就是so easy,所以还是要把大部分的精力放在认识水平的提高上



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有