Вопрос:

В чем разница между генеративным и дискриминационным алгоритмом?

algorithm machine-learning difference

208718 просмотра

11 ответа

18955 Репутация автора

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

Автор: unj2 Источник Размещён: 18.05.2009 07:44

Ответы (11)


777 плюса

14181 Репутация автора

Решение

Допустим, у вас есть входные данные, 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)пар.

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

Автор: Stompchicken Размещён: 18.05.2009 08:18

284 плюса

5242 Репутация автора

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

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

Автор: Carlos Rendon Размещён: 05.12.2009 12:41

32 плюса

5637 Репутация автора

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

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

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

Автор: Sriwantha Attanayake Размещён: 16.03.2011 10:52

150 плюса

2297 Репутация автора

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

Вы можете сделать это одним из следующих способов:

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

или же

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

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

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

Автор: madCode Размещён: 14.10.2011 02:36

123 плюса

2251 Репутация автора

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

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

введите описание изображения здесь

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

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

введите описание изображения здесь

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

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

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

Автор: Saul Berardo Размещён: 28.02.2013 02:06

20 плюса

704 Репутация автора

Дополнительный информативный пункт, который хорошо согласуется с ответом 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: часть ответа взята из источника

Автор: Prakhar Agrawal Размещён: 02.10.2016 07:57

78 плюса

1823 Репутация автора

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

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

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

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

Автор: Ghrua Размещён: 08.03.2017 08:44

0 плюса

17 Репутация автора

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

Автор: Arun Размещён: 31.05.2017 10:17

0 плюса

450 Репутация автора

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

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

Автор: Nages Размещён: 17.05.2018 09:31

18 плюса

554 Репутация автора

Различные модели приведены в таблице ниже: введите описание изображения здесь

Автор: Ravi G Размещён: 19.09.2018 06:45

0 плюса

2521 Репутация автора

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

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

Автор: Lerner Zhang Размещён: 24.06.2019 10:53
Вопросы из категории :
32x32