Регрессия нейронной сети с многозначными (вероятностными) функциями - PullRequest
0 голосов
/ 22 марта 2019

Я немного новичок в искусстве машинного обучения. Вот довольно концептуальный вопрос, который меня интересовал:

Предположим, у меня есть функция X-> Y, скажем, y = x ^ 2, затем, генерируя достаточно данных X-> Y, я могу обучить нейронную сеть для выполнения регрессии над функцией и получить x ^ 2 с помощью любой вход х. Это в основном также то, что предлагает универсальная теорема приближения.

Теперь мой вопрос: что, если я хочу обратное соотношение, Y-> X? В этом случае Y является многозначной функцией X, например, для X> 0, x = + - sqrt (y). Я могу поменять местами X и Y в качестве входных / выходных данных, чтобы правильно обучить сеть, но для любого данного y должна быть случайная вероятность 1/2 - 1/2, что x = sqrt (y) и x = -sqrt (y ). Но, конечно, если кто-то обучит его с min-squared-error, сеть не будет знать, что это многозначная функция, и просто будет следовать SGD для функции потерь и получит x = 0, среднее значение для любого дано у.

Поэтому мне интересно, есть ли способ, которым нейронная сеть может моделировать многозначную функцию? Например, мое предположение будет (1) нейронная сеть может выводить коллекцию, скажем, 2 верхних возможных значений X и обучать ее с кросс-энтропией. Проблема в том, что если X является вектором или даже матрицей (например, изображением битовой карты) вместо числа, мы не знаем, сколько решений у Y = X (что вполне может быть бесконечным числом, т.е. непрерывный диапазон), поэтому «список» возможных значений и вероятностей не будет работать - в идеале нейронная сеть должна выводить значения случайным образом и непрерывно распределяться по возможным X-решениям. (2) возможно, это попадает в область вероятностных нейронных сетей (PNN)? Имеет ли модель PNN функции, которые поддерживают заданное вероятностное распределение (непрерывное или дискретное) векторов в качестве выходных данных? Если так, возможно ли реализовать PNN с популярными фреймворками, такими как Tensorflow + Keras?

(Также обратите внимание, что это отличается от «многовариантной» функции, которая является случаем, когда X, Y могут быть многокомпонентными векторами, что все еще является тем, что традиционная сеть может легко обучить. вот где на выходе может быть вероятностное распределение векторов , которое не может захватить простая сеть с прямой связью, поскольку она не имеет присущей ей случайности.)

Спасибо за вашу помощь!

Изображение функции пересылки Y = X ^ 2 (может быть легко смоделировано сетью с регрессией)

Изображение обратной функции X = + - sqrt (Y) (сеть не может захватить функцию с двумя значениями и выдает среднее значение X = 0 для любого Y)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...