使用批量归一化时的嘈杂验证损失(相对于纪元)

JMa*_*arc 5 validation deep-learning keras batch-normalization

我在 Keras 中使用以下模型:

输入/conv1/conv2/maxpool/conv3/conv4/maxpool/conv5/conv6/maxpool/FC1/FC2/FC3/softmax(2个节点)。

当我在每次激活 (Wx) 之后和非线性 ReLu(Wx) 之前使用 Batch Normalization 时,验证的损失和准确性是嘈杂的(Red=Training_set / Blue=validation_set):

图1-与BN。

如果我删除 BN 层,则验证损失与训练损失一样平滑 图2.

我已经尝试了以下(但没有奏效):

1.将批量大小从 64 增加到 256 2. 降低学习率 3. 添加 L2-reg 和/或不同幅度的 dropout 4. 训练/验证拆分比率:20%、30%。仅供参考,数据集是 kaggle 猫狗图像。