zoukankan      html  css  js  c++  java
  • 神经网络的梯度下降

    单层神经网络的参数:w[1] ,b[1] ,w[2] ,b[2]

    以及还包括n[0]个输入特征,n[1]个隐藏单元,n[2]个输出单元

    矩阵w[1]的维度是( n[1],n[0] ), b[1]的维度是( n[1],1 ),w[2]的维度是( n[2],n[1] ),b[2]的维度是( n[2],1 )

    成本函数 J(w[1] ,b[1] ,w[2] ,b[2] )= 1/m Σ L( a[2] , y )

    在训练神经网络时,随机初始化参数很重要

    repeat {

      dw[1] = dJ / dw[1]    ,         db[1] = dJ / db[1]

           w[1] = w[1]   — αdw[1]

      b[1] = b[1]   — αdb[1]

      w[2] = w[2]   — αdw[2]

       b[2] = b[2]   — αdb[2]

    }  //这是梯度下降的一次迭代循环

    正向传播过程:

    z[1] = w[1]x + b[1]

    A[1] = g[1]( z[1] )

    z[2] = w[2]x + b[2]

    A[2] = g[2]( z[2] ) = σ( z[2] )

    反向传播过程:

    dz[2] = A[2] - Y

    dw[2] = 1/m dz[2]A[1]T

    db[2] = 1/m np.sum( dz[2] , axis = 1 , keepdims = True )                    //这是python中用来对矩阵的一个维度求和,axis=1是指水平方向求和,而再加上

                                                                                                           keepdims就是防止python直接输出这些古怪的秩为1的数组。确保python输出的是矩

                                                                                                           阵,对于db[2]这个向量输出的维度是(n,1)

    dz[1] = w[2]Tdz[2] * g[1] ' ( z[1] )                                                               //g[1] '  是导数

    dw[1] = 1/m dz[1] xT

    db[1] = 1/m np.sum( dz[1] , axis = 1 , keepdims = True )

  • 相关阅读:
    GenericServlet和HttpServlet有什么区别?
    什么是RMI?
    【WPF学习】第十八章 多点触控输入
    【WPF学习】第十七章 鼠标输入
    【WPF学习】第十六章 键盘输入
    【WPF学习】第十五章 WPF事件
    【WPF学习】第十四章 事件路由
    【WPF学习】第十三章 理解路由事件
    【WPF学习】第十二章 属性验证
    【WPF学习】第十一章 理解依赖项属性
  • 原文地址:https://www.cnblogs.com/nhdmmdxq/p/9555698.html
Copyright © 2011-2022 走看看