В чем разница между генеративным и дискриминационным алгоритмом? - PullRequest
534 голосов
/ 18 мая 2009

Пожалуйста, помогите мне понять разницу между генеративным и дискриминационный алгоритм, помня, что я только начинающий.

Ответы [ 11 ]

777 голосов
/ 19 мая 2009

Допустим, у вас есть входные данные x, и вы хотите классифицировать данные по меткам y. Генеративная модель изучает совместное распределение вероятностей p(x,y), а дискриминационная модель изучает условное распределение вероятностей p(y|x) - которое следует читать как "вероятность y дано x ".

Вот действительно простой пример. Предположим, у вас есть следующие данные в форме (x,y):

(1,0), (1,0), (2,0), (2, 1)

p(x,y) является

      y=0   y=1
     -----------
x=1 | 1/2   0
x=2 | 1/4   1/4

p(y|x) является

      y=0   y=1
     -----------
x=1 | 1     0
x=2 | 1/2   1/2

Если вам понадобится несколько минут, чтобы взглянуть на эти две матрицы, вы поймете разницу между двумя вероятностными распределениями.

Распределение p(y|x) является естественным распределением для классификации данного примера x в класс y, поэтому алгоритмы, которые моделируют это напрямую, называются дискриминационными алгоритмами. Модель генеративных алгоритмов p(x,y), которую можно преобразовать в p(y|x) с помощью правила Байеса и затем использовать для классификации. Тем не менее, дистрибутив p(x,y) может также использоваться для других целей. Например, вы можете использовать от p(x,y) до генерации вероятных (x,y) пар.

Из приведенного выше описания вы можете подумать, что генеративные модели более полезны и, следовательно, лучше, но это не так просто. Эта статья является очень популярным справочником по вопросу о дискриминационных и порождающих классификаторах, но она довольно трудоемкая. Общая суть в том, что дискриминационные модели обычно превосходят генеративные модели в задачах классификации.

284 голосов
/ 05 декабря 2009

A генеративный алгоритм моделирует, как были сгенерированы данные для классификации сигнала. Он задает вопрос: исходя из предположений моего поколения, какая категория с наибольшей вероятностью будет генерировать этот сигнал?

A дискриминационный алгоритм не заботится о том, как были сгенерированы данные, он просто классифицирует данный сигнал.

150 голосов
/ 14 октября 2011

Представьте, что ваша задача - классифицировать речь по языку.

Вы можете сделать это:

  1. изучение каждого языка, а затем его классификация с использованием только что полученных вами знаний

или

  1. определение различий в языковых моделях без изучения языков, а затем классификация речи.

Первый - это порождающий подход, а второй - дискриминационный подход.

Проверьте эту ссылку для более подробной информации: http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf.

123 голосов
/ 28 февраля 2013

На практике модели используются следующим образом.

В дискриминационных моделях , чтобы предсказать метку y из обучающего примера x, необходимо оценить:

enter image description here

, который просто выбирает наиболее вероятный класс y с учетом x. Как будто мы пытались смоделировать границу решения между классами . Это поведение очень ясно видно в нейронных сетях, где вычисленные веса можно рассматривать как сложную форму кривой, изолирующей элементы класса в пространстве.

Теперь, используя правило Байеса, заменим enter image description here в уравнении на enter image description here. Так как вы просто заинтересованы в arg max , вы можете уничтожить знаменатель, который будет одинаковым для каждого y. Итак, вы остались с

enter image description here

- это уравнение, которое вы используете в порождающих моделях .

В первом случае у вас было условное распределение вероятностей p(y|x), которое моделировало границу между классами, во втором вы имели совместное распределение вероятностей p (x, y), поскольку p (x, y) = p (x | y) p (y), которая явно моделирует фактическое распределение каждого класса .

С помощью функции совместного распределения вероятностей, учитывая y, вы можете вычислить ("сгенерировать") ее соответствующую x. По этой причине их называют «генеративными» моделями.

78 голосов
/ 08 марта 2017

Вот самая важная часть из примечаний к лекции из CS299 (Эндрю Нг), связанных с темой, которая действительно помогает мне понять разницу между дискриминационным и генеративные алгоритмы обучения.

