博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Regularization - Handle with the Overfitting Problem
阅读量:4920 次
发布时间:2019-06-11

本文共 1456 字,大约阅读时间需要 4 分钟。

一、什么是OverFitting

        我们说一个模型,他可以非常完美的拟合既定的训练数据,也就是代价(损失)函数
,但是对于新的数据,却不能很好的拟合,也就是不适应于泛化,这样我们就称模型过拟合(over fitting),如下图第三个图所示。此外,还有欠拟合(under fitting),也就是连训练数据也不能够很好地做到拟合,如下图第一个图所示。那么下面中间这个图,我们理想地称之为恰好拟合。
 
 

二、什么原因导致的OverFitting呢

        这里导致过拟合的主要原因在于,样本的feature过多,也就是说,当样本的特征很多的时候,为了去拟合全部的特征,而不加约束限制的话,有极大的可能,我们的模型会走极端,导致Over Fitting,体现在公式里面,就是诸如上面几个图里面恼人的高次项。当然这只是从我们自身找原因,觉得我们的算法太过于放纵,但是有些外部因素也可能导致过拟合,比如建模样本抽取错误,样本中的噪音过大,等等, 列举出了更多的导致过拟合的因素,可以围观。
 

三、如何解决因为Feature过多造成的OverFitting呢

     1. 减少Feature的数量

         
· 我们可以通过
手动筛选,哪些是我们想要的Feature,哪些不是,有些Feature可能都是冗余的,比如同样的土地,用不同的单位记录了多个Feature,那么如果这些单位不重要的话,我们觉得这些Feature是很多余的,因而要筛选之。
          
· 
此外,我们还可以通过一个
模型选择算法
来帮助我们筛选Feature,这种神奇的东西,我们留到后面来讲。
     
             但是不管怎么说,我们都是忍痛割爱,为了我们的理想,献出了一部分Feature的生命,因而导致最后的效果可能并不是最理想的。
 
     2. 正则化(Regularization)
              通过正则化的思想,我们可以保全所有的Feature,不让他们成为我们理想的牺牲品,我们通过减小代价函数里面的
的大小和数量级,来实现这一目标。

四、如何实现正则化(Regularization       

     

  我们说了,正则化的思想是通过减小代价函数里面的的大小和数量级,那么理所当然的,我们需要对我们的代价函数做一些手脚,在其中给他们加些约束,不让他们过于放纵,导致过拟合。

  我们用上面那六个图里面,右上角的那个图举例子。该图中使用了高阶多项式
,那么我们说正是因为这些恼人的高阶项,导致了过拟合的情况,所以,我们能做的就是使高阶项的系数能变得足够的小,以至于可以将其忽略掉。
      这里我们不考虑微积分怎么算出的下述结论,我们形象的做一个比喻,也就是我们之前说的约束,或者称其为惩罚(penalize)。我们想要高阶项的
可以足够的小,那么我们就加大力度对其惩罚,不让他们那样放纵,所以我们将代价函数附加上两项:
      这样一来,通过该代价函数梯度下降出来的最优解,所对应的
θ3
θ4
,就会很小了。
  所以我们通过这个例子,进行一次抽象,我们将我们的代价函数写成下面的样子:
        
      其中 λ 又称为正则化参数( Regularization Parameter),如果选择的正则化参数 λ 过大,则会把所有的参数都最小化了,导致模型变成 h
θ(x)=θ
0 ,造成矫枉过正的欠拟合
。 注:根据惯例,我们不对 θ
0
行惩罚。经过正则化处理的模型与原模型的可能对比如下图所示: 
 
        
 
 
     
 
 
 
        
        

转载于:https://www.cnblogs.com/zhkmxx930/p/5bdf019cc90d5a2236e31bb7124d05cf.html

你可能感兴趣的文章
硬盘的工作原理
查看>>
开发日志
查看>>
使用 Intellij Idea 导出JavaDoc
查看>>
js -- 写个闭包
查看>>
属性动画
查看>>
Xcode cannot run using the selected device after upgrade
查看>>
iOS 开发常用的一些工具
查看>>
CAAnimation动画的一些知识点
查看>>
雨后图标
查看>>
php 去除二维数组中的包含某一个值的数组
查看>>
CopyOnWrite容器
查看>>
【nginx】配置详解
查看>>
Flex各个keycode值对照
查看>>
react 从0到1
查看>>
ASP.NET 用 Office COM 组件将 docx\pptx\xlsx 转换成 PDF 文件
查看>>
oracle外部表的使用
查看>>
Liptables 从入门到应用
查看>>
SQL语句优化技术分析
查看>>
怎样用好ZBrush中的PaintStop插件
查看>>
mysql触发器使用if..then sql elseif then end if; 转自 吴大哥
查看>>