Вероятность дискретной логистической смеси используется в PixelCNN ++ и WaveNet для прогнозирования дискретных значений. Логистика здесь - из логистической дистрибуции, используемой в статьях. Другие распределения, такие как нормальные распределения, также широко используются в смешанных распределениях.

Почему прогнозировать распределения, а не фактические значения?

В PixcelCNN Plus целью является создание изображений и, следовательно, прогнозирование значений пикселей в диапазоне [0, 255]. Один из способов прогнозирования этих значений - использовать softmax, используемый в задачах классификации. Однако использование softmax полностью игнорирует математические отношения между числами, такими как 220 и 221. Хуже того, если значение пикселя никогда не присутствует в наборе обучающих данных, оно также не будет предсказано в наборе данных тестирования. Лучший способ - предсказать распределение значений пикселей, чтобы каждое значение могло быть представлено при генерации изображений с использованием случайности прогнозируемого распределения, как это происходит в модели VAE. Чтобы предсказать распределение, вам нужно спрогнозировать среднее значение и дисперсию. В случае прогнозирования фактических значений прогнозируется только среднее значение.

Как предсказать распределение?

Итак, следующий вопрос - как предсказать распределение. Это просто, поскольку максимальная вероятность может легко сделать это для постоянных ценностей. Нам нужен только способ приспособить вычисление вероятности к дискретным значениям. Для прогнозирования значения пикселя мы можем думать, что диапазон между [x-0,5, x + 0,5] принадлежит дискретному целому числу x. Применяя максимальную вероятность, мы можем легко вычислить среднее значение и дисперсию и, следовательно, предсказать распределение.

Крайние случаи

Однако вероятности вышеупомянутой дискретизации не будут суммироваться до 1, даже значения меньше 0 и больше 255 все равно не появятся. В PixelCNN ++ и Wavenet вероятности значений меньше 0 присваиваются 0, а вероятности значений больше 255 - 255.

Смесь дистрибутивов

Теперь у нас есть дискретная логистическая вероятность, если мы выберем логистическое распределение в качестве нашего выбора распределения. Откуда смесь в названии? Когда распределение данных является более сложным, чем простые распределения, такие как нормальное распределение и логистическое распределение, на помощь приходит смешанное распределение. Смесь распределения - это линейная комбинация ряда распределений: p (x) = a_1 * p_1 (x) + a_2 * p_2 (x) +… a_n * p_n (x). По-видимому, он обладает большей репрезентативной силой за счет введения большего количества параметров. Для смешанного распределения у вас есть параметры a_i, mean_i и variance_i для вычисления. В PixelCNN ++ последний слой используется для прогнозирования этих параметров, за исключением того, что логарифм (дисперсия) используется в качестве суррогата, чтобы избежать отрицательных предсказаний для дисперсии. Для CIFAR10 он использует 10 логистических распределений для моделирования распределения значений пикселей.

Если вы видели реализацию, вы заметили, что потеря дискретизированной логистической смеси - это просто отрицательное значение вероятности дискретной логистической смеси.

Для ознакомления с реализацией кода просмотрите эту ссылку https://github.com/Rayhane-mamah/Tacotron-2/issues/155.