PixelRNN и PixelCNN — различия между версиями
Tklochkov (обсуждение | вклад) (Обновление описания) |
Tklochkov (обсуждение | вклад) (→Идея) |
||
Строка 14: | Строка 14: | ||
=== Идея === | === Идея === | ||
+ | Т.к. утверждается, что значение текущего пикселя зависит от значений предыдущего, то уместно использовать [[:Рекуррентные_нейронные_сети|RNN]], а точнее [[Долгая краткосрочная память|LSTM]]. В ранних работах уже использовался данный подход, и для вычисление <tex>h_{ij}</tex> - скрытого состояния, необходимы были значения <tex>h_{i-1j}</tex>, <tex>h_{ij-1}</tex>, <tex>x_{ij}</tex>, т.е. для того, чтобы вычислить текущее скрытое состояние, нужно было подсчитать все предыдущие, что занимает достаточно много времени. | ||
+ | |||
+ | Авторы алгоритма модернизировали [[Долгая краткосрочная память|LSTM]] таким образом, чтобы стало возможным распараллеливание вычислений, что в итоге положительно сказывается на времени обучения модели. | ||
+ | |||
=== Архитектура === | === Архитектура === | ||
=== Плюсы и минусы === | === Плюсы и минусы === |
Версия 21:07, 22 марта 2020
PixelRNN/PixelCNN - алгоритмы машинного обучения, входящие в семейство авторегрессивных моделей. Используются для генерации и дополнения изображений. Алгоритмы были представлены в 2016 году компанией DeepMind и являются предшественниками алгоритма WaveNet, который используется в голосовом помощнике Google.
Основным преимуществом PixelRNN/PixelCNN является уменьшение времени обучения, по сравнению с наивными способами попиксельной генерации изображений.
Содержание
Идея
Пусть дано черно-белое изображение
размером . Построчно преобразуем картинку в вектор , соединяя конец текущей строки с началом следующей. В таком представлении изображения можно предположить, что значение любого пикселя может зависеть от значений предыдущих пикселей .Тогда значение пикселя
можно выразить через условную вероятность , и, используя цепное правило для вероятностей, оценка совместного распределения всех пикселей будет записываться в следующем виде: .Задача алгоритма - восстановить данное распределение. Учитывая тот факт, что любой пиксель принимает значение
, необходимо восстановить лишь дискретное распределение.PixelRNN
Идея
Т.к. утверждается, что значение текущего пикселя зависит от значений предыдущего, то уместно использовать RNN, а точнее LSTM. В ранних работах уже использовался данный подход, и для вычисление - скрытого состояния, необходимы были значения , , , т.е. для того, чтобы вычислить текущее скрытое состояние, нужно было подсчитать все предыдущие, что занимает достаточно много времени.
Авторы алгоритма модернизировали LSTM таким образом, чтобы стало возможным распараллеливание вычислений, что в итоге положительно сказывается на времени обучения модели.