首先了解一下正则性(regularity),正则性衡量了函数光滑的程度,正则性越高,函数越光滑。(光滑衡量了函数的可导性,如果一个函数是光滑函数,则该函数无穷可导,即任意n阶可导)。

正则化是为了解决过拟合问题。在Andrew Ng的机器学习视频中有提到(详见http://www.cnblogs.com/jianxinzhou/p/4083921.html)。解决过拟合的两种方法:

方法一:尽量减少选取变量的数量。人工检查每一个变量,并以此来确定哪些变量更为重要,然后,保留那些更为重要的特征变量。显然这种做法需要对问题足够了解,需要专业经验或先验知识。因此,决定哪些变量应该留下不是一件容易的事情。此外,当你舍弃一部分特征变量时,你也舍弃了问题中的一些信息。例如,也许所有的特征变量对于预测房价都是有用的,我们实际上并不想舍弃一些信息或者说舍弃这些特征变量。

最好的做法是采取某种约束可以自动选择重要的特征变量,自动舍弃不需要的特征变量。

方法二:正则化。采用正则化方法会自动削弱不重要的特征变量,自动从许多的特征变量中”提取“重要的特征变量,减小特征变量的数量级。这个方法非常有效,当我们有很多特征变量时,其中每一个变量都能对预测产生一点影响。正如在房价预测的例子中看到的那样,我们可以有很多特征变量,其中每一个变量都是有用的,因此我们不希望把它们删掉,这就导致了正则化概念的发生。

正则化的作用:

(1)防止过拟合;

(2)正则化项的引入其实是利用了先验知识,体现了人对问题的解的认知程度或者对解的估计;例如正则化最小二乘问题如下:

(3)有助于处理 条件数(condition number)不好的情况下矩阵求逆很困难的问题。

首先看一下条件数的概念:

如果方阵A是非奇异(A的行列式不等于0,正定矩阵一定是非奇异的)的,那么A的condition number定义为:

可以看出,如果A是奇异的,那么A的条件数为无穷大。条件数越小,所获得的解越可靠,模型鲁棒性越好,抗干扰能力越强。例如对于模型AX=b,A的条件数 越小(A的行列式远不接近于0),那么A,b的稍微的变化对解X的影响越小,对X的求解对样本集(A、b)中引入的干扰的抵抗能力越强,即所求解X越可靠。

引入正则化项之后,会降低条件数,提高抗干扰能力,提高泛化能力。如下图所示:

在样本数小于参数个数的情况下,样本矩阵很可能是不可逆的(条件数很大),而引入正则化项将会解决这个问题。

事实上,即使使用迭代优化算法,condition number 太大也将会拖慢迭代的收敛速度。

(4)正则化项的引入平衡了偏差(bias)与方差(variance)、拟合能力与泛化能力、经验风险(平均损失函数)与结构风险(损失函数+正则化项),下图为训练误差和测试误差与模型复杂度之间的关系

                 

(关于偏差和方差参考误差理论http://blog.csdn.net/linkin1005/article/details/42563229)

(5)正则化产生了稀疏性(Sparsity),减少了特征向量个数,降低了模型的复杂度。正则化符合奥卡姆剃刀原理,奥卡姆剃刀原理应用于模型选择时采用以下想法:在所有可能选择的模型中,能够很好的解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。从贝叶斯估计的角度来看,正则化项对应于模型的先验概率,可以假设复杂的模型有较大的先验概率,简单的模型有较小的先验概率。(参考http://www.cnblogs.com/Rosanna/p/3946596.html)

稀疏性(Sparsity)的作用:

a、特征选择(FeatureSelection):

稀疏性能实现特征的自动选择。在我们事先假定的特征(或自变量)中,有很多自变量或特征对输出的影响较小,可以看作是不重要的特征或自变量。而正则化项会自动对自变量或特征的系数参数进行惩罚,令某些特征或自变量的参数(权重系数)为0或接近于0,自动选择主要自变量或特征(类此于PCA)。

b、可解释性(Interpretability):

稀疏使模型更容易解释。

例如一回归问题,假设回归模型为:y=w1*x1+w2*x2+…+w1000*x1000+b

通过学习,如果最后学习到的w*就只有很少的非零元素,大部分W*为0或接近于0,例如只有5个非零的wi,那可以认为y之于这5个(因素)xi有关系,这更有利于人们对问题的认识和分析,抓住影响问题的主要方面(因素)更符合人们的认知习惯。

实际上,这些参数(W*)的值越小,通常对应于越光滑的函数,也就是更加简单的函数。因此 就不易发生过拟合的问题。(联系文章开头第一段)

c、卷积神经网络中的稀疏性(Sparsity):

神经网络中的稀疏性可以被简单地解释如下:如果当神经元的输出接近于1的时候我们认为它被激活,而输出接近于0的时候认为它被抑制,那么使得神经元大部分的时间都是被抑制的限制则被称作稀疏性限制。

其实,我们上面提到的回归模型:y=w1*x1+w2*x2+…+w1000*x1000+b可以看作是单神经元的神经网络,只不过没有激活函数。因此,我们可以将回归中的正则化技术用到神经网络的训练当中,而且正则化项作用与回归中的正则化项作用相同。

自编码( Autoencoders)神经网络是一种无监督学习算法,如下图所示,它使用了反向传播算法,并让目标值等于输入值,这看起来是不可能实现的的,因为根据信息论可知,信息是逐层丢失的,对信息的处理不会增加信息,大部分处理会丢失信息。因此,我们只能让输出尽可能的去接近输入。这样做的目的是什么呢?事实上,这给了我们用神经网络提取输入数据的特征的一种思路,我们更关注的是隐含层(layerL2)的输出,因为layerL2的输出是对输入数据的特征表示,即layerL2产生了特征。卷积神经网络是深度学习(deep learning)算法,深度的含义不仅是指神经网络的层数多,而且是指卷积神经网络能自动从输入数据中学习到更为抽象的特征,并将学习到的特征用于分类器的输入进行分类。这部分涉及很多内容,在这里就不延伸了,下面介绍与本文主题相关的内容。

下面我们以自编码神经网络为例,看一下正则化在神经网络中的应用。详细请参考下面UFLDL网站:

(http://ufldl.stanford.edu/wiki/index.php/%E8%87%AA%E7%BC%96%E7%A0%81%E7%AE%97%E6%B3%95%E4%B8%8E%E7%A8%80%E7%96%8F%E6%80%A7)

上图为自编码神经网络,编码所得的“码”即为特征,“编码”的含义就是提取输入数据的特征,其实提取特征的过程有点类似于对输入数据进行编码,估计这就是自编码神经网络的由来。

自编码( Autoencoders)神经网络的总体代价函数为:

等号右边第二项为正则化项,它是基于相对熵的惩罚项,用于限制神经元的激活程度,以此实现神经元的稀疏性。

对于惩罚项:

通过将正则化项引入自动编码器神经网络的代价函数中,通过训练,便可得到输入数据的稀疏性特征表示。

那么问题来了,为什么我们要得到稀疏性的特征表示呢?当然是为了防止过拟合,提高泛化能力,更好地解释模型....其实,从生物学的角度,人脑中的大量神经元,当受到外界刺激(图像或者声音)时,只有少量的神经元被激活,大部分神经元处于抑制状态。

正则化在监督学习和无监督学习算法的模型训练中被广泛使用,下面总结一下常见的几种正则化项及其作用。

许多模型的代价函数都可以用下式表示,等号右边第一项是损失函数,也有很多种:如均方误差损失函数、Hinge Loss、exp-Loss、log-Loss等;等号右边第二项是正则化项,正则化项可以是模型参数向量的范数。不同的正则化项对参数w的约束不同,取得的效果也不同,常见的正则化项:零范数、一范数、二范数、迹范数、Frobenius范数和核范数等等。

范数的定义如下:

当p=1时,为L1范数(taxicab norm);p=2时为欧拉范数

(1)L0范数

L0范数是指向量中非零元素的个数。L0正则化的值是模型中非零参数的个数,L0正则化可以实现模型参数的的稀疏化。L0正则化是个NP难问题,很难求解,因此一般不用L0范数。

(2)L1范数

下式等号右边第二项即为L1正则化项

L1范数是指向量中各个元素绝对值之和,又叫“稀疏规则算子”(Lasso regularization)。

(3)L2范数

下式等号右边第二项即为L2正则化项

在回归里面,有人把有它的回归叫“岭回归”(Ridge Regression)。

L2范数可以防止过拟合,提升模型的泛化能力;从优化或者数值计算的角度来说,L2范数有助于处理 condition number不好的情况下矩阵求逆很困难的问题。

L1和L2范数下降速度比较:

对于L1和L2规则化的代价函数来说,我们可以写成以下形式:

L1和L2范数约束空间:

L1范数在二维平面是一个矩形,L2范数在二维空间是一个圆;

可以看到,L1-ball 与L2-ball 的不同就在于L1在和每个坐标轴相交的地方都有“角”出现,而目标函数的等高线大部分时候第一次都会与L1-ball在角的地方相交。注意到在角的位置就会产生稀疏性,例如图中的相交点就有w1=0,而更高维的时候(想象一下三维的L1-ball 是什么样的?)除了角点以外,还有很多边的轮廓也是既有很大的概率成为第一次相交的地方,又会产生稀疏性。

相比之下,L2-ball 就没有这样的性质,因为第一次相交的地方不太可能出现在任意坐标轴上,因此不太可能产生稀疏性。这就从直观上来解释了为什么L1-regularization 能产生稀疏性,而L2-regularization 不行的原因了。

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

关于正则化项中参数lamuda的选取:一般采取交叉验证法或启发式方法等。

(详细参考http://blog.csdn.net/zouxy09/article/details/24972869)

参考资料:

http://blog.csdn.net/zouxy09/article/details/24971995

http://blog.csdn.net/zouxy09/article/details/24972869

http://www.cnblogs.com/jianxinzhou/p/4083921.html

http://blog.csdn.net/linkin1005/article/details/42563229

http://www.cnblogs.com/Rosanna/p/3946596.html

http://ufldl.stanford.edu/wiki/index.php/%E8%87%AA%E7%BC%96%E7%A0%81%E7%AE%97%E6%B3%95%E4%B8%8E%E7%A8%80%E7%96%8F%E6%80%A7

《Convex Optimization》

正则化及正则化项的理解相关推荐

  1. 正则化--L1正则化(稀疏性正则化)

    稀疏矢量通常包含许多维度.创建特征组合会导致包含更多维度.由于使用此类高维度特征矢量,因此模型可能会非常庞大,并且需要大量的 RAM. 在高维度稀疏矢量中,最好尽可能使权重正好降至 0.正好为 0 的 ...

  2. 改善深层神经网络:超参数调整、正则化以及优化——2.2 理解Mini-batch梯度下降法

    使用batch梯度下降法时,每次迭代都需要遍历整个训练集,可以预期每次迭代的成本都会下降.如果成本函数J是迭代次数的一个函数,它应该会随着每次迭代而减少,如果J在某次迭代中增加了,那肯定出了问题. 如 ...

  3. 云从科技上交大提出DCMN+ 模型,在多项阅读理解数据集上成绩领先

    2020 年 2 月 7 日-2 月 12 日,AAAI 2020 将于美国纽约举办.不久之前,大会官方公布了今年的论文收录信息:收到 8800 篇提交论文,评审了 7737 篇,接收 1591 篇, ...

  4. L1正则化 L2正则化的Python 实现

    上一篇文档 https://blog.csdn.net/xingzhe2001/article/details/86316712 介绍了L1 L2正则化 本文介绍L1, L2 正则化的实现 L1正则化 ...

  5. 关于YY1139-2013心电诊断设备的共模抑制测试项的理解

    我自己在看yy1139时,关于共模抑制测试一直没太搞明白,就只知道怎么去测试,测试的数值来计算共模抑制比,但是一直不理解为啥是这样就可以算出来,然后我看了yy1139-2000国标以及一篇" ...

  6. [机器学习]正则化项L1和L2的学习与理解

    正则化项L1和L2的学习与理解 一,正则化(Regularization) 稀疏模型与特征选择的关系 二, 为什么L1产生稀疏模型而L2可以防止过拟合 1, L1和L2正则化的直观理解 正则化和特征选 ...

  7. 理解深度学习中的正则化

    写在前面:这篇文章虽然公式有点多,但很好懂的. 仔细看一定会有很大收获.     本文介绍了对深度学习中正则化的理解,分为以下几部分: 什么是正则化? 为什么要正则化? 怎样理解正则化? 举例 首先从 ...

  8. 手推公式带你轻松理解L1/L2正则化

    文章目录 前言 L1/L2正则化原理 从数学的角度理解L1/L2正则化 从几何的角度理解L1/L2正则化 L1/L2正则化使用情形 前言 L1/L2正则化的目的是为了解决过拟合,因此我们先要明白什么是 ...

  9. 正则化理解+负采样理解以及神经网络中的负采样

    纯转载文章,旨在便于自己空的时候观看. 一直很好奇,模式识别理论中,常提到的正则化到底是干什么的?在这里真心感谢 迷雾forest 那么费脑组织语言.那么费卡路里打字.那么有责任心的分享! 正则化: ...

  10. 对L1正则化和L2正则化的理解

    一. 奥卡姆剃刀(Occam's razor)原理: 在所有可能选择的模型中,我们应选择能够很好的解释数据,并且十分简单的模型.从贝叶斯的角度来看,正则项对应于模型的先验概率.可以假设复杂模型有较小的 ...

最新文章

  1. 项目: 用easyx实现消砖块
  2. SAP MM 巴西采购订单中的NCM Code
  3. python算法与数据结构-二叉树的代码实现(46)
  4. 网络爬虫--16.BeautifulSoup4
  5. c++ string类的常用方法_【常用类方法】Object
  6. MFC_CFileDialog_选择单一文件
  7. Mybatis核心配置文件SqlMapConfig.xml
  8. Mybatis中的StatementType
  9. Windows Mobile 编程 (Win32) - 开篇
  10. VASP、Lammps快速上手神器——MedeA软件
  11. 如何选择适合你的兴趣爱好(五十四),硬笔书法
  12. 计算机系统无法启动 错误恢复怎么办,win7系统无法启动 安全模式也进入不了怎么办-win7启动失败,win7错误恢复无法开机...
  13. 网络文件共享服务主流----FTP文件传输协议
  14. 开发者工具的暖心提示语
  15. Vertiv发布2017年数据中心基础架构趋势
  16. crash工具分析sysdump使用
  17. Creo5.0 永久修改尺寸单位为毫米(mmns)
  18. 清除异常关闭进程的任务栏托盘区残留图标
  19. Android中的run-as命令引出升降权限的安全问题
  20. iphone 重用机制

热门文章

  1. 小猪短租网一个网页上的单个价格
  2. 常见的tenor操作
  3. WIPE与Format的种种神马情况
  4. 装修首页自定义全屏视频播放效果gif动态图片制作视频教程播放代码操作设置全屏居中阿里巴巴国际站
  5. Codeforces 918D - MADMAX
  6. linux嵌入式主要学什么软件,嵌入式软件工程师需要学什么?嵌入式Linux开发的工作内容...
  7. r720换固态硬盘后如何重装系统_联想拯救者r720笔记本NVME接口M.2固态硬盘怎么安装win7系统...
  8. MySQL - redolog 图文详解
  9. Coreset-Based Neural Network Compression简记
  10. 樊登读书分享ppt_樊登读书《干法》学习分享