神经网络训练:权重初始化、更新方案与自适应学习率方法解析
1. 权重初始化
权重(和偏置)的初始化对神经网络的最终训练结果和训练时间有着显著影响。在初始化时,要避免选择那些会使激活函数值或其导数接近零的权重。常见的初始化方式是使用均匀分布的“随机”数,通常借助伪随机数(PRN)生成器来实现。
一般来说,初始权重会以某种方式在零附近生成小的正负值。不建议使用较大的初始权重,因为这可能导致误差导数变小,进而使权重改进缓慢,学习速度降低。
通常使用 PRN 生成器在区间 $[ - p, p ]$ 内计算初始权重,其中 $p$ 一般设定为某个范围内的常数,例如 $\frac{1}{4} \leq p \leq 5$。$p$ 的选择取决于激活函数的增益(由其参数指定)、训练数据集、学习方法以及训练期间使用的学习率。
对于使用简单逻辑函数的标准反向传播方法,最常用的区间可能是 $[ - 1, 1 ]$ 和 $[ - \frac{1}{2}, \frac{1}{2} ]$。例如,有研究对反向传播和类似反向传播的算法(如 Quickprop)的学习速度进行了详细研究,将这些算法应用于不同规模的编码器和解码器问题基准集,发现区间 $[ - 1, 1 ]$ 内的 PRN 效果良好,甚至 $p$ 大到 4 时也能取得不错的结果。
除了上述方法,还有其他初始化方案。比如,可以采用不同的方式初始化隐藏层和输出层的权重。例如,用围绕零分布的小 PRN 初始化隐藏层权重,用 +1 和 -1 均匀分布的值初始化输出层权重,这样做的目的是使隐藏层输出保持在中间范围,并尝试让输出层的值不会使导数过小。
如果一组初始权重无法得到理想的解决方案,就尝试另一组。
超级会员免费看
订阅专栏 解锁全文

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



