L2正则化为什么有效

无论是学过机器学习还是深度学习的同学一定知道正则化可以缓解过拟合,最常用的就是L2正则化,即在损失函数

上加上参数的L2范数

,不过一般也不开根号了,也就是直接加

是正则化因子,它的大小决定了你有多想让参数向0靠近。

如果被问到缓解过拟合的方法,那么L2正则化肯定是要知道的。如果继续追问为什么L2正则化有效呢?也许可以回答:因为把参数加到了损失函数里,可以在梯度下降时让参数变得更小,防止模型能够拟合特别复杂的函数。但又要问了,那为什么参数小得接近0就有效呢?仅仅是intuition所以大家都这样做也这样认为吗?事实上这是可以从概率论的角度来解释的,下面用最简单的线性回归来介绍,我们用下标

表示第

个特征,上标

表示数据集中的第

条数据。

高斯分布

设模型参数为

(bias包含在

里了),模型的hypothesis为

就是我们模型做出的预测,

是现实世界真实的标签,不过

是带有噪音的,真实世界的数据不可能是完美的,其中大都夹杂着噪音信号,我们假设

其中

代表着噪音,假设它属于高斯分布

,即均值为0,方差为

,这个假设其实是符合实际的,因为现实世界中我们遇到的大部分的数据或噪音的分布其实都是高斯分布,那么我们就可以得到

的分布了

本科的概率论课程告诉我们正态分布

的公式是

极大似然估计

假设我们有一堆数据

,频率学派认为

是客观存在的,只是我们不知道罢了,真实的

一定是最优的,能让这组数据集

出现的概率最大,我们要去手上已知的

去估计真实的

,也就要求

的极大似然估计

这等价于求对数极大似然,即

将数据集代入上式,求导取一阶导数为0,就可以得到一个local optimal,在线性回归或logistic回归里也可以确定这就是全局唯一的optimal,即最优解。如果我们将上面的

与正态分布公式代入,可以得到

由于我们所求的是

,即要找到能使式子最大或最小的

,所以常数项和系数都不会影响结果,因此第三步将它们略去后我们就得到了熟悉的最小均方误差,也就是线性回归中的最小二乘法!不过要注意,虽然得到的结果与最小二乘法是一致的,但出发点和理论基础都完全不一样。

从频率学派的假设出发,我们得到的是不带正则化项的线性回归,而从贝叶斯学派的角度来看,却有些不同。

极大后验概率估计

贝叶斯学派则是先给

的分布来一个假设

