Изменения

Перейти к: навигация, поиск

PixelRNN и PixelCNN

180 байт добавлено, 21:44, 22 марта 2020
Реструктуризация и добавление описания
Основным преимуществом PixelRNN/PixelCNN является уменьшение времени обучения, по сравнению с наивными способами попиксельной генерации изображений.
== Идея Постановка задачи ==
Пусть дано черно-белое изображение <tex>X</tex> размером <tex>N\times N</tex>. Построчно преобразуем картинку в вектор <tex>V_X = \{x_1, x_2, \dots, x_{N^2} \}</tex>, соединяя конец текущей строки с началом следующей. В таком представлении изображения можно предположить, что значение любого пикселя <tex>x_i\in V_X</tex> может зависеть от значений предыдущих пикселей <tex>x_j, j = 1,2,\dots i-1</tex>.
Задача алгоритма - восстановить данное распределение. Учитывая тот факт, что любой пиксель принимает значение <tex>0<=x_i<=255</tex>, необходимо восстановить лишь дискретное распределение.
== PixelRNN Идея == Т.к. утверждается, что значение текущего пикселя зависит от значений предыдущего, то уместно использовать [[:Рекуррентные_нейронные_сети|RNN]], а точнее [[Долгая краткосрочная память|LSTM]]. В ранних работах уже использовался данный подход, и вычисление скрытого состояния происходило следующим образом: <tex>h_{i,j}=f(h_{i-1,j}, h_{i,j-1}, x_{i,j})</tex>, т.е. для того, чтобы вычислить текущее скрытое состояние, нужно было подсчитать все предыдущие, что занимает достаточно много времени.
=== Идея ===Т.к. утверждается, что значение текущего пикселя зависит от значений предыдущего, то уместно использовать [[:Рекуррентные_нейронные_сети|RNN]], а точнее Авторы алгоритма модернизировали [[Долгая краткосрочная память|LSTM]]. В ранних работах уже использовался данный подход, в '''RowLSTM''' и для вычисление <tex>h_{ij}</tex> - скрытого состояния, необходимы были значения <tex>h_{i-1j}</tex>, <tex>h_{ij-1}</tex>, <tex>x_{ij}</tex>, т.е. для того'''BiLSTM''' таким образом, чтобы вычислить текущее скрытое состояние, нужно было подсчитать все предыдущиестало возможным распараллеливание вычислений, что занимает достаточно много в итоге положительно сказывается на времениобучения модели.
Авторы алгоритма модернизировали === RowLSTM ===В данной модификации [[Долгая краткосрочная память|LSTM]] таким предлагается рассчитывать скрытое состояние следующим образом: <tex>h_{i, чтобы стало возможным распараллеливание вычисленийj}=f(h_{i-1, что в итоге положительно сказывается на времени обучения моделиj-1}, h_{i-1,j}, h_{i-1,j+1} x_{i,j})</tex>.
=== Архитектура ===
=== Плюсы и минусы ===
== PixelCNN = Diagonal BiLSTM ===
=== Идея ===
=== Архитектура ===
=== Плюсы и минусы ===
== Сравнение с GAN ==
== Примеры реализации ==
39
правок

Навигация