正则化-过拟合-欠拟合策略

解决模型过拟合有哪些思路
  • 正则化

    • L1正则化,各个参数的绝对值之和。(使参数更稀疏,能够挑选特征)拉普拉斯分布

    • L2正则化,各个参数的平方和,再求平方根。正态分布

      L1会趋向于产生少量的特征,而其他的特征都是0;L2会选择更多的特征,这些特征都会接近于0。

  • 网络层

    • BN
    • dropout
  • 数据:

    • 扩充数据集
  • 通过验证集来提前终止训练

  • 降低模型复杂度

  • 采用模型融合的方式进行训练(集成学习)

什么是正则化?

网络出现过拟合的原因就是**就是因为特征分得太细、太多**,减少特征不就可以减轻过拟合。

BN训练和测试有什么不同?

训练时,均值和方差针对一个**Batch**。

测试时,均值和方差针对**整个数据集**而言。因此,在训练过程中除了正常的前向传播和反向求导之外,我们还要记录**每一个Batch的均值和方差**,以便训练完成之后按照下式计算**整体的均值和方差**

BN,LN,IN,GN从学术化上解释差异:

BatchNorm:batch方向做归一化,算N*H*W的均值。**对一个神经元的所有样本做归一化**
LayerNorm:channel方向做归一化,算C*H*W的均值 。**对一个样本,经过同一层的所有神经元**做**归一化**
InstanceNorm:一个channel内做归一化,算H*W的均值 GroupNorm:将channel方向分group,然后每个group内做归一化,算(C//G)*H*W的均值

如何同时使用BN和dropout
    BN和dropout单独使用都能减少过拟合并加快训练速度,但是一起使用可能效果并不好,因为网络状态切换过程中存在神经方差不一致行为,方差偏移

    如果一定要同时使用,把dropout放在所有BN之后或者是修改dropout的公式
欠拟合策略
  • 添加其他特征项,有时候我们模型出现欠拟合的时候是因为特征项不够导致的,可以添加其他特征项来很好地解决。例如,“组合”、“泛化”、“相关性”三类特征是特征添加的重要手段,无论在什么场景,都可以照葫芦画瓢,总会得到意想不到的效果。除上面的特征之外,“上下文特征”、“平台特征”等等,都可以作为特征添加的首选项。
  • 添加多项式特征
  • 减少正则化参数
在预测的时候,是使用dropout训练出的权重还是要乘以keep-prob呢,为什么?

要乘以keep-prob。

因为神经元预测的时候没办法随机丢弃,一种“补偿”的方案就是每个神经元的权重都乘以一个p,这与在“总体上”使得训练数据和测试数据是大致一样的。保证测试的时候把这个神经元权重乘以p可以得到同样的期望。

注:目前主流方法是采用inverted dropout代替dropout,inverted dropout不需要乘以keep-prob。它的做法是在训练阶段对执行了dropout操作的层,其输出激活值要除以keep_prob,而测试模型不用再做任何改动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值