PixelRNN и PixelCNN — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Идея)
(Обновление описания)
Строка 1: Строка 1:
 
[[File:pixel-1.png|450px|thumb|Пример использования PixelRNN/PixelCNN сетей]]
 
[[File:pixel-1.png|450px|thumb|Пример использования PixelRNN/PixelCNN сетей]]
  
'''PixelRNN/PixelCNN''' - алгоритмы машинного обучения, входящие в семейство авторегрессивных моделей. Используются для генерации и дополнения изображений. Алгоритмы были представлены в 2016 году компанией DeepMind и являются предшественниками алгоритма WaveNet, который используется в голосовом помощнике Google.
+
'''PixelRNN/PixelCNN''' - алгоритмы машинного обучения, входящие в семейство авторегрессивных моделей. Используются для генерации и дополнения изображений. Алгоритмы были представлены в 2016 году компанией DeepMind и являются предшественниками алгоритма WaveNet, который используется в голосовом помощнике Google.
 +
 
 +
Основным преимуществом 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>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>.  

Версия 20:48, 22 марта 2020

Пример использования PixelRNN/PixelCNN сетей

PixelRNN/PixelCNN - алгоритмы машинного обучения, входящие в семейство авторегрессивных моделей. Используются для генерации и дополнения изображений. Алгоритмы были представлены в 2016 году компанией DeepMind и являются предшественниками алгоритма WaveNet, который используется в голосовом помощнике Google.

Основным преимуществом PixelRNN/PixelCNN является уменьшение времени обучения, по сравнению с наивными способами попиксельной генерации изображений.

Идея

Пусть дано черно-белое изображение [math]X[/math] размером [math]N\times N[/math]. Построчно преобразуем картинку в вектор [math]V_X = \{x_1, x_2, \dots, x_{N^2} \}[/math], соединяя конец текущей строки с началом следующей. В таком представлении изображения можно предположить, что значение любого пикселя [math]x_i\in V_X[/math] может зависеть от значений предыдущих пикселей [math]x_j, j = 1,2,\dots i-1[/math].

Тогда значение пикселя [math]x_i\in V_X[/math] можно выразить через условную вероятность [math]p(x_i|x_1, x_2, \dots x_{i-1})[/math], и, используя цепное правило для вероятностей, оценка совместного распределения всех пикселей будет записываться в следующем виде: [math]p(X)=\prod_{i=1}^{N^2}p(x_i|x_1, x_2, \dots x_{i-1})[/math].

Задача алгоритма - восстановить данное распределение. Учитывая тот факт, что любой пиксель принимает значение [math]0\lt =x_i\lt =255[/math], необходимо восстановить лишь дискретное распределение.

PixelRNN

Идея

Архитектура

Плюсы и минусы

PixelCNN

Идея

Архитектура

Плюсы и минусы

Сравнение с GAN

Примеры реализации