Я тренирую автоэнкодер с 2000 одинаковыми изображениями. Я ожидаю, что, учитывая, что у автоэнкодера достаточно мощности, потеря приблизится к 0, а точность приблизится к 1 после определенного времени обучения. Вместо этого я вижу быстрое схождение к потерям = 0,07 и точности = 0,76. Уменьшение количества сверточных слоев дало некоторое улучшение. Уменьшение количества ядер на слой увеличило потери. После этого улучшения нет. Мои ожидания неверны? Или что-то не так с моей архитектурой автоэнкодера? Что можно сделать, чтобы сделать практически без потерь автоэнкодер?
input_img = Input(shape=(image_size_x, image_size_y, 1))
x = Conv2D(32, (3, 3), activation='relu', padding='same')(input_img)
x = MaxPooling2D((2, 2), padding='same')(x)
x = Conv2D(16, (3, 3), activation='relu', padding='same')(x)
x = MaxPooling2D((2, 2), padding='same')(x)
x = Conv2D(16, (3, 3), activation='relu', padding='same')(x)
x = UpSampling2D((2, 2))(x)
x = Conv2D(32, (3, 3), activation='relu', padding='same')(x)
x = UpSampling2D((2, 2))(x)
decoded = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x)
autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy')
Спасибо!