Изменения

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

Порождающие модели

104 байта добавлено, 19:07, 25 февраля 2020
Неявный подход
С другой стороны, дискриминативная модель (англ. ''discriminative model'')<ref> [https://en.wikipedia.org/wiki/Discriminative_model Discriminative model]</ref> обучает только ''условное'' распределение и может, например, отличить собаку от кошки.
 
В качестве простейшей порождающей модели можно взять [[Байесовская классификация#Наивный байесовский классификатор|наивный байесовский классификатор]].
== Классификация задачи ==
Так представляется модель в FVBN (fully visible belief net­works)<ref>[https://mitpress.mit.edu/books/graphical-models-machine-learning-and-digital-communication Frey B. Graphical Models for Machine Learning and Digital Communication, Cambridge, MA: MIT Press, 1998.]</ref>, идея которых состоит в том, что с одномерными распределениями нетрудно разобраться - в ранних работах их представляли классическими моделями. А сейчас мы можем их промоделировать последовательно [[Глубокое обучение|глу­бокими сетями]], получится модель, которая сможет последовательно породить <tex>х</tex> компонент за компонентом, каждый раз для порождения <tex>x_i</tex> опираясь на уже порожденные <tex>x_1, {{...}}, x_{i-1})</tex>.
Именно эта идея лежит в основе моде­ли для работы со звуком [[WaveNet]]<sup>[на 24.02.20 не создан]</sup>, разработанной Google DeepMind<ref>[https://deepmind.com/blog/article/wavenet-generative-model-raw-audio Blog post by DeepMind about WaveNet]</ref>. Существующие параметрические модели синтезирования речи<ref>[https://en.wikipedia.org/wiki/Speech_synthesis Text-To-Speech (TTS)]</ref> обычно генерируют звук, прогоняя выходной сигнал через специальные обработчики, называемые вокодерами<ref>[https://en.wikipedia.org/wiki/Vocoder Vocoder]</ref>.
[[Файл:WaveNet.gif|thumb|upright=1.5|right|Устройство WaveNet]]
WaveNet меняет парадигму, генерируя звуковой сигнал по семплам. Это не только приводит к более натуральному звучанию речи, но и позволяет создавать любые звуки, включая музыку.
Во время обучения входящие последовательности представляют собой звуковые волны от примеров записи голоса. После тренировки можно с помощью сети генерировать синтетические фразы. На каждом шагу семплирования значение вычисляется из вероятностного распределения, посчитанного сетью. Затем это значение возвращается на вход и делается новое предсказание для следующего шага.
В моделях [[Задача генерации объектов|PixelRNN]]<sup>[на 24.02.20 не создан]</sup> и [[Задача генерации объектов|PixelCNN]]<sup>[на 24.02.20 не создан]</sup> строится изображение пиксель за пикселем, слева направо и свер­ху вниз. Каждый пиксель <tex>x_n</tex> порождается из условного распределе­ния <tex>p(x_n \mid x_1, {{...}}, x_{n-1})</tex>
а оно уже моделируется или [[Рекуррентные нейронные сети|рекуррентной сетью]] или [[Сверточные нейронные сети|сверточной]].
Модель [[DRAW]]<sup>[на 24.02.20 не создан]</sup><ref>[http://arxiv.org/abs/1502.04623 DRAW: A Recurrent Neural Network For Image Generation / K. Gregor et al. / / arXiv, 2015.]</ref> последо­вательно «рисует» картинку с помощью рекуррентной сети, а [[механизм внимания]]<sup>[на 24.02.20 не создан]</sup> помогает сети в данный момент сконцентрироваться на нужной части изображе­ния.
Если хочется явно выразить совсем сложные распределения в порождающих моделях, их приходится приближать более простыми, которые уже, в свою очередь, могут быть выражены явно. Для этого обычно используются [[Вариационный автокодировщик|вариационные мето­ды]].
Сэмплирование из сложных многомерных распределений делается с помощью МСМС<ref>[https://en.wikipedia.org/wiki/Markov_chain_Monte_Carlo Markov chain Monte Carlo(МСМС)]</ref>-методов: попробуем построить мар­ковскую цепь, которая описывает случайное блуждание под графиком плотности распределения.
Если достаточно долго блуждать под графиком плотности <tex>p(x)</tex>, можно будет считать, что полученная точка представляет собой случайную точ­ку, взятую по распределению <tex>p(x)</tex>. Примером такого моделирования глубокой сетью являются [[порождающие стохастические сети]]<supref>[на 24https://arxiv.02org/abs/1503.20 не создан05571 Generative Stochastic Networks]</supref>(англ. ''Generative Stochastic Networks'')
[[Generative Adversarial Nets (GAN)|Порождающие состязательные сети]] {{---}} алгоритм машинного обучения, построенный на комбинации из двух нейронных сетей: генеративная модель <tex>G</tex>, которая строит приближение распределения данных, и дискриминативная модель <tex>D</tex>, оценивающая вероятность, что образец пришел из тренировочных данных, а не сгенерированных моделью <tex>G</tex>. Обучение для модели <tex>G</tex> заключается в максимизации вероятности ошибки дискриминатора <tex>D</tex>.
== Глубокие порождающие модели на основе нейронных сетей См. также ==*[[Байесовская классификация#Наивный байесовский классификатор|Наивный байесовский классификатор]]
*[[Generative Adversarial Nets (GAN)|Порождающие состязательные сети]]
*[[Автокодировщик]]
*[[Вариационный автокодировщик]]
 
== См. также ==
*[[Байесовская классификация#Наивный байесовский классификатор|Наивный байесовский классификатор(простейшая порождающая модель)]]
== Примечания ==
76
правок

Навигация