Построение модели CNN для обработки ограниченного количества обучающих данных - PullRequest
0 голосов
/ 16 июня 2019

У меня есть набор данных изображения лица с ограниченным количеством данных, где более 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
...