我已经使用 python 和 numpy 实现了一个神经网络(NN),仅用于学习目的。我已经对学习率、动量和 L1/L2 正则化进行了编码,并通过梯度检查检查了实现。
几天前,我使用原始论文提供的公式实现了批量标准化。然而,与学习/动量/正则化相比,批量归一化过程在拟合和预测阶段表现不同——这两者都是梯度检查所必需的。当我们拟合网络时,批量归一化计算每个批次的平均值并估计在我们想要预测某事时要使用的总体平均值。
以类似的方式,我知道我们可能不会在具有dropout的神经网络中执行梯度检查,因为 dropout 在拟合期间会将一些梯度变为零,并且在预测期间不会应用。
我们可以通过批量归一化在 NN 中执行梯度检查吗?如果是这样,怎么做?