机器学习-正则化(理论)

    正则化即为对学习算法的修改,旨在减小泛化偏差而不是训练偏差。web

过拟合问题

    

    先来讲一下拟合的概念,拟合并非特指某一种方法,而是指一种数据处理的方式。简单的说就是你有一组数据,觉着这组数据和一个已知的函数很类似,为了获得这个最能表示这组数据特征的函数,经过拟合(具体的方法不少哦)这种方式求得参数。算法

    对于拟合的表现,可分为三种状况:
微信

  • 欠拟合编辑器

    没法很好的拟合训练集中的数据,预测值和实际值误差很大。特征选少了时易出现这类状况。(相似上课不学习,下课都不会)
函数

  • 优良的拟合   学习

    不管是训练集数据仍是不在训练集中的预测数据,都能给出较为正确的结果。spa

  • 过拟合
    .net

    能很好的拟合训练集中的数据,可是对于不在训练集中的新数据偏差会很大,泛化能力弱。这类状况出现于特征选多了。3d

PS:泛化能力指学习模型对新数据的预测能力。orm


    线性模型中的拟合状况:


  • 左图欠拟合。

  • 右图过拟合。


    逻辑分类模型中的拟合状况。

  • 左图欠拟合。

  • 右图过拟合。

    为了度量拟合表现,有两个概念须要知道:

  • 误差(bias)

    值模型的预测值和实际值的偏离程度。误差越大,预测值偏离真实值越厉害。

  • 方差(variance)

    指模型预测值的离散程度或变化范围。方差越大,数据的分布越分散,函数波动越大,泛化能力越差。方差低意味着拟合曲线的稳定性高,波动小。


    据此,咱们有对同一数据的各种拟合状况以下图:

    由上图可知:高误差意味着欠拟合,高方差意味着过拟合。


    咱们应尽可能使得拟合模型处于低方差(较好地拟合数据)状态且同时处于低误差(较好地预测新值)的状态。


    实际状况中咱们的学习算法常常会用到不少特征,当有这么多特征的时候,咱们的绘图也会变得很困难,经过可视化来决定保留哪些特征变量也更难。好比预测房价,可能有不少不少的特征跟房价都有关系,可是咱们却只有不多的训练数据,就会出现过分拟合的问题。


    避免过拟合的方法有:

  • 减小特征的数量

  1. 手动选取需保留的特征

  2. 使用模型选择算法来选取合适的特征。

PS:减小特征的方式易丢失有用的特征信息。

  • 正则化

  1. 可保留全部参数(许多有用的特征都能轻微影响结果)。

  2. 减小惩罚各参数大小(magnitude),以减轻各参数对模型的影响程度。

PS:当有不少参数对于模型只有轻微影响时,正则化方法的表现很好


代价函数的正则化


    不少时候因为特征数量过多,容易出现过拟合,可是咱们又很难选出不要的特征或者全部特征对咱们都相当重要,这时候应用正则化方法就是个很好的选择啦。

    为了保留各个参数的信息,修改代价函数为:

    上述公式中咱们在代价函数中加入了θ3和θ4的惩罚项。若是要最小化惩罚函数J(θ),那么势必要减少θ3和θ4的值,从而使得1000*θ3的平方和1000*θ4的平方这两项值很小,能够说这时θ3和θ4的值会变得很是小,能够说近似没有,假设函数变得简单了,从而在保留各个参数的条件下避免了过拟合问题。

    经过上面的介绍咱们知道,有时候没法肯定移除哪一个特征时,能够经过更改代价函数J(θ)来避免过拟合,可是决定减小哪一个θ参数也是一个问题,这里咱们能够统一惩罚除θ0以外的全部参数。

PS:这是种约定俗成的作法,和惩罚包括θ0在内的全部参数其实没有任何区别。

    改进后的代价函数J(θ):

    其中:

  • λ:正则化参数,相似于学习速率,也须要咱们自行对其选择一个合适的值,λ>0。

  • 不惩罚参数θ0。

  • 是正则化项。

    λ在上述公式中起着学习效率的做用。

  • 过大

  1. 致使模型欠拟合。(θ1至θj所有近似于0,假设函数可能变成近似等于θ0的一条直线。)

  2. 没法正常除去过拟问题。

  3. 梯度降低可能没法收敛。

  • 太小

  • 没法避免过拟合。(等于没有)


    在全部可能选择的模型中,可以很好地解释已知数据而且十分简单才是最好的模型,也就是应该选择的模型。


    正则化是结构风险最小化策略的实现,是去过拟合问题的典型方法,虽然看起来多了个一参数多了一重麻烦,可是有自动选取正则化参数的方法(后文会介绍)。模型越复杂,正则化参数值就越大。


线性回归的正则化


    应用正则化的线性回归梯度降低算法:

    也能够移项获得更新表达式的另外一种表示形式

    至关于θj乘以比1小一点的数(好比0.99),咱们每次都把参数缩小一点,而后进行和以前同样的更新操做。


    应用正则化的标准方程法:

    这里简单介绍一下标准方程法。

    对于一些线性回归的问题,用标准方程法求解参数θ的最优值会更好。

    要使得J(θ)最小,即为最低点,则使

    最终公式(特征矩阵X、输出矩阵Y、特征参数矩阵θ带入J(θ)中进行推导便可):

    梯度降低缺点:

  1. 须要选择学习效率α。(须要不断尝试)

  2. 须要迭代不少次。

    梯度降低优势:

  1. 在特征很是多的时候能很好运行。


    标准方程法缺点:

  1. 若是特征很是多就会计算很慢。

    标准方程法缺点:

  1. 不须要学习效率和迭代,更加方便快捷。


    吴恩达教授本身的经验:特征一万如下使用标准方程法,一万左右会考虑使用梯度降低法,一万以上使用梯度降低法。


    使用计算出来的θ,可使得代价函数J(θ)最小化,这时候的J(θ)是没有通过正则化的。

    正则化后的方程:

    

    

    其中:

  1. λ·L:正则化项。(λ>0)

  2. L:第一行第一列为0的n+1维单位矩阵。

    Python表示:


    正则化能够解决正规方程法中不可逆的问题,即增长了λ·L正则项后,能够保证XTX+λ·L可逆,即使XTX不可逆。

    这里扩展一下正规方程法中公式中(XTX)可能存在不可逆的状况,不可逆矩阵称为奇异矩阵或退化矩阵。

    XTX出现不可逆的状况其实不多发生。

    若是XTX不可逆,一般有两种最多见的缘由:

  • 因为某种缘由,学习问题包含了多余的特征。

    例如:在预测房价时有两个特征,一个是x1以平方英尺为单位的房子的面积,一个是x2以平方米为单位的房子的面积。由于1米等于3.28英尺,x1=3.28的平方*x2。两个特征不能像这样用线性方程联系起来,这样XTX将是不可逆的。

  • 有太多的特征(m<=n,即特征数量大于样本数量)

    

    若是发现XTX是不可逆的,建议看特征中是否有一些多余的特征,相似x1和x2这样线性相关的,能够删除一个没必要要二者都保留,直到没有多余特征为止。若是没有对于特征,咱们要检查一下特征数量,若是特征数量实在太多,少一点又不会影响的话,咱们要删除一些特征或者考虑正则化。

    总之出现不可逆矩阵的状况极少发生。


Logistic回归的正则化


    为逻辑回归的代价函数添加正则化项:

  

    从而有应用正则化的逻辑回归梯度降低算法:


本文分享自微信公众号 - 小啦的学习笔记(woshiguolala)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索