深度学习系列教程(八)TensorFlow 中的正则化方法

"玩转TensorFlow与深度学习模型”系列文字教程,本周带来TensorFlow 中的正则化方法!

大家在学习和实操过程中,有任何疑问都可以通过学院微信交流群进行提问,有导师和助教、大牛为您解惑答疑哦。(入群方式在文末

第八篇的教程主要介绍-TensorFlow 中的正则化方法,包括:

过拟合简介

常用正则化用法

过拟合介绍

在对正则化的方法进行介绍之前,首先解释以下什么是过拟合。过拟合(overfitting)一般是指模型能够在训练数据集上得到越来越好的结果,但是在测试数据上的表现反而变差的现象,导致这种现象发生的原因一般是模型结果过于复杂,使得模型能够很好地描述训练数据,但是却丧失了泛化能力,对于没有参加训练的数据存在较大的误差。对于过拟合,欠拟合和模型容量的关系可以参见下图。

常用正则化方法

机器学习与深度学习中的一个核心问题就是如何使得一个模型或者算法能够有较好的泛化能力,即除了训练数据,我们希望模型在新产生的数据上的表现也尽可能的好,深度学习中有很多算法目标在于降低模型的test error,不过付出的代价就是有可能使得training error有所上升。这类策略统一叫做正则化(Regularizations)。

Parameter Norm Penalties

假设原来的损失函数为:

现在定义新的损失函数

当表示范数的时候, 就叫做Parameter Norm Penalties,

Parameter Norm Penalties 是一类常见的简单的正则化方法,主要分为L1正则化和L2正则化两种。一般情况我们只选用权重的范数作为penalty,而不对偏置进行正则化。

范数的计算公式:

L2 范数正则化

如果取(二分之一L2范数的平方)则叫做L2范数正则化。对于权重进行求导可以得到:

在每一步梯度下降中可以得到:

可以看到在每一步对权重进行更新的时候会对权重乘上一个小于1的常数。因此这种方法也叫做weight decay 。

L2 范数正则化的意义如下图所示:

假设w有两个元素w1,w2,虚线是,实线是,为使得J取得最小值的w,为使得最小的w的取值。可以看到,J对于w在垂直方向上的移动更为敏感(梯度更大),而在水平方向上则没有那么敏感,从结果上来说 ,L2正则化对于对梯度影响较大的值的影响较小,对于对梯度没有太大影响的值会使得它更加接近于零。

在TensorFlow中使用:

L2_loss = alpha * tf.norm(W,2) **2+ loss

L1 范数正则化

当我们定义时,变为如下形式:

这时使用的就是L1正则化(LASSO):

从结果上来讲,增加L1 penalty会使得权重矩阵更加的稀疏(大部分的值为0)

在TensorFlow中使用:

L1_loss = alpha * tf.norm(W,1) + loss

Early Stopping

Early Stopping 也是深度学习过程之中常用的一种避免过拟合的方式。

如上图所示,当模型的容量足够大可以对训练任务进行过拟合的时候,一般随着训练的进行,training error是会平稳地下降的,但是validation error开始的时候会下降,但是到后期又会逐渐上升,这也就是说我们可以通过在validation error 较低的时候停止训练来得到一个泛化能力比较好的模型,这时的参数不是模型训练过程中最新的参数,而是在训练过程之中的某一套参数,这种策略叫做early stopping。

通过下图可以看出 Early Stopping 对于参数筛选的作用与使用Parameter Norm Penalties有时是类似的。左图是使用early stopping,右图是使用L2 norm。

Dropout

dropout 可以看作是同时训练多个模型,这看起来是个不可能完成的任务,因为每个模型都是一个大型的神经网络,训练和测试模型都十分的耗费资源,dropout提供了一种能够在不耗费过多资源的情况下近似训练和使用成指数级个模型的方法。

具体步骤如下:

梯度下降的过程中对于每一个mini-batch,我们对输入和隐含层中的每个单元根据预先设置好的概率进行随机抽样,生成掩码,掩码为1则保留,为0则舍去;

训练完成后将权重乘以保留单元的概率p,或者在训练过程中将每个单元的输出乘以1/p,进行训练;

最终使用模型的时候使用整个网络,不进行dropout。

dropout 网络示意图,一个简单的网络可以看作是有多个子网络构成的:

TensorFlow中使用Dropout:

TensorFlow在使用的时候已经对训练过程中的输出进行了放缩,所以不需要额外地进行处理了,x是dropout层的输入,p是每个单元保留的概率,注意仅仅在训练过程中使用dropout,在使用模型的时候要将p设置为1.,表示全部都进行保留,即不使用dropout。

本文来自企鹅号 - 天学网人工智能学院媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能头条

Yann LeCun等最新研究:如何对未来实例分割进行预测?

1267
来自专栏云时之间

<机器学习>西瓜书,读书笔记

机器学习的发展阶段 1:推荐书目:周志华<机器学习西瓜书>,李航教授<统计学习方法>,这两本书都用简单的方式介绍了一批重要并且常用的机器学习算法 机器学习所发展...

3469
来自专栏人工智能

深度学习系列教程(八)TensorFlow 中的正则化方法

"玩转TensorFlow与深度学习模型”系列文字教程,本周带来TensorFlow 中的正则化方法! 大家在学习和实操过程中,有任何疑问都可以通过学院微信交流...

23010
来自专栏AI科技评论

开发 | 最简单易懂的 GAN 教程:从理论到实践(附代码)

之前 GAN网络是近两年深度学习领域的新秀,火的不行,本文旨在浅显理解传统GAN,分享学习心得。现有GAN网络大多数代码实现使用Python、torch等...

38012
来自专栏深度学习自然语言处理

【干货】GRU神经网络

前用的最多的三种神经网络是CNN,LSTM,GRU。其中,后两者都是RNN的变种,去年又给RNN发明了个SRU(优点是train RNN as fast as ...

38411
来自专栏量化投资与机器学习

基于 RNN、LSTM 的股票多因子预测模型

前言 在机器学习如何应用到量化投资的系列文章中,今天我们专门来介绍一篇来自国信证券的研究报告,来从券商角度分析这个问题。 对于最直接的问题:能否利用神经网络,要...

8117
来自专栏算法channel

最小二乘法:背后的假设和原理(前篇)

总结了一些最基本的机器学习概念,比如特征,训练集,维数,假设空间,通过一个例子说明什么是机器学习的泛化能力,再阐述了什么是归纳偏好。是时候开始进一步体会机器学习...

3124
来自专栏TensorFlow从0到N

TensorFlow从0到1 - 9 “驱魔”之反向传播大法

创世纪 2:7: “耶和华神用地上的尘土造人,将生气吹在他鼻孔里,他就成了有灵的活人。” 上一篇8 万能函数的形态:人工神经网络解封了人工神经网络,如果...

3375
来自专栏小小挖掘机

推荐系统遇上深度学习(八)--AFM模型理论和实践

在CTR预估中,为了解决稀疏特征的问题,学者们提出了FM模型来建模特征之间的交互关系。但是FM模型只能表达特征之间两两组合之间的关系,无法建模两个特征之间深层次...

922
来自专栏SIGAI学习与实践平台

反向传播算法推导-全连接神经网络

本文《反向传播算法推导-全连接神经网络》系SIGAI原创,只供学习使用,未经允许,不得转载,不得用于商业用途。如需获取PDF全文,可搜索关注公众号SIGAICN...

2216

扫码关注云+社区