首页 文章

在第一个时代之后过度拟合

提问于
浏览
7

我使用卷积神经网络(通过Keras)作为我的面部表情识别模型(55名受试者) . 我的数据集非常难,大约450k,有7个 class . 我根据每个科目和每个 class 标签 balancer 了我的训练集 .

我实现了一个非常简单的CNN架构(具有实时数据增强功能):

model = Sequential()
model.add(Convolution2D(32, 3, 3, border_mode=borderMode, init=initialization,  input_shape=(48, 48, 3)))
model.add(BatchNormalization())
model.add(PReLU())
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Flatten())
model.add(Dense(256))
model.add(BatchNormalization())
model.add(PReLU())
model.add(Dropout(0.5))

model.add(Dense(nb_output))
model.add(Activation('softmax'))

在第一个时期之后,我的训练损失不断减少,而验证损失增加 . 很快会过度拟合吗?或者我的数据是否存在混淆问题?我还应该 balancer 我的测试集吗?

1 回答

  • 4

    这可能是任务很容易解决,并且在一个时代之后,模型已经学会了解决它,并且对更多时期的训练只会增加过度拟合 .

    但是如果你已经 balancer 了火车组而不是测试组,那么可能发生的是你正在训练一项任务(对均匀分布的数据进行表达识别)然后你正在测试一个稍微不同的任务,因为测试集是不均衡 .

相关问题