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

全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的训练效果

After 858 Batches (2 Epochs):
Validation Accuracy
   65.340% -- tf.random_uniform [0, 1)
Loss
   64.356  -- tf.random_uniform [0, 1)

设置 UniformDistribution权重的方式

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

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

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的训练效果

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

UniformDistribution稍微有所提高

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

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

结论

一般来说就用 TruncatedNormalDistribution,效果是最猴滴~

原文发布于微信公众号 - 林欣哲(gh_aba6caba3ac7)

原文发表时间:2018-03-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python小屋

Python切分图像小案例(1、3、2、4象限子图互换)

首先解释上一篇文章详解Python科学计算扩展库numpy中的矩阵运算(1)最后的习题,该问题答案是10 ** 8 = 100000000,原因在于Python...

43070
来自专栏机器学习算法原理与实践

用Spark学习FP Tree算法和PrefixSpan算法

    在FP Tree算法原理总结和PrefixSpan算法原理总结中,我们对FP Tree和PrefixSpan这两种关联算法的原理做了总结,这里就从实践的...

28930
来自专栏java初学

MD5算法

20440
来自专栏AI研习社

如何利用微信监管你的TF训练?

之前回答问题【在机器学习模型的训练期间,大概几十分钟到几小时不等,大家都会在等实验的时候做什么?(http://t.cn/Rl8119m)】的时候,说到可以用微...

37240
来自专栏進无尽的文章

动画| 类似Windows的气泡屏保效果

有时候我们在打印一些CG类型的变量是,无法打印,利用UIKIT中的API可以很方便的实现 字符串和CG变量之间的转换。

42720
来自专栏深度学习思考者

matlab 数据预处理及常用操作

img_out = repmat(img,[10000 1]);%生成一个1万行的img矩阵 img=zeros(1,1024); %zeros生成为0的矩...

32790
来自专栏技术沉淀

命令行工具:csvkit命令行操作csv

28260
来自专栏Petrichor的专栏

leetcode: 36. Valid Sudoku

17930
来自专栏简书专栏

基于tensorflow+CNN的搜狐新闻文本分类

tensorflow是谷歌google的深度学习框架,tensor中文叫做张量,flow叫做流。 CNN是convolutional neural netwo...

31420
来自专栏小樱的经验随笔

qsc oj 22 哗啦啦村的刁难(3)(随机数,神题)

哗啦啦村的刁难(3) 发布时间: 2017年2月28日 20:00   最后更新: 2017年2月28日 20:01   时间限制: 1000ms   内存限制...

29490

扫码关注云+社区

领取腾讯云代金券