Можно ли использовать сеть Encoder-Decoder для разных входов и выходов?
Работа над проблемой перевода изображений. Получил много пар входных-выходных изображений, скажем, эскиз в качестве входных данных, переведенный эскиз в качестве выходных данных. Изображения черно-белые с шириной эскиза в 1 пиксель.
Можно ли использовать простой кодер-декодер для обучения переводу изображения?
Ниже приведен фрагмент кода https://blog.keras.io/building-autoencoders-in-keras.html который показывает, как запрограммирован автоматический кодировщик. Очевидно, что, будучи автоэнкодером, вход и выход отображаются одинаково.
autoencoder.fit(x_train, x_train,
epochs=50,
batch_size=256,
shuffle=True,
validation_data=(x_test, x_test))
Но здесь вместо "x_train, xtrain" в качестве первых двух аргументов я могу дать "x_train, y_train", где x_train - входные изображения, а y_train - выходные изображения?
Это теоретически правильно? Будет ли работать следующий оптимизатор и функция стоимости?
autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy')
Обычно для такой работы используются сети Pix2Pix. Но главный принцип GAN заключается в том, что они изучают функцию затрат для получения хорошего результата.
В моей задаче функция стоимости очень детерминистична, а не пиксель тут и там подойдет. Так что ошибка может быть четко определена.
Теоретически правильно даже попробовать Pix2Pix здесь?