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

Ren*_*enz 7 machine-learning computer-vision neural-network deep-learning conv-neural-network

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

我实现了一个非常简单的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'))
Run Code Online (Sandbox Code Playgroud)

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

Gui*_*ull 4

可能该任务很容易解决,并且在一个时期之后,模型已经学到了足够的知识来解决它,而更多时期的训练只会增加过度拟合。

但是,如果您平衡了训练集而不是测试集,则可能发生的情况是您正在训练一项任务(均匀分布数据上的表达识别),然后您正在测试一项略有不同的任务,因为测试集是不平衡。