Насколько мне известно, методы, обратные сети, обычно являются методами состязательности (GAN) или делают это путем оптимизации вывода сети (скажем, оптимизация | f (x, y ') - z |, где y' - это выход в твоя проблема). Первый метод более популярен.
Давайте поговорим о первом методе подробнее. Мы называем сеть, которую вы обучили, чтобы изучать сеть x + y = z D. Вам нужно будет научить сеть (назовем ее G), чтобы получить x и z и получить y и затем D проверяет, является ли это правильным ответом (т. е. если x + y = z), мы продолжаем его до тех пор, пока G не научится удовлетворять D (я упустил некоторые детали, вы можете узнать больше, изучая GAN). Однако это больше похоже на переформулировку нашей проблемы.
Если вы знакомы с тем, как работают NN, вы будете знать, что обучить сеть сложно, определив ее желаемый выход и часть входных данных, поскольку мы не можем использовать обратное распространение.
Наконец, вы можете проверить эту статью. не так много технических деталей, но он предлагает именно то, что вы спросили:
https://openreview.net/forum?id=BJxMQbQ3wm