zoukankan      html  css  js  c++  java
  • 卷积神经网络 CNN

    dropout 是神经网络用来防止过拟合的一种方法,很简单,但是很实用。

    基本思想是以一定概率放弃被激活的神经元,使得模型更健壮,相当于放弃一些特征,这使得模型不过分依赖于某些特征,即使这些特征是真实的,当然也可能是假的。

    大致步骤

    1. 在神经元 H1 被激活后,随机生成一组数据 U1 和一个0-1的随机数 p

      H1 = np.maximum(0, np.dot(W1, X) + b1)
      U1 = np.random.rand(*H1.shape) < p 
    2. U1中小于p的被置1,大于p的被置0
      H1 *= U1 
      p 越大,被置1的越多,被保留的神经元越多
     

    使用方法

    1. 只用在训练过程,测试过程不要使用    【你非要使用,也可以,代码是可以跑的】
      // 因为训练是为了得到一个稳定的模型,但是测试时是实实在在的个体,是什么,理论上预测就是什么,如果你丢掉部分特征,那就是其他个体了,或者一会是A,一会是B,导致输出不稳定
      // tf 会自动处理 dropout 的使用场景,即 tf 已经设定在训练时使用 dropout,测试时不使用
    2. dropout 一般用在 pooling 之后 
  • 相关阅读:
    DRF JWT认证基础
    Shell简单脚本
    DockerFile案例
    Shell基础知识
    DockerFile基础知识
    tensorflow
    使用cv2将图片分割成相等的部分
    序列化心得
    python正则化表达式
    python--匿名函数(lambda)
  • 原文地址:https://www.cnblogs.com/yanshw/p/10533681.html
Copyright © 2011-2022 走看看