《深度学习之图像识别核心技术与案例实战》—2.2.2 参数初始化方法

举报
华章计算机 发表于 2019/06/01 23:54:05 2019/06/01
【摘要】 本书摘自《深度学习之图像识别核心技术与案例实战》一书中的第2章,第2.2.2节,作者是言有三 。

2.2.2  参数初始化方法

  为了让神经网络在训练过程中学习到有用的信息,参数梯度应该保持非零。在全连接神经网络中,参数初始化应该满足以下两个条件:

* 各层激活值不会出现饱和现象;

* 各层激活值不为0。

  若把参数都初始化为0,经过正向传播和反向传播后,所有参数经过相同的更新过程导致迭代获得的参数值都是一样的,严重地影响了模型的性能。一般只在训练SLP/逻辑回归模型时才使用0初始化所有参数,深度模型都不会使用0初始化所有参数。

  常用的参数初始化方法有如下几种。

  1.随机生成小的随机数

  将参数初始化为小的随机数,从均值为0,标准差是1的高斯分布中取样,这样参数的每个维度来自一个多维的高斯分布。一般而言,参数的初始值不能太小,因为较小的参数在反向传播时会导致过小的梯度产生,对于深度网络而言,会产生梯度弥散问题,降低参数的收敛速度。

  2.标准初始化

  权重参数从确定的区间内均匀随机取值,即从均匀分布中生成当前神经元的权重,其中d为每个神经元的输入数量。除以d,可以确保神经元的输出有相同的分布,提高训练的收敛速度。标准初始化方法隐层状态的均值为0,方差为常量的1/3,和网络的层数无关,即对Sigmoid函数而言,其自变量始终落在有梯度的范围内。

  3.Xavier初始化

  理想的初始化应该使各层的激活值和状态梯度的方差在传播过程中的方差保持一致,否则更新后的激活值方差若发生改变,将造成数据的不稳定。

  Xavier初始化首先作出如下3个假设,这3个都是关于激活函数的假设,也称为Glorot激活函数假设。

  (1)输入的每个特征方差一样:Var(x)。

  激活函数对称,这样就可以假设每层的输入均值都是0:

  

  (2)初始时,状态值落在激活函数的线性区域:。

  Xavier初始化取值为:

   image.png(2.8)

  (3)这个区间是根据以式(2.9)所得:

   image.png(2.9)

  其中,ni和ni+1表示输入和输出维度。激活值的方差和层数无关,反向传播梯度的方差和层数无关。Xavier通常与ReLU共同使用。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。