76
правок
Изменения
→Таксономия порождающих моделей
===Таксономия порождающих моделей===
[[Файл:Tax2.jpg|500px|thumb|right|Таксономия порождающих моделей]]
Генеративные модели различаются как раз тем, как именно они строят распределение <tex>p(x; \theta)</tex>. Можно строить это распределение ''явно'', делая вероятностные предположения, которые обычно сводятся к тому, что общее распределение <tex>p(x; \theta)</tex> выражается в виде произведения тех или иных распределений.
Например, [[Байесовские сети|байесовские сети]] строят распределение из условных распределений <math>\mathrm P(X_1, \ldots, X_n) = \prod_{i=1}^n \mathrm P(X_i \mid \operatorname{parents}(X_i)).</math>
Можно даже и вовсе никаких предположений не делать: любое распределение всегда раскладывается как <tex>p(x) = \displaystyle \prod_{i} p(x_i \mid x_1, {{...}}, x_{i-1})</tex>(Простая факторизующаяся плотность). Так представляется модель в FVBN(fully visible belief networks)<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>. Если хочется явно выразить совсем сложные распределения в порождающих моделях, их приходится приближать более простыми, которые уже, в свою очередь, могут быть выражены явно. Для этого обычно используются [Вариационный автокодировщик|вариационные методы]. Основная альтернатива всему этому состоит в том, чтобы использовать ''неявные'' порождающие модели, в которых мы не пытаемся получить функцию, подсчитывающую плотность нужного распределения в каждой точке, а просто моделируем то, что нам от этой модели нужно. Например, если мы хотим просто научиться порождать фотографии милых котиков, нам не так важно иметь явную функцию плотности <tex>p(x)</tex>, которая могла бы сказать, насколько вероятно, что перед нами котик, - вполне достаточно просто уметь генерировать новые <tex>x \sim p(x)</tex>.
== Глубокие порождающие модели на основе нейронных сетей ==