CNN中的小tips(3)---《l1,l2正则化为什么可以减轻过拟合现象》

标签: 面试 深度学习 机器学习
15人阅读 评论(0) 收藏 举报
分类:

过拟合现象发生的原因:
过拟合现象:由于神经网络的学习能力过于强大,以至于学到了训练样本中一些不太一般的特点,从而导致模型的泛化能力变差!
本质原因:由于监督学习问题的不适定:可以这样理解,高数中我们通过n个方程求解n个变量,当用这n个方程求解n+1个变量时,就会求解不出来;在监督学习中,我们给定的数据(方程)远远少于模型空间中的变量(变量的个数)。
而且模型越复杂,越容易过拟合!

因此过拟合的发生,可以分为以下三点:
这里写图片描述
注意上文中所提到的“模型空间”,其实对应了大多数文章中所写的“模型复杂度”,指的是可以选择模型的数量特别多,过于复杂,并不是模型本身长得复杂;
正则化为什么能够避免过拟合:因为正则化就是控制模型空间的一种方法!
定义:
通过降低复杂模型的复杂度来防止过拟合的规则被称为正则化!
l1正则化:通过对损失函数加上所有权重值的绝对值来惩罚损失函数;
l2正则化:通过对损失函数加上所有权重值的平方来惩罚损失函数!

来源(存在的必要性):
过拟合现象发生的原因在于模型太过复杂,,“奥卡姆剃刀”或者“奥康的剃刀”,即“若无必要,勿增实体”,即“简单有效原理”,而l1正则化和l2正则化都是为了再向l0正则化逼近,即为了使模型变得简单有效,因此符合“奥卡姆剃刀”原理,这样可以使得模型变得简单有效!(哈哈,皮一皮,很开心!
1、最优化问题角度理解
模型的复杂度可以用VC维来衡量,而通常情况下,模型VC维与系数w的个数呈线性关系:w越多,VC维度越大,模型越复杂。因此,为了限制模型的复杂度,我们自然考虑减少w的个数,即让w向量中一些元素为0或者说限制w中非零元素的个数。因此我们可以在原本的优化问题上面加上一个约束条件:
即||w||0<=C(0代表下标,即参数w的0范数),由于这个问题求解十分困难,因此我们采用近似效果进行求解,即让w尽可能接近0,即尽量小,因此我们用||w||1和||w||2进行求解,因为||w||2不好处理,因此我们转用(||w||2)^2进行求解,然后利用拉格朗日算法进行求解:
这里写图片描述(摘自—知乎深入理解L1、L2正则化
2、最大后验概率估计角度理解
从概率与统计学的角度来理解,我们假设原始样本服从某种分布(yi~(N(W(T)xi,δ2),然后通过最大化它的最大似然函数,进而求解出权重w,b,即通过先验概率来最大化后验概率,这一块设计的公式比较多,因此就直接摘抄知乎深入理解L1、L2正则化
这里写图片描述
这里写图片描述
原因:
为什么它可以减弱过拟合呢???
版本1:加入了先验知识,在数据少的时候,先验知识可以防止过拟合;
版本2:正则化可以控制模型空间!
版本3:通过控制模型复杂度,减少过拟合!最基本的正则化方法是在原目标(代价)函数中添加惩罚项,对复杂度较高的模型进行“惩罚”,从而降低模型复杂度!

PS:
范数知识的补充:

这里写图片描述
简单理解:
l0范数:向量中非0元素的个数;
l1范数:向量中各个元素的绝对值之和
l2范数:通常意义的模

l0正则化:模型参数中非0参数的个数;
l1正则化:模型参数中各个参数的绝对值之和;
l2正则化:模型参数中各个参数的平方的开方值。

参考:
深入理解L1、L2正则化
机器学习中使用正则化来防止过拟合是什么原理?
L0,L1,L2正则化浅析

查看评论

Python全栈工程师-第3周

-
  • 1970年01月01日 08:00

对过拟合的处理:正则化方法:L1和L2 regularization、数据集扩增、dropout

正则化方法:防止过拟合,提高泛化能力 在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合)。其直观的表现如下图所示,随着训练过程的进行,模型复杂度增加,在t...
  • Losteng
  • Losteng
  • 2016-03-21 10:10:03
  • 1889

为什么正则化(Regularization)可以减少过拟合风险

在解决实际问题的过程中,我们会倾向于用复杂的模型来拟合复杂的数据,但是使用复杂模型会产生过拟合的风险,而正则化就是常用的减少过拟合风险的工具之一。过拟合过拟合是指模型在训练集上误差很小,但是在测试集上...
  • usingnamespace_std
  • usingnamespace_std
  • 2016-08-09 00:56:48
  • 3625

L1正则化产生稀疏模型,L2正则防止过拟合

转自https://blog.csdn.net/jinping_shi/article/details/52433975 L1正则产生稀疏模型的理解: J=J0+alpha∑w|w|(1)(1)J...
  • chineseqsc
  • chineseqsc
  • 2018-03-25 20:41:01
  • 51

L2 normalization 为什么能够降低过拟合

L2 normalization 为什么能够降低过拟合? 假设 cost function 为: J(w,b)=1m∑i=0n(yi^−yi)2+λ2m∑l=1L||w[l]||2F J(w,b)...
  • hhhxiaojian
  • hhhxiaojian
  • 2017-10-07 16:43:54
  • 175

我们常说的正则化防止过拟合是怎么一回事

从上周开始,突然想起了正则化这么个东西,一直都听到加个范数就可以防止过拟合,正则化为什么这么神奇呢? 断断续续地看了一周的相关书籍,博客,决定先来个短暂的总结,以后有了更深入的理解再来补充。 什...
  • yobobobo
  • yobobobo
  • 2015-10-04 19:21:34
  • 5821

正则化方法:L1和L2 regularization、数据集扩增、dropout

本文是《Neural networks and deep learning》概览 中第三章的一部分,讲机器学习/深度学习算法中常用的正则化方法。(本文会不断补充)正则化方法:防止过拟合,提高泛化能力在...
  • u012162613
  • u012162613
  • 2015-03-14 18:12:20
  • 56753

模型泛化能力——过拟合与欠拟合,L1/L2正则化(复习16)

本文是个人学习笔记,内容主要是观察多项式曲线对数据的拟合/过拟合/欠拟合,及加正则化项对模型的不同修正作用。 拟合:机器学习模型在训练的过程中,通过更新参数,使模型不断契合可观测数据(训练集)的过程...
  • cymy001
  • cymy001
  • 2018-01-21 11:13:28
  • 154

机器学习防止过拟合之L1范数(正则)与LASSO

机器学习过拟合问题对于机器学习问题,我们最常遇到的一个问题便是过拟合。在对已知的数据集合进行学习的时候,我们选择适应度最好的模型最为最终的结果。虽然我们选择的模型能够很好的解释训练数据集合,但却不一定...
  • qiao1245
  • qiao1245
  • 2016-11-03 13:56:42
  • 3798

机器学习中L1正则化和L2正则化的区别

机器学习中L1正则化和L2正则化的区别是? 正确答案: A D   你的答案: B C (错误) 使用L1可以得到稀疏的权值 使用L1可以得到平滑的权值 使...
  • Stand1210
  • Stand1210
  • 2016-09-09 18:02:48
  • 2362
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 3万+
    积分: 2271
    排名: 2万+
    博客专栏
    文章分类
    最新评论