,叫做"prior"即先验,颇有点全知全能的上帝的感觉(误,那么我们现在已经看到了数据

,也有了

分布的假设,就可以去求在已知当前数据情况下,

是什么的概率,并找出最可能的

,根据贝叶斯定理可得

右式的分母是个常数,可以省去,它被称为"evidence",左式被称为"posterior"即后验,剩下的

是我们熟悉的"likelihood"即似然,那么接下来就是通过求最大后验概率,来获得我们想要的

,在这里我们假设先验分布

这样我们就得到了最小均方误差+L2正则化的线性回归了!注意上式的两个分布的方差是不同的,不过由于方差无关紧要,也就没有特意区分了(其实是码公式太累不想区分了_(:з」∠)_

原来从概率论的角度来看,L2正则化其实就是假设了参数的分布属于高斯分布,再想想由于高斯分布的均值为0,自然也就解释了为什么参数都会接近0,毕竟0的概率最大。如果你给

假设不同的先验分布,比如拉普拉斯分布

那你得到的就是「L1正则化」,这里就不再推导了。

结论

这样我们得到了结论,最小均方误差其实等价于「极大似然估计」,「L2正则化」+最小均方误差等价于「最大后验估计」。

进一步思考

可能有人会问,假设参数确实不属于高斯分布,那我这么假设岂不是从开头就错了,确实,如果参数的真实分布与我们的先验假设有很大差别,会导致模型的预测效果很差,这点在cs229的Gaussian Discriminant Analysis(GDA, 高斯判别分析)一课有讲过,当你的数据量很少时,加一个先验假设可以帮助模型更好的拟合数据,因为你给模型提供了更多信息,前提是你的假设是对的,当你的数据量很多时,先验假设就不那么重要了,因为模型可以自己去从数据中发现信息,这也就解释了为什么数据量越大,越不容易过拟合。如果数据量很小,直接使用极大似然估计,就会导致参数只适用于当前的数据集,导致过拟合,泛化能力较差。不过,就像Andrew Ng所说,这个世界大部分的数据分布都是高斯分布,大量论文实验也证明了L2正则化确实有效,所以我们基本上任何时候都可以大胆地使用L2正则化,只需要调节正则化因子

的大小,当模型欠拟合时调小它甚至置零,过拟合时调大它,就能够很好地在high bias(欠拟合)与high variance(过拟合)之间进行trade off。

参考资料: cs229 by Andrew Ng

l2高斯分布_浅谈为什么L2正则化有效相关推荐

  1. 《计算机辅助教学及应用实践研究》,《论文_浅谈计算机辅助教学(定稿)》

    <论文_浅谈计算机辅助教学(定稿)> (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 摘要:计算机辅助教学中要用到多媒体课件 ...

  2. python判断两个对象是否为相等使用的运算符是_Python入门_浅谈逻辑判断与运算符...

    这是关于Python的第6篇文章,主要介绍下逻辑判断与运算符. (一) 逻辑判断: 如果要实现一个复杂的功能程序,逻辑判断必不可少.逻辑判断的最基本标准:布尔类型. 布尔类型只有两个值:True和Fa ...

  3. python中文字符串编码_浅谈python下含中文字符串正则表达式的编码问题

    前言 Python文件默认的编码格式是ascii ,无法识别汉字,因为ascii码中没有中文. 所以py文件中要写中文字符时,一般在开头加 # -*- coding: utf-8 -*- 或者 #co ...

  4. python sys模块作用_浅谈Python中的模块

    模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在Python中,一个.py文件就称之为一个模块(Mod ...

  5. python的re2和re区别_浅谈Python中re.match()和re.search()的使用及区别

    1.re.match()fvk免费资源网 re.match()的概念是从头匹配一个符合规则的字符串,从起始位置开始匹配,匹配成功返回一个对象,未匹配成功返回None.fvk免费资源网 包含的参数如下: ...

  6. python读取图像数据流_浅谈TensorFlow中读取图像数据的三种方式

    本文面对三种常常遇到的情况,总结三种读取数据的方式,分别用于处理单张图片.大量图片,和TFRecorder读取方式.并且还补充了功能相近的tf函数. 1.处理单张图片 我们训练完模型之后,常常要用图片 ...

  7. swift 引用其他类_浅谈swift中闭包修饰符 weak?unowned? 或什么都不用

    浅谈swift中闭包修饰符 weak?unowned? 或什么都不用 平常的开发中,clourse是我们iOSr绕不过去的坎儿. 苹果本身也很重视闭包,像之前的一些老的target-action类型的 ...

  8. python命名规则数字开头的成语_浅谈Python中带_的变量或函数命名

    搜索热词 Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就 ...

  9. python实例编程_浅谈如何编程Python3——Python实例(3)

    浅谈如何编程Python3--Python实例(3) # 测试实例一 print("测试实例一") str= "runoob.com"print(str.isa ...

最新文章

  1. mysql分页与分页性能查询优化
  2. cocospod 安装和使用
  3. 大型互联网网站架构心得之二:并、换和其它(转)
  4. kettle的基本介绍
  5. 128.Two Sum
  6. linux和GNU之间的关系
  7. 13 计算机组成原理第七章 输入/输出系统 I/O方式 I/O接口
  8. graphpad如何检测方差齐_如何选择方差分析的多重比较方法?资料集锦
  9. dijkstra 最短路算法
  10. 让memcached和mysql更好的工作
  11. W3School 离线手册最新版下载
  12. 什么是 JxBrowser
  13. MySQL 8.0.27 下载安装与配置详细教程(Windows64位)
  14. P3966 [TJOI2013]单词(AC自动机)
  15. 基础算法:斐波那契函数学习
  16. Python手册(Machine Learning)--statsmodels(列联表和多重插补)
  17. 餐厅预订系统有哪些?餐厅预订系统怎么选择?
  18. 使用thinkphp做商城,如何调用物流API接口
  19. 百度贴吧挖坟实时监控 python版
  20. 软件开发真的是工资高、来钱快吗?聊聊我在这个行业的经历!

热门文章

  1. webpack资源的输入与输出
  2. 空卡安装设置树莓派4B并安装opencv+QT
  3. windows 两条命令快速关闭 445等危险端口
  4. UVALive 6884 GREAT + SWERC = PORTO dfs模拟
  5. Select的onchange事件
  6. C#:const 和readonly的区别
  7. 若何在嵌入式Linux及下建造QPF字库
  8. H5 WebSocket java服务端push
  9. html 富文本编辑器相关--向编辑器内部插入文字图片等各种dom元素 通用方法
  10. 使用Gitosis搭建Git服务器