zoukankan      html  css  js  c++  java
  • 深度学习-初始化权重矩阵

    1.初始化权重矩阵为0

    对于每个隐含层节点,输出的结果都是一样的。另外,进行梯度下降时,由于偏导一样,因此不断迭代,不断一样,不断迭代,不断一样..多层神经网络表现的跟线性模型一样,不可取!

    2.随机初始化权重矩阵

    (1)标准正态分布

       np.random.rand(size_l,size_l-1)

       可能导致梯度下降或者梯度爆炸的问题

    (2)启发式来根据非线性激活函数初始化权重

       ---梯度下降

        对于深度网络来说,对于任何激活函数,梯度将随着反向传播期间每层向后移动变得越来越小。梯度变小,权重更新缓慢,网络收敛速度变慢。甚至可能阻止网络进一步训练!

      ---梯度爆炸

        与梯度下降相反,对于任何激活函数,梯度变化越来越大,可能导致网络跳过最优值或者在附近波动,而永远无法收敛。

           解决方法:启发式方法

      对于激活函数ReLu:

        W[l] = np.random.rand(size_l,size_l-1)*np.sqrt(2/size_l-1)

      对于激活函数tanh(又称为Xavier初始化):

        W[l] = np.random.rand(size_l,size_l-1)*np.sqrt(1/size_l-1)

      其他形式的启发式方法:

        W[l] = np.random.rand(size_l,size_l-1)*np.sqrt(1/(size_l-1+size_l))

      

    非学无以广才,非志无以成学! 【Magic_chao

  • 相关阅读:
    Servlet项目 创建方法
    1. 连接数据库
    Jsp application对象(全局变量)
    Jsp session属性、方法
    让python 3支持mysqldb的解决方法
    Python读写文件(进阶)
    python操作MongoDB
    使用Python Pandas处理亿级数据
    SurfingTheInternet
    matplotlib中日期显示(不显示为科学计数法)
  • 原文地址:https://www.cnblogs.com/logo-88/p/8951333.html
Copyright © 2011-2022 走看看