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  

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

  • 相关阅读:
    Jquery才可以使用 this 指定当前DOM
    微擎使用腾讯地图拾取坐标
    使用 MUI 自制 弹出层
    mui 底部导航栏
    PHP 向数组头部插入数据
    a 标签添加 onclick 事件
    # & 等特殊字符会导致传参失败
    HTML 颜色输入框修改事件的触发,以及获取修改后的颜色
    C++ malloc()函数的注意点及使用示例
    C++ malloc函数
  • 原文地址:https://www.cnblogs.com/lau1997/p/12361241.html
Copyright © 2011-2022 走看看