• 正则化可以防止过拟合的原因


    一、 过拟合

    首先我们需要明白什么是过拟合,由下图可知,对于(2)图则是出现了非常明显的过拟合。

    从图中我们可以发现过拟合的特征,具有非常强的非线性特征,几乎让训练误差接近于0。

    二、 正则化的思路

    对于正则化,我们则是想要降低这种非线性的特征。这是我们的目的,我们来观察一下我们的非线性特征产生的原因——激活函数。

    我们选取tanh的函数进行分析,从图中可以看出,非线性特征需要在于当x远大于0的时候,y的结果趋向于正负一而与x的产生非线性关系。

    而从图中可以看出,当z(横轴)接近0时,非线性特征并没有特别明显,换句话说,函数更具有线性特征。

    因此我们这里采取的方案就是想要z更加接近0,以此削弱非线性特征。

    而以上讨论的z则是神经网络中每一层网络通过Z[l]=W[l]A[l]+b[l]计算得来的。

    若是想要Z更加接近于0,由于A是通过计算出来的,我们只可以通过优化W和b让Z更加接近于0。

    至此,我们已经发现了我们的目的,即让W和b更加接近于0。

    三、 正则化的实施

    我们来看正则化的究竟做了什么?

    $J=frac{1}{mathrm{m}} sum_{mathrm{i}}^{m} Lleft(widehat{y}^{(i)}, y^{(i)} ight)+frac{lambda}{2 m}|w|^{2}$

    从这个式子里,我们看到,为了让J,也就是我们的cost下降,一方面我们可以通过损失函数L来拟合预测值和真实值,另一方面,我们也需要减小w。

    事实上,有些正则化的方法中,也用了b,但是w的正则化对于模型的影响更大。

    让我们从梯度下降的过程中再看一下这个过程。

    $frac{d J^{[l]}}{d w}=left(frac{mathrm{d} J}{d Z} * frac{d Z}{d w} ight)+frac{lambda}{m} w^{[l]}$
    $w^{[l]}=w^{[l]}-partial d w^{[l]}=left(1-frac{partial lambda}{m} ight) w^{[l]}-partialleft(frac{mathrm{d} J}{d Z} * frac{d Z}{d w} ight)$

    其中对Z的偏导并无差别,这里就不写出结果了。可见在梯度下降的过程中w首先就以更接近0的姿态,进入下一次迭代的过程。

    在深度学习框架中,大家比起L1范数,更钟爱L2范数,因为它更加平滑和稳定。

    以上,便是对正则化防止过拟合的理解。

  • 相关阅读:
    模糊化控制
    第8章 控制对象的访问(setter、getter、proxy)
    第7章 面向对象与原型
    Termux键盘配置
    在md里画流程图
    设置浏览器不缓存文件
    安卓手机使用Termux及搭建FTP服务器
    第6章 未来的函数:生成器和promise
    第5章 精通函数:闭包和作用域
    第4章 函数进阶:理解函数调用
  • 原文地址:https://www.cnblogs.com/siyuan-Jin/p/12386146.html
Copyright © 2020-2023  润新知