一、参数初始化原则
参数初始化作为模型训练的起点,决定了模型训练的初始位置。选择的好坏很大程度影响收敛的速度与最终的训练结果。一般来说,参数初始化遵循以下几点要求:
- 不建议同时初始化为一个值,容易出现“对称失效”
- 最好保证均值为0,正负交错,参数大致数量相等
- 初始化参数不要太大或太小,前者会导致梯度发散难以训练,后者会导致特征对后面的影响逐渐变小
二、常见的初始化方法
1、全零初始化与随机初始化
如果神经元的权重被初始化为0, 在第一次更新的时候,除了输出之外,所有的中间层的节点的值都为零。一般神经网络拥有对称的结构,那么在进行第一次误差反向传播时,更新后的网络参数将会相同,在下一次更新时,相同的网络参数学习提取不到有用的特征,因此深度学习模型都不会使用0初始化所有参数。
随机初始化顾名思义,一般值大了容易饱和,小了对后面的影响太小,激活函数的效果也不好。
2、Glorot初始化方法
(1)正态化的Glorot初始化——glorot_normal
Glorot 正态分布初始化器,也称为 Xavier 正态分布初始化器。它从以 0 为中心,标准差为 stddev = sqrt(2 / (fan_in + fan_out)) 的截断正态分布中抽取样本。其中 fan_in 是权值张量中的输入单位的数量, fan_out 是权值张量中的输出单位的数量。
(2)标准化的Glorot初始化——glorot_uniform
Glorot 均匀分布初始化器,也称为 Xavier 均匀分布初始化器。
它从 [-limit,limit] 中的均匀分布中抽取样本, 其中 limit 是 sqrt(6 / (fan_in + fan_out)), fan_in 是权值张量中的输入单位的数量, fan_out 是权值张量中的输出单位的数量。

最低0.47元/天 解锁文章
546

被折叠的 条评论
为什么被折叠?



