56.1 参数和超参数的区别
- 区分两者最大的一点就是是否通过数据来进行调整,模型参数通常是有数据来驱动调整,超参数则不需要数据来驱动,而是在训练前或者训练中人为的进行调整的参数
- 例如卷积核的具体核参数就是指模型参数,这是有数据驱动的。而学习率则是人为来进行调整的超参数
- 这里需要注意的是,通常情况下卷积核数量、卷积核尺寸这些也是超参数,注意与卷积核的核参数区分。
56.2 神经网络中包含哪些超参数
- 通常可以将超参数分为三类:
- 网络参数:可指网络层与层之间的交互方式(相加、相乘或者串接等)、卷积核数量和卷积核尺寸、网络层数(也称深度)和激活函数等。
- 优化参数:一般指学习率(learning rate)、批样本数量(batch size)、不同优化器的参数以及部分损失函数的可调参数。
- 正则化:权重衰减系数,丢弃法比率(dropout)
56.3 为什么要进行超参数调优
- 本质上,这是模型优化寻找最优解和正则项之间的关系
- 网络模型优化调整的目的是为了寻找到全局最优解(或者相比更好的局部最优解),而正则项又希望模型尽量拟合到最优
- 两者通常情况下,存在一定的对立,但两者的目标是一致的,即最小化期望风险
- 模型优化希望最小化经验风险,而容易陷入过拟合,正则项用来约束模型复杂度
- 所以如何平衡两者之间的关系,得到最优或者较优的解就是超参数调整优化的目的。
56.4 学习率,损失函数上的可调参数
- 在网络参数、优化参数、正则化参数中最重要的超参数可能就是学习率了
- 学习率直接控制着训练中网络梯度更新的量级,直接影响着模型的有效容限能力;
- 损失函数上的可调参数,这些参数通常情况下需要结合实际的损失函数来调整,大部分情况下这些参数也能很直接的影响到模型的的有效容限能力。
- 这些损失一般可分成三类
- 第一类辅助损失结合常见的损失函数,起到辅助优化特征表达的作用
- 例如度量学习中的Center loss,通常结合交叉熵损失伴随一个权重完成一些特定的任务
- 这种情况下一般建议辅助损失值不高于或者不低于交叉熵损失值的两个数量级;
- 第二类,多任务模型的多个损失函数,每个损失函数之间或独立或相关,用于各自任务,这种情况取决于任务之间本身的相关性,目前笔者并没有一个普适的经验由于提供参考;
- 第三类,独立损失函数,这类损失通常会在特定的任务有显著性的效果。例如RetinaNet中的focal loss,其中的参数γ,α,对最终的效果会产生较大的影响。这类损失通常论文中会给出特定的建议值。
- 第一类辅助损失结合常见的损失函数,起到辅助优化特征表达的作用
大数据视频推荐:
网易云课堂
CSDN
人工智能算法竞赛实战
AIops智能运维机器学习算法实战
ELK7 stack开发运维实战
PySpark机器学习从入门到精通
AIOps智能运维实战
腾讯课堂
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通
网友评论