深度神经网络训练:设置、初始化与梯度问题解析
1. 导数相对比检验
在神经网络训练中,我们可以通过计算导数的相对比来检验梯度的正确性。设反向传播确定的导数为 $G_e$,前面提到的估计值为 $G_a$,则相对比 $\rho$ 定义为:
$\rho = \frac{|G_e - G_a|}{|G_e + G_a|}$
通常情况下,这个比值应小于 $10^{-6}$。不过,对于某些激活函数(如 ReLU),在特定点导数会有急剧变化,此时数值梯度可能与计算梯度不同,这种情况下比值仍应小于 $10^{-3}$。我们可以利用这个数值近似方法来测试各种边界情况,检查梯度的正确性。如果有上百万个参数,可以测试部分导数来快速检查。同时,建议在训练的两三个点进行检查,因为初始化时的检查可能是特殊情况,不能推广到参数空间的任意点。
2. 设置与初始化问题
神经网络的设置、预处理和初始化有几个重要问题。首先要选择神经网络的超参数(如学习率和正则化参数),特征预处理和初始化也很重要。与其他机器学习算法相比,神经网络的参数空间更大,这在很多方面放大了预处理和初始化的影响。
2.1 超参数调优
神经网络有大量超参数,如学习率、正则化权重等。超参数用于调节模型设计,与神经网络中表示连接权重的基本参数不同。在贝叶斯统计中,超参数用于控制先验分布,这里我们采用一种较为宽松的定义。在某种意义上,神经网络的参数有两层结构,主要模型参数(如权重)只有在手动或通过调优阶段固定超参数后,才能用反向传播进行优化。
超参数不应使用与梯度下降相同的数据进行调优,应留出一部分数据作为验证数据,在验证集上测试不同超参数选择下模型的性能,
超级会员免费看
订阅专栏 解锁全文
9万+

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



