深度神经网络训练:设置、初始化与梯度问题解析
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万+

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



