隐含层权重的初始化方式的对比实验

作者: 林檎果 | 来源:发表于2018-03-21 11:25 被阅读23次

全1或全0初始化

全1或全0初始化的训练效果


全1或全0初始化的训练效果
After 858 Batches (2 Epochs):
Validation Accuracy
   11.260% -- All Zeros
    9.900% -- All Ones
Loss
    2.300  -- All Zeros
  372.644  -- All Ones

全1和全0的方式都不好,因为大家都一样,反向传播算法不知道更新哪一个

Uniform Distribution

Uniform Distribution的训练效果


Uniform Distribution的训练效果
After 858 Batches (2 Epochs):
Validation Accuracy
   65.340% -- tf.random_uniform [0, 1)
Loss
   64.356  -- tf.random_uniform [0, 1)

设置Uniform Distribution权重的方式

通用的方法是,设置一个0左右的不太小的区间。

一个好的选择起点是从$ y=\frac 1 {\sqrt{n}} $公式选取[−y, y],公式里的n是神经元输入的个数。

y的不同区间值的效果


y的不同区间值的效果
After 858 Batches (2 Epochs):
Validation Accuracy
   91.000% -- [-1, 1)
   97.220% -- [-0.1, 0.1)
   95.680% -- [-0.01, 0.01)
   94.400% -- [-0.001, 0.001)
Loss
    2.425  -- [-1, 1)
    0.098  -- [-0.1, 0.1)
    0.133  -- [-0.01, 0.01)
    0.190  -- [-0.001, 0.001)

如果设置的太小会有问题

Normal Distribution

Normal Distribution的训练效果


Normal Distribution的训练效果
After 858 Batches (2 Epochs):
Validation Accuracy
   96.920% -- Uniform [-0.1, 0.1)
   97.200% -- Normal stddev 0.1
Loss
    0.103  -- Uniform [-0.1, 0.1)
    0.099  -- Normal stddev 0.1

Uniform Distribution稍微有所提高

Truncated Normal Distribution

Truncated Normal Distribution的训练效果


Truncated Normal Distribution的训练效果
After 858 Batches (2 Epochs):
Validation Accuracy
   97.020% — Normal
   97.480% -- Truncated Normal
Loss
    0.088  — Normal
    0.034  -- Truncated Normal

模型再大点差别会更明显,因为正态分布有些过大过小的数会影响模型,而截断他就少受影响

结论

一般来说就用Truncated Normal Distribution,效果是最好的

关于我:

linxinzhe,全栈工程师,目前供职于某世界500强银行的金融科技部门(人工智能,区块链)。

GitHub:https://github.com/linxinzhe

欢迎留言讨论,也欢迎关注我~
我也会关注你的哦!

相关文章

  • 隐含层权重的初始化方式的对比实验

    全1或全0初始化 全1或全0初始化的训练效果 全1和全0的方式都不好,因为大家都一样,反向传播算法不知道更新哪一个...

  • TensorFlow 基础(5)

    感知机(单层神经网络) 输入层 输出层: 初始化权重 初始化权重 设计模型 损失函数通过推导我们可以得到 变化率...

  • 学习笔记TF026:多层感知机

    隐含层,指除输入、输出层外,的中间层。输入、输出层对外可见。隐含层对外不可见。理论上,只要隐含层节点足够多,只有一...

  • 深度学习最佳实践系列——权重w初始化

    摘要:本文是深度学习最佳实践系列博客之权重初始化,主要介绍权重初始化的相关问题及方法,文中提及的权重初始化方法均可...

  • Kotlin学习之初探——类的构造和初始化、成员

    初始化块对比 属性必须初始化 副构造器 推荐使用主构造器默认参数的方式 构造同名的工厂函数 可见性对比 修饰对象 ...

  • 人工智能 - 多层感知机 MLP [3]

    欢迎Follow我的GitHub,关注我的简书 神经网络分为三层:输入层、隐含层、输出层。当引入非线性的隐含层后,...

  • 股票学习之路2018-04-12选股方法探索

    排一股失败的原因 个股排一要与权重对比,300101这个排一与权重000768对比,权重已经走弱。当板块权重大幅上...

  • 神经网络

    一、神经网络 神经网络也叫感知机(perceptron),拥有输入层、输出层和一个隐含层。输入的特征向量通过隐含层...

  • JAVAEE与人工智能实战之--神经网络的结构

    神经网络的网络结构由输入层,隐含层,输出层组成。隐含层的个数+输出层的个数=神经网络的层数,也就是说神经网络的层数...

  • BP神经网络流程

    1初始化 创建网络规模 创建网络规模列表 表示m+1层网络,第i层节点数为,输入为,输入为 创建权重列表(初始为随...

网友评论

    本文标题:隐含层权重的初始化方式的对比实验

    本文链接:https://www.haomeiwen.com/subject/twybqftx.html