zoukankan      html  css  js  c++  java
  • 【8】正则化

    如果数据被过度拟合,导致方差过大,那么就可以用正则化:

    L2正则化(最常用的方法): 在之前的成本函数  J=后面加上 拉姆他是个参数,是人为定义的。m是训练样本数量,是权重矩阵w的所有元素的平方和。L是神经网络的层数,因为每层都有一个w矩阵,所以一共有L个W矩阵。

     正则化后的dw变为左图这个,左图的紫色部分是由于加入正则化多出来的部分。更新后的W定义如左图。

     Dropout正则化: 

     设置一定的概率随机去掉一部分结点。只要令某个结点与上层结点连接的权值w全为0即可实现“去掉”这个结点。

     上图为“Inverted drorpout”的一个例子,神经网络是三层的,想要去掉20%的节点,实现方法:构造一个d3矩阵,

     这个式子就会使d3里面80%是1,20%是0,然后让d3与a3相乘,得到了新的、20%为0的a3。然后让 a3/=0.8,这一步的原因是因为,由于20%的a3变为了0,所以Z4的期望值就会降低,为了不影响Z4,就让a3/0.8,从而增大Z4,不影响Z4的期望值。前述的例子是针对某一层的,对于不同层,keep-prob会不同

    第一层是0.7,第二层0.5,第三层0.7,后面的全是1

     其他的正则化方法:

    1.扩增数据   方法:将图片进行翻转、裁剪旋转等,扩大数据量,减小方差。

    2.Early stopping  

     该方法就是提前结束训练。因为通常损失函数会先减小再增加再减小,在训练的过程中拟合程度逐步增大,如果选择在一个局部较小的损失函数的时候就结束训练的话,那么拟合程度就不会太大,同时偏差也不会太大。

  • 相关阅读:
    MFC中实现LISTCRTL控件选中多行进行删除操作
    如何使属性值为“只读”(readonly)的EDIT控件在获取焦点后不显示光标?
    crm 使用stark组件
    ModelForm组件
    自定义admin管理工具(stark组件)
    Django-admin管理工具
    Django-session中间件源码简单分析
    基于角色的权限管理
    ajax参数补充
    datetime模块
  • 原文地址:https://www.cnblogs.com/lau1997/p/12361241.html
Copyright © 2011-2022 走看看