【发布时间】:2017-02-18 01:48:00
【问题描述】:
我使用卷积神经网络(通过 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'))
在第一个 epoch 之后,我的训练损失不断减少,而验证损失增加。过拟合会很快发生吗?还是我的数据混乱有问题?我还应该平衡我的测试集吗?
【问题讨论】:
-
如果您认为过拟合是您的问题,您可以尝试各种方法来解决过拟合,例如数据增强 (keras.io/preprocessing/image)、更多 dropout、更简单的网络架构等等。
标签: machine-learning computer-vision neural-network deep-learning conv-neural-network