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

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


person unj2    schedule 18.05.2009    source источник
comment
Этот документ (также указанный ниже anguyen8) является хорошим: cs229.stanford.edu /notes/cs229-notes2.pdf   -  person GuSuku    schedule 25.03.2015
comment
См. Также тот же вопрос о статистике. SE: Генеративное против дискриминационного   -  person Lenar Hoyt    schedule 15.07.2016
comment
Я голосую за закрытие этого вопроса, потому что [вопросы теории машинного обучения (ML) не относятся к теме в Stack Overflow] (ttps: //meta.stackoverflow.com/questions/291009/do-pure-machine-learning-questions- принадлежат-к-стек-переполнению / 291015 # 291015) - кандидат в подарочную упаковку для перекрестной проверки   -  person Daniel F    schedule 10.02.2021
comment
Эта ссылка не работает; вот правильная версия: meta.stackoverflow.com/questions/291009/   -  person tripleee    schedule 10.02.2021


Ответы (13)


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

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

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

p(x,y) is

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

p(y|x) is

      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) пар.

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

person Stompchicken    schedule 18.05.2009
comment
Спасибо за статью. Автор сейчас профессор Стэнфорда, и у него есть замечательные ресурсы на stanford.edu/class/cs229/. Materials.html - person unj2; 19.05.2009
comment
Хорошее объяснение также сделал Эндрю Нг. - person clyfe; 26.01.2013
comment
Глядя на матрицы, обратите внимание, что в первой сумме все записи составляют 1,0, а во второй каждая строка суммируется до единицы. Это ускорит просветление (и уменьшит замешательство) - person Maxim Khesin; 20.08.2013
comment
Исходной бумажной ссылки больше нет, вот еще одна: cs.cmu .edu / ~ aarti / Class / 10701 / readings / NgJordanNIPS2001.pdf - person Vladimir; 10.10.2015
comment
Я считаю, что вы исказили эту бумагу. Утверждение, что дискриминационное, вероятно, связано с Вапником. Сама статья гласит, что дискриминационный подход не всегда лучше и зависит от режима. Однако в статье рассматривается только логистическая регрессия в сравнении с наивным байесовским методом. - person thang; 17.02.2016
comment
Это своего рода трудная бумага для чтения. Если вам нужна более доступная суть - взгляните на 10 -601 Том Митчелл. - person irudyak; 10.09.2017
comment
вот почему алгоритмы, которые моделируют это напрямую, называются дискриминативными алгоритмами, но все еще не уверен, почему p(y|x) подразумевает, что алгоритмы, моделирующие это, называются дискриминативными моделями. - person nbro; 03.11.2018
comment
Это старый, но я просто подумал, что добавлю, что, даже если это был выбран лучший ответ, было упущено одно, что имеет решающее значение для понимания того, почему один превосходит другой в зависимости от размера набора данных. Что было забыто упомянуть, так это то, что для того, чтобы дискриминативная модель превзошла генеративную модель, набор данных должен быть достаточно большим, чтобы LR имел лучшую производительность, генеративные модели, как правило, превосходят дискриминантные модели с небольшими наборами данных. - person Bargros; 19.11.2018
comment
Для тех, у кого нет времени читать цитируемую там статью Ng & Jordan, основные выводы: 1. алгоритм дискриминативной логистической регрессии имеет более низкую асимптотическую ошибку, 2. генеративный наивный байесовский классификатор также может быстрее сходиться к своему (высшая) асимптотическая ошибка. - person Albert Chen; 21.12.2020
comment
Видео Эндрю Нг, упомянутые clyfe @, требуют flash, но необработанные файлы mp4 находятся здесь: openclassroom.stanford.edu/MainFolder/courses/MachineLearning/ - person Przemyslaw Zych; 12.04.2021

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

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

