关于神经网络的调参经验技巧和调参顺序 | 您所在的位置:网站首页 › 学篮球的顺序有哪些 › 关于神经网络的调参经验技巧和调参顺序 |
文章目录
前言一、写在前面超参数和参数区分超参数选取尺度的考虑
二、调参顺序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 实验室设备网 版权所有 |