抑制过拟合之正则化与Dropout

避免过拟合:

1、增大数据集合 – 使用更多的数据,噪声点比减少(减少数据扰动所造成的影响)
2、减少数据特征 – 减少数据维度,高维空间密度小(减少模型复杂度)
3、正则化 / dropout / 数据增强 – 在缺少训练数据情况下

一、Dropout介绍:

在这里插入图片描述

训练时:随机人为丢弃一些神经单元
测试时:使用全部神经单元

原理:
1.取平均的作用:相同训练数据训练5个不同的神经网络,得到5个不同结果,此时可以采用“5个结果取平均值”或“多数取胜投票策略”决定最终结果。
2.减少神经元之间复杂的公适应关系:因为dropout程序导致两个神经元不一定每次都在一个dropout网络中出现。这样权值的更新不再依赖于固定关系的隐含节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况。

Tf2实例:

tf.keras.layers.Dropout(rate=0.8)

一般可以在Dense层之后添加Dropout层

二、正则化介绍:

L1-norm和 l2-norm中文称作 L1正则化 和 L2正则化,或者 L1范数 和 L2范数。
在这里插入图片描述
其中 w 就是线性变化中的参数。

对于线性回归模型,使用L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归)。

Tf2实例:

# kernel_regularizer 计算的就是层参数的相应值(l1、l2等)

tf.keras.layers.Dense(32, kernel_regularizer=tf.keras.regularizers.l2(1e-2))
tf.keras.layers.Dense(10, kernel_regularizer=tf.keras.regularizers.l1(1e-2))

# 通过模型的lossed属性取到各个层的loss (最后加到损失函数计算的loss之中就行)
model.losses 
# [<tf.Tensor: id=241, shape=(), dtype=float32, numpy=0.030209353>,
#  <tf.Tensor: id=249, shape=(), dtype=float32, numpy=0.6088533>]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值