这是一个很好的模型,其验证损失仍低于火车曲线,随着两者的减少,或多或少地存在恒定的缺口?

时间:2019-06-19 08:23:53

标签: keras deep-learning batch-normalization tf.keras dropout

增加辍学层使val损失保持低于火车损失,在此期间是否有恒定的泛化差距? The train and val loss curve

这是架构:

tf.keras.layers.CuDNNLSTM(1024,input_shape=(9,41),return_sequences=True) ,
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Dropout(0.4),
tf.keras.layers.CuDNNLSTM(512, return_sequences=True),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Dropout(0.4),
tf.keras.layers.CuDNNLSTM(256),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Dropout(0.4),
tf.keras.layers.Dense(3, activation=tf.nn.softmax)

2 个答案:

答案 0 :(得分:1)

在使用Dropout层时这是正常现象,原因在于Dropout在训练过程中增加了噪声,训练损失略有增加,而泛化能力的提高使验证损失有所减少,从而产生了这种倒置效果见。

是的,具有这种泛化差距是正常的。

答案 1 :(得分:0)

无论训练损失是否高于验证损失,反之亦然或两者之间存在合理的差距,这始终是一种基于损失曲线解释损失曲线的更好方法。即使验证损失高于训练损失并且两者都持续减少,也可以继续训练[直到验证损失不再进一步优化为止]。

PS:在较深的层中使用丢弃比在浅层中总是更好,其原因是部分信息分解原理,因为浅层包含协同信息,而较深层包含唯一和冗余信息。