l2tp连接尝试失败 因为安全层在初始化_深度学习之7——参数初始化

梯度下降法需要再开始训练时给每一个参数赋初始值,初始值的选取十分关键,好的初始值选定可以极大的缩减网络训练的时间,很快达到全局最优解。

神经网络中所有权重的初始值为什么不能全部初始化为0?[1]为什么在logistic回归中,参数可以全初始化为0?[2]

ca1aa9040fb123ce43c15e080e2fb6bc.png

假设如图的神经网络,权重参数全部初始化为0,那么我们可以得到:

我们知道初始时,

全为0,因此:

由于同一层激活函数相同:

得到神经网络最终的输出(末层激活函数:

):

我们已知真实预测值和损失函数

,开始BP算法:

同理可得:

;
,将其记为

那么参数更新:

,以此类推:每一层参数更新后的值都是相同的。后面不断的正向和反向传播,每一层的参数更新之后的值都是相同的。那么带来的问题就是:
所有参数值一样,意味着不同的结点根本无法学习到不同的特征,通过不同结点的输出值始终是相同的。这就失去了神经网络特征学习的意义。换句话说,每层所有结点的值都一样,就相当于该层只有一个结点发挥了作用。因此初始化全为0很有可能导致模型失败,无法收敛。这种现象称为“对称权重现象”。

那么Logistic回归的参数为什么能初始化为0?

Logistic回归没有隐藏层。 如果将权重初始化为零,则Logistic回归中的第一个示例x将输出零,但Logistic回归的导数取决于不是零的输入x(因为没有隐藏层)。 因此,在第二次迭代中,如果x不是常量向量,则权值遵循x的分布并且彼此不同。

随机初始化

如何选取合适的随机初始化区间?

如果参数太小,会导致神经元输入过小,经过多层之后信号就慢慢消失,参数过小还会使得sigmoid型函数丢失非线性能力(参考sigmoid函数曲线,在接靠近0的位置接近于线性)。如果参数取得太大,会导致输入状态过大,对于sigmoid型激活函数来说,激活值变得饱和,从而导致梯度接近于0。

如果一个神经元的输入连接很多,它的每个输入连接上得权重就应该小一些,以避免神经元的输出过大(激活函数为relu)或过饱和(当激活函数为sigmoid函数)。

Gaussian分布初始化

参数从一个固定均值和固定方差的Gaussian分布进行随机初始化。

当一个神经元的输入连接数量为

时,可以设置其输入连接权重以
的Gaussian分布进行初始化。如果同时考虑输出的数量
,可以按
的Gaussian分布进行初始化。

均匀分布初始化

给定一个区间

内采用均匀分布初始化参数。超参数r的设置也可以按照神经元的连接数量进行自适应调整。

Xavier初始化:如果神经元激活函数为logistic函数,对于第

到第
层的权重参数区间r可以设置为:
是第
层神经元个数。对于tanh函数,r可以设置为

参考书籍:《神经网络与深度学习》—邱锡鹏

参考

  1. ^神经网络参数为什么不能初始化全为0 https://blog.csdn.net/qq_15505637/article/details/79362970
  2. ^为什么logistic回归参数可以初始化为0 https://www.jianshu.com/p/02b529634868
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值