Я работаю с классификацией видео из 5 классов и использую модель TimeDistributed CNN + RNN. Набор обучающих данных содержит 70 видео по 20 кадров в каждом классе. Набор данных проверки содержит 15 видео, по 20 кадров в каждом классе. Набор тестовых данных содержит 15 видео по 20 кадров в каждом классе. Я использовал размер пакета 64. Итак, в общей сложности я работаю с 500 видео. Я скомпилировал модель, используя оптимизатор RmsProp и категориальную потерю кросс-энтропии.
Я обучал модель за 65 эпох, но я заметил странный факт, что точность проверки становится выше, чем точность обучения в первую эпоху. в остальные эпохи кривая выглядит вполне удовлетворительно.
введите описание изображения здесь
Моя модель:
model = Sequential()
input_shape=(20, 128, 128, 3)
model.add(BatchNormalization(input_shape=(20, 128, 128, 3)))
model.add(TimeDistributed(Conv2D(32, (3, 3), strides=(1, 1),activation='relu', padding='same')))
model.add(TimeDistributed(MaxPooling2D((2, 2))))
model.add(TimeDistributed(Conv2D(64, (3, 3), strides=(1, 1),activation='relu', padding='same')))
model.add(TimeDistributed(Conv2D(128, (3, 3), strides=(1, 1),activation='relu', padding='same')))
model.add(TimeDistributed(Conv2D(128, (3, 3), strides=(1, 1),activation='relu', padding='same')))
model.add(TimeDistributed(MaxPooling2D((2, 2))))
model.add(TimeDistributed(Conv2D(256, (3, 3), strides=(1, 1),activation='relu', padding='same')))
model.add(TimeDistributed(MaxPooling2D((2, 2))))
model.add(TimeDistributed(Flatten()))
model.add(LSTM(256, activation='relu', return_sequences=False))
model.add((Dense(128,activation='relu')))
model.add(Dense(5, activation='softmax'))
Может ли кто-нибудь сказать мне, почему точность проверки становится выше, чем точность обучения в первую эпоху?