Построение глубокой нейронной сети, которая производит выходные данные, распределенные как многомерное стандартное нормальное распределение.

Я ищу способ построить глубокую нейронную сеть, которая производит выходные данные, которые распределяются как многомерное стандартное нормальное распределение ~ N (0,1).

Я могу использовать Pytorch или TensorFlow, в зависимости от того, что проще для этой задачи.

На самом деле у меня есть некоторый вход X, который с точки зрения этого вопроса можно считать просто матрицей значений из равномерного распределения. Я помещаю вход в сеть, архитектура которой в настоящее время может измениться.

И я хочу получить результат, поэтому помимо других требований у меня будет от него. Я хочу, чтобы, если мы представим значения, полученные всеми возможными x, мы получили, что это похоже на многомерное стандартное нормальное распределение ~ N (0,1).

Я думаю, что для этого нужно выбрать правильную функцию потерь. Для этого я придумал два способа:

  1. Использование статистических тестов.
  2. Потеря, которая проверяет большое количество свойств (среднее значение, стандартное отклонение и т. д.).

Понимание 2 звучит сложно, поэтому я начал с 1.

Я искал статистические тесты, уже реализованные в одном из пакетов в качестве функции потерь, и ничего подобного не нашел. Я самостоятельно реализовал статистические тесты, чтобы получить результат, являющийся одномерным стандартным нормальным распределением, и, похоже, он работал относительно хорошо. С реализацией многомерных тестов я еще больше запутался.

Знаете ли вы какие-либо понятные функции tensorflow\pythorch, которые делают что-то похожее на то, что я пытаюсь сделать? У вас есть другая идея для операции? Есть ли у вас какие-либо комментарии относительно методов, с которыми я пытаюсь работать?

Спасибо


person Eko Shon    schedule 08.11.2020    source источник


Ответы (1)


Использование функций pytorch может вам очень помочь. Учитывая, что я точно не знаю, чего вы хотите от этих результатов, я могу отослать вас к pytorch по этой ссылке здесь.
По этой ссылке у вас будут все потери pytorch функции и расчеты, используемые в каждой из них! просто нажмите на одну из них и проверьте, как она работает, и посмотрите, подходит ли она вам.
Что касается второй темы, вы можете посмотреть эту же ссылку. Я отправил функцию BCEWithLogitcLoss, поскольку она может быть тем, что вы ищете.

person Tarlison Sander    schedule 09.11.2020
comment
на самом деле это не то, что я ищу. Я знаю, как использовать pytorch и tensorflow. но оба они не предоставляют статистических тестов, например, что-то вроде «теста Мардиа» или «шапиро-вилка» для одномерных данных. - person Eko Shon; 09.11.2020