美文网首页
基于`affine-BN-ReLu`的简易神经网络详解

基于`affine-BN-ReLu`的简易神经网络详解

作者: 435fa00b72e7 | 来源:发表于2017-04-17 22:43 被阅读0次
  • 首先来解析一下什么是Batch Normalization
  • batch normalizations(批量归一化):
    • 公式:
BNforward.png
BNbackward.png
 - forward详解:
     - `input = {X,gamma,beta,eps}`
     - 取X的均值和方差`sample_mean`和`sample_var`
     - 对X进行正则化`(normalize)`
     - 通过`sample_mean`和`sample_var`更新在test中运行的值
        `running_mean = momentum * running_mean + (1-momentum)*sample_mean`
        `running_var = momentum * running_var + (1-momentum)*sample_var`
- backward详解:
     - `input = {dout cache}`
     - 按照公式反推(表达式很简单)
                  
            x_normalized,gamma,beta,sample_mean,sample_var,x,eps = cache
             N,D = x.shape
             dx_normalized = dout * gamma
             x_mu = x-sample_mean
             sample_std_inv = 1.0/np.sqrt(sample_var+eps)
             dsample_var = -0.5*np.sum(dx_normalized*x_mu,axis=0,keepdims=True)*sample_std_inv**3
             dsample_mean = -1.0*np.sum(dx_normalized*sample_std_inv,axis=0,keepdims=True) - \
                          2.0*dsample_var*np.mean(x_mu,axis=0,keepdims=True)
             dx1 = dx_normalized * sample_std_inv
             dx2 = 2.0/N*dsample_var*x_mu
             dx = dx1+dx2+1.0/N*dsample_mean
             dgamma = np.sum(dout*x_normalized,axis=0,keepdims=True)
             dbeta = np.sum(dout,axis=0,keepdims=True)
  • 基于affine-BN-ReLu的简易神经网络详解

MultilayerNeuralNetwork.png
  • 使用SGD,每次的输入是一个(N,D)的矩阵X
  • 经历两个隐藏层,每个隐藏层相当于全连接层-Batch Normalization层-ReLu层
  • 输出损失函数可以采用softmax或者svm hinge函数
  • 反向传播按照之前解释过的affine,BN,ReLu如何反向求导即可

相关文章

  • 基于`affine-BN-ReLu`的简易神经网络详解

    首先来解析一下什么是Batch Normalization batch normalizations(批量归一化)...

  • 动手学深度学习(十一) NLP循环神经网络

    循环神经网络 本节介绍循环神经网络,下图展示了如何基于循环神经网络实现语言模型。我们的目的是基于当前的输入与过去的...

  • 2020-02-25

    循环神经网络 本节介绍循环神经网络,下图展示了如何基于循环神经网络实现语言模型。我们的目的是基于当前的输入与过去的...

  • 动手学深度学习Task2笔记

    循环神经网络 什么是循环神经网络下图展示了如何基于循环神经网络实现语言模型。我们的目的是基于当前的输入与过去的输入...

  • Redis-简易投票

    一、简易投票介绍   基于Spring Boot+MyBatis+Redis+MySQL实现简易投票功能,完整代码...

  • Redis-简易秒杀

    一、简易秒杀介绍   基于Spring Boot+MyBatis+Redis+MySQL实现简易秒杀功能,完整代码...

  • 姓名:于倩学号:21011210116学院:通信工程学院 - 草

    人工神经网络(Artificial Neural Network,ANN)简称神经网络(NN),是基于生物学中神经...

  • 7.cnn

    1.卷积神经网络详解 2.卷积神经网络简介 卷积神经网络由一个或多个卷积层和顶端的全连通层(也可以使用1x1的卷积...

  • 循环神经网络脉络

    循环神经网络 下图展示了如何基于循环神经网络实现语言模型。我们的目的是基于当前的输入与过去的输入序列,预测序列的下...

  • 8.rnn

    1.循环神经网络详解 2. 循环神经网络 2.1 RNN简介 我们的大脑区别于机器的一个最大的特征就是我们有记忆,...

网友评论

      本文标题:基于`affine-BN-ReLu`的简易神经网络详解

      本文链接:https://www.haomeiwen.com/subject/ibyxzttx.html