我有一个人脸图像数据集,数据量有限,其中超过70%的类别只有一个图像,其他的范围从2到100。我建立了一个CNN模型,并使用了数据扩充,数据丢失,L2归一化,批量归一化,但是准确性很低。当我在只有大量图像的唯一类上实现相同的模型时,精度会提高并返回非常好的识别结果。我可以采取什么措施来提高有限训练数据的准确性并对其进行改进,是否可以实施任何模型来实现所需的结果,或者我的模型中是否添加了任何流程来进行改进。我的模型如下:
Layer (type) Output Shape Param #
=================================================================
conv2d_1 (Conv2D) (None, 80, 80, 32) 896
_________________________________________________________________
activation_1 (Activation) (None, 80, 80, 32) 0
_________________________________________________________________
batch_normalization_1 (Batch (None, 80, 80, 32) 128
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 40, 40, 32) 0
_________________________________________________________________
dropout_1 (Dropout) (None, 40, 40, 32) 0
_________________________________________________________________
conv2d_2 (Conv2D) (None, 40, 40, 64) 18496
_________________________________________________________________
activation_2 (Activation) (None, 40, 40, 64) 0
_________________________________________________________________
batch_normalization_2 (Batch (None, 40, 40, 64) 256
_________________________________________________________________
max_pooling2d_2 (MaxPooling2 (None, 20, 20, 64) 0
_________________________________________________________________
dropout_2 (Dropout) (None, 20, 20, 64) 0
_________________________________________________________________
conv2d_3 (Conv2D) (None, 20, 20, 128) 73856
_________________________________________________________________
activation_3 (Activation) (None, 20, 20, 128) 0
_________________________________________________________________
batch_normalization_3 (Batch (None, 20, 20, 128) 512
_________________________________________________________________
max_pooling2d_3 (MaxPooling2 (None, 10, 10, 128) 0
_________________________________________________________________
dropout_3 (Dropout) (None, 10, 10, 128) 0
_________________________________________________________________
conv2d_4 (Conv2D) (None, 10, 10, 256) 295168
_________________________________________________________________
activation_4 (Activation) (None, 10, 10, 256) 0
_________________________________________________________________
batch_normalization_4 (Batch (None, 10, 10, 256) 1024
_________________________________________________________________
max_pooling2d_4 (MaxPooling2 (None, 5, 5, 256) 0
_________________________________________________________________
dropout_4 (Dropout) (None, 5, 5, 256) 0
_________________________________________________________________
conv2d_5 (Conv2D) (None, 5, 5, 512) 1180160
_________________________________________________________________
activation_5 (Activation) (None, 5, 5, 512) 0
_________________________________________________________________
batch_normalization_5 (Batch (None, 5, 5, 512) 2048
_________________________________________________________________
max_pooling2d_5 (MaxPooling2 (None, 2, 2, 512) 0
_________________________________________________________________
dropout_5 (Dropout) (None, 2, 2, 512) 0
_________________________________________________________________
flatten_1 (Flatten) (None, 2048) 0
_________________________________________________________________
dense_1 (Dense) (None, 128) 262272
_________________________________________________________________
activation_6 (Activation) (None, 128) 0
_________________________________________________________________
batch_normalization_6 (Batch (None, 128) 512
_________________________________________________________________
dropout_6 (Dropout) (None, 128) 0
_________________________________________________________________
dense_2 (Dense) (None, 135) 17415
_________________________________________________________________
activation_7 (Activation) (None, 135) 0
=================================================================
Total params: 1,852,743
Trainable params: 1,850,503
Non-trainable params: 2,240