person Carlos Rendon    schedule 05.12.2009
comment
Этот ответ меня смущает. Оба класса алгоритмов относятся к классу алгоритмов контролируемого обучения, которые изучают модель помеченных обучающих данных для получения функции, которая предсказывает другие данные. Дискриминирующий алгоритм, как вы его описываете, звучит так, как будто он не создает модель, это правильно? Я был бы рад, если бы Вы могли уточнить свой ответ по этому поводу. - person Lenar Hoyt; 21.03.2014
comment
@mcb Генеративный алгоритм моделирует создание данных, поэтому вы спрашиваете, какова вероятность того, что тот или иной класс сгенерировал этот экземпляр? и выберите тот, с большей вероятностью. Дискриминантный алгоритм использует данные для создания границы решения, поэтому вы спрашиваете, на какой стороне границы принятия решения находится этот экземпляр? Таким образом, он не создает модель того, как были сгенерированы данные, он создает модель того, как, по его мнению, выглядит граница между классами. - person Anthony; 25.01.2015
comment
Значит, у генеративной модели, такой как Наивный Байес, нет границы принятия решений? - person sheetal_158; 05.11.2016
comment
Значит, генеративные модели кажутся лучше для интерпретируемости? - person makansij; 09.01.2017

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

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

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

or

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

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

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

person madCode    schedule 14.10.2011
comment
Разве не наоборот? Учитывая, что вы выучили язык, вы работаете с условным распределением, и поэтому это должен быть дискриминационный подход? - person London guy; 14.05.2015
comment
Я думаю, что это и наоборот, после прочтения ответов ниже - Пример из лекций CS299 от Ghrua - person Mitali Cyrus; 04.04.2018

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

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

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

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

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

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

это уравнение вы используете в генеративных моделях.

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

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

person Saul Berardo    schedule 28.02.2013
comment
Исходя из этого, разве генеративная и дискриминантная модели не равны применительно к одному и тому же распределению? Почему же тогда существует разница в поведении классификации? Или они просто равны в контексте максимального правдоподобия? - person Sebastian Graf; 15.10.2015
comment
Чтобы сказать, равны они или нет, нам нужно сначала определить, что мы под этим подразумеваем. У них много общего, но самое сильное различие - это используемая стратегия: моделирование распределения (генеративное) или прогнозирование класса, независимо от распределения (дискриминационное) - подумайте о KNN на секунду в качестве примера. - person Saul Berardo; 16.10.2015

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

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

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

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

person Ghrua    schedule 08.03.2017


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

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

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

person Sriwantha Attanayake    schedule 16.03.2011

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

person Prakhar Agrawal    schedule 02.10.2016

Краткий ответ

Многие ответы здесь основаны на широко используемом математическом определении [1]:

  • Дискриминативные модели непосредственно изучают условное прогнозное распределение p(y|x).
  • Generative models learn the joint distribution p(x,y) (or rather, p(x|y) and p(y)).
    • Predictive distribution p(y|x) can be obtained with Bayes' rule.

Хотя это узкое определение очень полезно, оно предполагает контролируемую настройку и менее удобно при изучении неконтролируемых или частично контролируемых методов. Это также не применимо ко многим современным подходам к глубокому генеративному моделированию. Например, теперь у нас есть неявные генеративные модели, например Генеративные состязательные сети (GAN), которые основаны на выборке и даже не моделируют явно плотность вероятности p(x) (вместо этого изучают меру дивергенции через сеть дискриминатора). Но мы называем их «генеративными моделями», поскольку они используются для генерации (многомерных [10]) выборок.

Более широкое и более фундаментальное определение [2] кажется одинаково подходящим для ответа на этот общий вопрос:

  • Discriminative models learn the boundary between classes.
    • So they can discriminate between different kinds of data instances.
  • Generative models learn the distribution of data.
    • So they can generate new data instances.

Из http://primo.ai/index.php?title=Discriminative_vs._Generative Источник изображения


Внимательнее

Даже в этом случае этот вопрос подразумевает некоторую ложную дихотомию [3]. Генеративно-дискриминативная «дихотомия» на самом деле является спектром, который вы можете даже плавно интерполировать между [4].

