57.1 批样本数量,动量优化器的动量参数β
- 批样本数量,动量优化器(Gradient Descent with Momentum)的动量参数*β
- 批样本决定了数量梯度下降的方向。
- 过小的批数量,极端情况下,例如batch size为1,即每个样本都去修正一次梯度方向,样本之间的差异越大越难以收敛。
- 若网络中存在批归一化(batchnorm),batch size过小则更难以收敛,甚至垮掉。
- 这是因为数据样本越少,统计量越不具有代表性,噪声也相应的增加。
- 而过大的batch size,会使得梯度方向基本稳定,容易陷入局部最优解,降低精度。
- 一般参考范围会取在[1:1024]之间,当然这个不是绝对的,需要结合具体场景和样本情况;
- 动量衰减参数β是计算梯度的指数加权平均数,并利用该值来更新参数,设置为 0.9 是一个常见且效果不错的选择
57.2 Adam优化器的超参数、权重衰减系数、丢弃法比率和网络参数
- Adam优化器的超参数、权重衰减系数、丢弃法比率(dropout)和网络参数
- 这些参数重要性放在最后并不等价于这些参数不重要
- 而是表示这些参数在大部分实践中不建议过多尝试,例如Adam优化器中的β1,β2,ϵ,常设为 0.9、0.999、10−8就会有不错的表现
- 权重衰减系数通常会有个建议值,例如0.0005 ,使用建议值即可,不必过多尝试。
- dropout通常会在全连接层之间使用防止过拟合,建议比率控制在[0.2,0.5]之间。
- 使用dropout时需要特别注意两点:
- 一、在RNN中,如果直接放在memory cell中,循环会放大噪声,扰乱学习。一般会建议放在输入和输出层;
- 二、不建议dropout后直接跟上batchnorm,dropout很可能影响batchnorm计算统计量,导致方差偏移,这种情况下会使得推理阶段出现模型完全垮掉的极端情况;
- 网络参数通常也属于超参数的范围内,通常情况下增加网络层数能增加模型的容限能力,但模型真正有效的容限能力还和样本数量和质量、层之间的关系等有关,所以一般情况下会选择先固定网络层数,调优到一定阶段或者有大量的硬件资源支持可以在网络深度上进行进一步调整。
57.3 部分超参数如何影响模型性能
超参数 | 如何影响模型容量 | 原因 | 注意事项 |
---|---|---|---|
学习率 | 调至最优,提升有效容量 | 过高或者过低的学习率,都会由于优化失败而导致降低模型有效容限 | 学习率最优点,在训练的不同时间点都可能变化,所以需要一套有效的学习率衰减策略 |
损失函数部分超参数 | 调至最优,提升有效容量 | 损失函数超参数大部分情况都会可能影响优化,不合适的超参数会使即便是对目标优化非常合适的损失函数同样难以优化模型,降低模型有效容限。 | 对于部分损失函数超参数其变化会对结果十分敏感,而有些则并不会太影响。在调整时,建议参考论文的推荐值,并在该推荐值数量级上进行最大最小值调试该参数对结果的影响。 |
批样本数量 | 过大过小,容易降低有效容量 | 大部分情况下,选择适合自身硬件容量的批样本数量,并不会对模型容限造成。 | 在一些特殊的目标函数的设计中,如何选择样本是很可能影响到模型的有效容限的,例如度量学习(metric learning)中的N-pair loss。这类损失因为需要样本的多样性,可能会依赖于批样本数量。 |
丢弃法 | 比率降低会提升模型的容量 | 较少的丢弃参数意味着模型参数量的提升,参数间适应性提升,模型容量提升,但不一定能提升模型有效容限 | |
权重衰减系数 | 调至最优,提升有效容量 | 权重衰减可以有效的起到限制参数变化的幅度,起到一定的正则作用 | |
优化器动量 | 调至最优,可能提升有效容量 | 动量参数通常用来加快训练,同时更容易跳出极值点,避免陷入局部最优解。 | |
模型深度 | 同条件下,深度增加,模型容量提升 | 同条件,下增加深度意味着模型具有更多的参数,更强的拟合能力。 | 同条件下,深度越深意味着参数越多,需要的时间和硬件资源也越高。 |
卷积核尺寸 | 尺寸增加,模型容量提升 | 增加卷积核尺寸意味着参数量的增加,同条件下,模型参数也相应的增加。 |
57.4 部分超参数合适的范围
超参数 | 建议范围 | 注意事项 |
---|---|---|
初始学习率 | SGD: [1e-2, 1e-1]momentum: [1e-3, 1e-2]Adagrad: [1e-3, 1e-2]Adadelta: [1e-2, 1e-1]RMSprop: [1e-3, 1e-2]Adam: [1e-3, 1e-2]Adamax: [1e-3, 1e-2]Nadam: [1e-3, 1e-2] | 这些范围通常是指从头开始训练的情况。若是微调,初始学习率可在降低一到两个数量级。 |
损失函数部分超参数 | 多个损失函数之间,损失值之间尽量相近,不建议超过或者低于两个数量级 | 这是指多个损失组合的情况,不一定完全正确。单个损失超参数需结合实际情况。 |
批样本数量 | [1:1024] | 当批样本数量过大(大于6000)或者等于1时,需要注意学习策略或者内部归一化方式的调整。 |
丢弃法比率 | [0, 0.5] | |
权重衰减系数 | [0, 1e-4] | |
卷积核尺寸 | [7x7],[5x5],[3x3],[1x1], [7x1,1x7] |
大数据视频推荐:
网易云课堂
CSDN
人工智能算法竞赛实战
AIops智能运维机器学习算法实战
ELK7 stack开发运维实战
PySpark机器学习从入门到精通
AIOps智能运维实战
腾讯课堂
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通