Предположим, у нас есть два класса животных: слон (y = 1) и собака (y = 0). И x является вектором признаков животных.

Учитывая обучающий набор, алгоритм, такой как логистическая регрессия или алгоритм персептрона (в основном), пытается найти прямую линию, то есть границу решения, которая разделяет слонов и собак. Затем классифицировать новое животное как слон или собака, оно проверяет, на какой стороне Решение границы оно падает, и делает свой прогноз соответственно. Мы называем их дискриминационным алгоритмом обучения .

Вот другой подход. Во-первых, глядя на слонов, мы можем построить модель того, как выглядят слоны. Затем, глядя на собак, мы можем построить отдельная модель того, как выглядят собаки. Наконец, чтобы классифицировать новое животное, мы можем сопоставить новое животное с моделью слона, и сопоставить его с модель собаки, чтобы увидеть, выглядит ли новое животное больше как слоны или больше как собаки, которых мы видели в тренировочном наборе. Мы называем их генеративным алгоритмом обучения .

32 голосов
/ 16 марта 2011

Как правило, в сообществе машинного обучения существует практика не учить то, что вы не хотите. Например, рассмотрим проблему классификации, в которой цель состоит в том, чтобы назначить метки y заданному вводу x. Если мы используем генеративную модель

p(x,y)=p(y|x).p(x)

мы должны смоделировать p (x), который не имеет отношения к поставленной задаче. Практические ограничения, такие как разбросанность данных, заставят нас моделировать p(x) с некоторыми слабыми предположениями о независимости. Поэтому мы интуитивно используем дискриминационные модели для классификации.

20 голосов
/ 02 октября 2016

Дополнительный информативный пункт, который хорошо сочетается с ответом StompChicken выше.

Фундаментальная разница между дискриминационными моделями и порождающими моделями :

Дискриминационные модели изучают (твердую или мягкую) границу между классами

Генеративные модели модели распределения отдельных классов

Редактировать:

Генеративная модель - это модель , которая может генерировать данные . Он моделирует как особенности, так и класс (то есть полные данные).

Если мы моделируем P(x,y): я могу использовать это распределение вероятностей для генерации точек данных - и, следовательно, все алгоритмы моделирования P(x,y) являются генеративными.

Например. генеративных моделей

  • Наивные байесовские модели P(c) и P(d|c) - где c - класс, а d - вектор признаков.

    Также P(c,d) = P(c) * P(d|c)

    Следовательно, наивный байесовский в некоторых моделях формы, P(c,d)

  • Байесовская сеть

  • Марковские сети

Дискриминирующая модель - это модель, которую можно использовать только для различения / классификации точек данных . В таких случаях требуется только моделирование P(y|x) (то есть вероятность того, что класс задан вектором признаков).

Например. дискриминирующих моделей:

  • логистическая регрессия

  • Нейронные сети

  • Условные случайные поля

В целом, генеративные модели должны моделировать гораздо больше, чем дискриминационные модели, и, следовательно, иногда они не так эффективны. Фактически, большинство (не уверены, что все) алгоритмов обучения без присмотра, таких как кластеризация и т. Д., Можно назвать генеративными, поскольку они моделируют P(d) (а классов нет: P)

PS: часть ответа взята из источника

18 голосов
/ 19 сентября 2018

Различные модели приведены в таблице ниже: enter image description here

0 голосов
/ 25 июня 2019

Все предыдущие ответы великолепны, и я хотел бы добавить еще один момент.

Из моделей генеративного алгоритма мы можем получить любое распределение; в то время как мы можем получить только условное распределение P (Y | X) из моделей дискриминационного алгоритма (или мы можем сказать, что они полезны только для распознавания метки Y), и именно поэтому оно называется дискриминационной моделью. Дискриминативная модель не предполагает, что X независимы, учитывая Y ($ X_i \ perp X _ {- i} | Y $), и, следовательно, обычно более эффективны для вычисления этого условного распределения.

0 голосов
/ 17 мая 2018

Модель генеративного алгоритма полностью извлечет уроки из обучающих данных и предскажет ответ.

Задача дискриминационного алгоритма состоит в том, чтобы просто классифицировать или дифференцировать 2 результата.

...