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 )

  • 相关阅读:
    美国州名来源
    SQL Constraint/Index
    英语中的 姓氏/Surname
    GNU glibc
    英语人名探源/字母升序排列
    About 'atoi'
    封装一个类似jquery的ajax方法
    函数柯里化
    AngularJS实现TodoMVC
    webpack简单使用
  • 原文地址:https://www.cnblogs.com/nhdmmdxq/p/9555698.html
Copyright © 2011-2022 走看看