美文网首页
Day 3: 参数初始化

Day 3: 参数初始化

作者: andyjkt | 来源:发表于2019-11-17 11:15 被阅读0次

神经网络参数初始化

神经网络结构图

神经网络的参数主要是权重(weights):W, 和偏置项(bias):b

1) 0初始化

不管是哪个神经元,它的前向传播和反向传播的算法都是一样的,如果初始值也一样的话,不管训练多久,它们最终都一样,都无法打破对称(fail to break the symmetry),那每一层就相当于只有一个神经元,最终L层神经网络就相当于一个线性的网络,如Logistic regression

因此,我们决不能把所有参数初始化为0,同样也不能初始化为任何相同的值,因为我们必须“打破对称性”

2)随机初始化

b不用随机初始化,因为w随机之后,已经打破对称,b就一个常数,无所谓了

random.rand()是在0~1之间随机,random.randn()是标准正态分布中随机,有正有负

np.zeros(())这里是两个括号,random.randn()是一个括号

sigmoid函数

(1)放大版随机初始化(w*10)

效果不好,因为sigmoid函数中间的斜率大,两边的斜率小还趋于零。所以当我们把随机的值乘以10了之后,我们的初值会往两边跑,那么我们的梯度下降就会显著变慢,可能迭代半天,才下降一点点

(2)缩小版随机初始化(w/10)

我们把w都除以10,实际上就接近0了,深度学习中我们认为参数越大,模型越复杂;参数越小,模型越简单。所以除以10之后,参数太小了,模型就too simple了,效果当然不好。

3) 何氏初试法(He Initialization)

在我们随机初始化了之后,乘以

,这样就避免了参数的初始值过大或者过小

W = np.random.randn(num_of_dim[l],num_of_dim[l-1])*np.sqrt(2/num_of_dim[l-1]) # W的维度是(当前层单元数,上一层单元数)

推荐针对使用ReLU激活函数的神经网络使用的

4) Xavier Initialization

推荐给sigmoid的Xavier Initialization


参考文献

相关文章

  • Day 3: 参数初始化

    神经网络参数初始化 神经网络的参数主要是权重(weights):W, 和偏置项(bias):b 1) 0初始化 不...

  • JavaWeb

    初始化参数 全局初始化参数 定义在web.xml中 获得全局初始化参数的方法: 初始化参数(局部变量) 在3.0之...

  • 2019-04-30 Day9

    Day 9 6.1 参数的更新 6.2 权重初始值 6.2.1 权重初始化为0? 权值衰减是一种通过减小权重参数的...

  • Swift 初始化

    初始化 init() 初始化形式参数 形式参数和实际参数标签和无实际参数 可选值类型 指定初始化器和便捷初始化器 ...

  • OpenSLES 播放音频

    一、播放流程 二、步骤 1、初始化引擎 2、slCreateEngine参数 3、SLObjectItf 创建 4...

  • Netty源码-PooledByteBufAllocator静态

    1 概述 2 重要静态变量 3 静态初始化语句块的参数初始化 1 概述 众所周知,采用直接内存(off-heap)...

  • 线性回归练习

    单输入线性回归练习 1.导入需要用的模块 2.初始化参数注意:初始化参数时要初始化为向量,例如初始化为x = to...

  • TemplateResponse

    SimpleTemplateResponse 初始化 初始化接收参数 template context conte...

  • 轻松学习 JavaScript——第 3 部分:函数中的默认参数

    JavaScript函数可以有默认参数值。通过默认函数参数,你可以初始化带有默认值的正式参数。如果不初始化具有某些...

  • 18/1

    1.新类型: 2.统一的初始化用{}(3个使用场景) 3.std::initializer_list:支持可变参数...

网友评论

      本文标题:Day 3: 参数初始化

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