Как следствие, это различие становится произвольным и сбивающим с толку, особенно когда многие популярные модели не попадают точно в ту или иную [5,6] или фактически являются гибридными моделями (комбинациями классически «дискриминативных» и «генеративных» моделей). .

Тем не менее, это по-прежнему очень полезное и распространенное различие. Мы можем перечислить несколько четких примеров генеративных и дискриминационных моделей, как канонических, так и недавних:

  • Генеративные: наивный байесовский алгоритм, скрытое распределение Дирихле (LDA), генеративные состязательные сети (GAN), вариационные автоэнкодеры (VAE), нормализующие потоки.
  • Дискриминационный: машина опорных векторов (SVM), логистическая регрессия, самые глубокие нейронные сети.

Существует также много интересных работ, в которых глубоко исследуются генеративно-дискриминативное разделение [7] и спектр [4,8], и даже по преобразованию дискриминативных моделей в генеративные модели [9].

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


Источники

  1. Возможно, происходит из «Машинного обучения - дискриминационного и генеративного» (Тони Джебара, 2004).
  2. Ускоренный курс машинного обучения от Google
  3. Генеративно-дискриминационная ошибка
  4. «Принципиальные гибриды генеративных и дискриминативных моделей» (Lasserre et al., 2006)
  5. вопрос @ shimao
  6. Ответ Бину Джасима
  7. Comparing logistic regression and naive Bayes:
  8. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/04/DengJaitly2015-ch1-2.pdf
  9. «Ваш классификатор тайно основан на энергетической модели» (Grathwohl et al., 2019)
  10. Stanford CS236 notes: Технически вероятностная дискриминационная модель также является генеративной моделью этикеток, обусловленной данные. Однако термин «генеративные модели» обычно используется для данных большой размерности.
person Christabella Irwanto    schedule 17.12.2019
comment
Это действительно должно иметь больше голосов. Ваш был единственным ответом, который касался обнаруженной мной идеи ложной дихотомии. Мой вопрос похож на этот: stats.stackexchange.com/questions/408421/ - person Antonio Luis Sombra; 16.02.2020

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

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

person Lerner Zhang    schedule 24.06.2019

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

person Arun    schedule 31.05.2017

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

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

person Nages    schedule 17.05.2018
comment
Что я получаю, так это генеративная модель, основанная на контролируемом обучении, в то время как различающая модель основана на неконтролируемом обучении. Я прав? - person Waseem Ahmad Naeem; 06.08.2018
comment
@WaseemAhmadNaeem Вроде, но не совсем. y всегда является целью и необходим как часть входных данных, поэтому оба контролируются. Генеративный кажется неконтролируемым, потому что первым шагом является получение полного распределения (во всех варах, не считая y как особого). Если вы остановились на этом и не относитесь к y как к особому, то эта часть сама по себе остается без присмотра. - person Mitch; 07.12.2018
comment
@Mitch, могу я попросить вас поделиться некоторыми статьями / заметками / ссылками на разницу между ними? на самом деле я немного запутался в этой концепции. заранее спасибо - person Waseem Ahmad Naeem; 07.12.2018
comment
@WaseemAhmadNaeem Найдите Cross Validated.SE (сайт статистики / ML SE), в частности Генеративный против Дискриминационного или Генеративные и дискриминационные модели в байесовском контексте. Элементарные примеры Наивный байесовский метод является генеративным, логистическая регрессия - дискриминационным. Еще примеры обоих. - person Mitch; 07.12.2018

Эта статья очень помогла мне понять концепцию.

В итоге,

  • Обе модели являются вероятностными, то есть обе используют вероятность (, если быть точным, условную вероятность) для вычисления классов для неизвестных данных.
  • Генеративные классификаторы применяют Совместную теорему PDF и Байеса к набору данных и вычисляют условную вероятность, используя полученные из них значения.
  • Дискриминационные классификаторы напрямую находят условную вероятность в наборе данных.

Хорошие материалы для чтения: условная вероятность, Объединенный PDF-файл

person ansh sachdeva    schedule 16.04.2020