zoukankan      html  css  js  c++  java
  • 正则化

    当用比较复杂的模型比如神经网络,去拟合数据时,很容易出现过拟合现象(训练集表现很好,测试集表现较差),这会导致模型的泛化能力下降,这时候,我们就需要使用正则化,降低模型的复杂度。正则化的目的是防止过拟合,减小误差。

    在学习正则化之前先来回顾L1范数和L2范数。

    L1范数:最小绝对值误差(LAE)。它是使目标值与预测值的绝对值总和最小化

     L2范数:最小平方误差(LSE)。它是目标值和预测值平方差的最小化。

           

     正则化:在目标函数后面添加一个系数的“惩罚项”,为了防止系数过大从而让模型变得复杂。在加了正则化项之后的目标函数为:

    ar{J}(w, b) = J(w, b) + frac{lambda}{2m}Omega(w)
     m 为样本个数, lambda 是一个超参数,用于控制正则化程度。

    L1正则化:w矢量中会有许多0,让矩阵变得稀疏,但作用不大(吴恩达老师说的)

    Omega(w)=||w||_1 = sum_{i}^{}{|w_i|}
    L2正则化: 在训练模型时,用的较多。
    Omega(w)=||w||_2^2 = sum_{i}^{}{w_i^2}

     

     w会乘以一个小于1的数字,会让梯度变得更小,如果λ过高,会使W接近0,参数接近为0的网络几乎不起作用,这样就会让网络变得简单,可以防止过拟合。

     如果网络很复杂,则使用正则化,λ如果过高,网络会从图3变为图1,所以,调整适当的λ值,让网络刚刚好。

  • 相关阅读:
    第四周作业
    第三周作业
    第二周基础作业
    抓老鼠
    币值转换
    打印沙漏
    秋季学期学习总结
    2019春第七周作业
    2019春第六周作业 学习总结
    第五周作业总结以及学习总结
  • 原文地址:https://www.cnblogs.com/gaona666/p/12419227.html
Copyright © 2011-2022 走看看