我是靠谱客的博主 安静小馒头,最近开发中收集的这篇文章主要介绍参数初始化Weight Initialization,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

参数初始化Weight Initialization

  • 全零初始化:无法进行模型训练
  • 随机初始化:使用小的随机数(高斯分布,零均值,1e-2标准差)初始化
    小网络可以,对于深度网络有问题。网络输出数据分布的方差会随着神经元的个数而改变。
  • Xavier初始化
    • 为保证前向传播和反向传播时每一层的方差一致。根据每层的输入个数和输出个数来决定参数随机初始化的分布范围。
      高斯分布的权重初始化为:高斯分布的随机数乘上
      2 n i n + n o u t frac{sqrt{2}}{sqrt{n_{in}+n_{out}}} nin+nout 2
      其中: n i n n_{in} nin n o u t n_{out} nout分别表示该层输入和输出的参数(权重)个数。

注:原论文是基于线性函数推导的,同时在tanh激活函数上有很好的效果,但不适用于ReLU激活函数。

  • He参数初始化
    对Xavier方法的改进,将ReLU非线性映射造成的影响考虑进参数初始化中。
    高斯分布的权重初始化为:高斯分布的随机数乘上 2 n i n frac{sqrt{2}}{sqrt{n_{in}}} nin 2
    均匀分布的权重初始化为:均匀分布的随机数乘上 2 n i n frac{sqrt{2}}{sqrt{n_{in}}} nin 2

小结:

  • 使用ReLU(without BN)激活函数时,最好选用He初始化方法,将参数初始化为服从高斯分布或者均匀分布的较小随机数
  • 借助预训练模型中参数作为新任务参数初始化的方式也是一种简便易行且有效的模型参数初始化方法
  • 一般情况下,偏置设为0

最后

以上就是安静小馒头为你收集整理的参数初始化Weight Initialization的全部内容,希望文章能够帮你解决参数初始化Weight Initialization所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部