关于神经网络的调参经验技巧和调参顺序
网络简历要简洁明了,突出关键技能和经验。 #生活技巧# #职场生存技巧# #网络求职攻略#
文章目录 前言一、写在前面超参数和参数区分超参数选取尺度的考虑 二、调参顺序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尝试起
可选的几个常用值:
判断依据就是是验证集的误差(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,所以还是要把大部分的精力放在认识水平的提高上
网址:关于神经网络的调参经验技巧和调参顺序 https://www.yuejiaxmz.com/news/view/374225
相关内容
神经网络调参总结GAN的训练技巧:炼丹师养成计划 ——生成式对抗网络训练、调参和改进
基于神经网络的智能虚拟助手研究
对循环神经网络(RNN)中time step的理解
AI = 神经网络?这8个技术就不是!
【计算巢】移动网络优化技巧:提升用户体验的关键
网上购物(网购)经验技巧及防骗知识.doc
经络调理六步运糖法的提升
Matlab代码实践——BP神经网络
Tensorflow笔记之【神经网络的优化】