2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 抑制过拟合之正则化与Dropout

抑制过拟合之正则化与Dropout

时间:2023-01-30 14:14:02

相关推荐

抑制过拟合之正则化与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>]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。