专栏首页云时之间深度学习与神经网络:正则化小栗子

深度学习与神经网络:正则化小栗子

在上一篇文章中我们简单说了说AIC,BIC和L1,L2正则化的东西,而今天这篇文章,我们将着重说说正则化.

1:什么是正则化?

首先,拿过来上一篇文章的定义:

√正则化:在损失函数中给每个参数 w 加上权重,引入模型复杂度指标,从而抑制模型噪声,减小 过拟合。

使用正则化后,损失函数 loss 变为两项之和:

loss = loss(y 与 y_) + REGULARIZER*loss(w)

其中,第一项是预测结果与标准答案之间的差距,如之前讲过的交叉熵、均方误差等;第二项是正则化计算结果。

2:正则化如何计算?

① L1 正则化: ?????? = ∑? |?? |

用 Tesnsorflow 函数表示:

loss(w) = tf.contrib.layers.l1_regularizer(REGULARIZER)(w)

② L2 正则化: ?????? = ∑? |?? | ?

用 Tesnsorflow 函数表示:

loss(w) = tf.contrib.layers.l2_regularizer(REGULARIZER)(w)

③:用 Tesnsorflow 函数实现正则化:

tf.add_to_collection('losses', tf.contrib.layers.l2_regularizer(regularizer)(w)

loss = cem + tf.add_n(tf.get_collection('losses'))

现在我们用一个实例来看看使用正则化和不适用正则化的差距.(这个例子是之前我自己做过的一个实验改过来的).

首先,我们做一批数据集:

用 300 个符合正态分布的点 X[x0, x1]作为数据集,根据点 X[x0, x1]计算生成标注 Y_,将数据集标注为红色点和蓝色点。

标注规则为:当 x0 ²+ x1 ² < 2 时,y_=1,标注为红色;当 x0 ²+ x1 ² ≥2 时,y_=0,标注为蓝色。 我们分别用无正则化和有正则化两种方法,拟合曲线,把红色点和蓝色点分开。在实际分类时, 如果前向传播输出的预测值 y 接近 1 则为红色点概率越大,接近 0 则为蓝色点概率越大,输出的预测值 y 为 0.5 是红蓝点概率分界线。

然后我们来创建一个简单的神经网络,就只有一个隐藏层(以后多用TensorFlow),

现在让我们不用正则化试验下:

然后我们就在正则化的效果下看看效果:(这里用的是L2正则化)

现在让我们执行代码看看结果:

生成数据集:

没有使用正则化的结果:

使用正则化的结果:

因此我们来看,正则化的效果会让曲线更加平稳,非常有效

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CV学习笔记(十八):文本数据集生成(text_renderer)

    在上一次我们进行完银行卡卡号定位后,有一个问题在于我们没办法获得很多的银行卡图片来进行训练,比较常规的方法是我们来使用银行卡图片的背景,来生成含有银行卡卡号的数...

    云时之间
  • CV学习笔记(十八):文本数据集生成(text_renderer)

    在上一次我们进行完银行卡卡号定位后,有一个问题在于我们没办法获得很多的银行卡图片来进行训练,比较常规的方法是我们来使用银行卡图片的背景,来生成含有银行卡卡号的数...

    云时之间
  • 深度学习与神经网络:AIC,BIC,L1,L2

    在学习深度学习时,我们经常会听到AIC, BIC 还有l1, lasso 等regularization 的知识。

    云时之间
  • 当年学正则的来龙去脉,希望对正则有兴趣的同学能从中获得灵感

    当年零基础入行, 什么都不会, 所幸有万能的搜索引擎(那时候谷歌还没被墙在外面),碰到问题都可以在上面找到答案。 然而, 当碰到正则匹配字符串相关的问题时, 搜...

    用户1608022
  • 深度学习中的正则化

    没有免费午餐定理暗示我们必须在特定任务上设计性能良好的机器学习算法。我们建立一组学习算法的偏好来达到这个要求。当这些偏好和我们希望算法解决的学习问题吻合时,性能...

    于小勇
  • 写了个学习正则的小工具

    用户1749219
  • 写了个学习正则的小工具

    用户1749219
  • 干货|深度学习中的正则化技术概述(附Python+keras实现代码)

    数据科学研究者们最常遇见的问题之一就是怎样避免过拟合。你也许在训练模型的时候也遇到过同样的问题--在训练数据上表现非同一般的好,却在测试集上表现很一般。或者是你...

    小草AI
  • 深度学习中的正则化技术概述(附Python+keras实现代码)

    磐创AI
  • 机器学习(五)--------正则化(Regularization)

    怎么解决 1.丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一 些模型选择的算法来帮忙(例如 PCA) 2.正则化。 保留所有的...

    实时计算

扫码关注云+社区

领取腾讯云代金券