В чем разница между генеративным и дискриминирующим алгоритмом?
В чем разница между генеративным и дискриминативным алгоритмами?
Ответы (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)
пар.
Из приведенного выше описания вы можете подумать, что генеративные модели более полезны и, следовательно, лучше, но это не так просто. Эта статья является очень популярным справочником по вопросу о различиях и генеративных классификаторах, но это довольно тяжелая работа. Общая суть в том, что дискриминантные модели обычно превосходят генеративные модели в задачах классификации.
p(y|x)
подразумевает, что алгоритмы, моделирующие это, называются дискриминативными моделями.
- person nbro; 03.11.2018
Генеративный алгоритм моделирует создание данных для классификации сигнала. Он задает вопрос: исходя из предположений о моем поколении, какая категория с наибольшей вероятностью будет генерировать этот сигнал?
Дискриминантный алгоритм не заботится о том, как были сгенерированы данные, он просто классифицирует данный сигнал.
Представьте, что ваша задача - отнести речь к языку.
Вы можете сделать это одним из следующих способов:
- изучать каждый язык, а затем классифицировать его, используя только что полученные знания
or
- определение различия лингвистических моделей без изучения языков, а затем классификация речи.
Первый - это генеративный подход, а второй - дискриминационный подход.
Проверьте эту ссылку для получения дополнительных сведений: http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf.
На практике модели используются следующим образом.
В дискриминирующих моделях для прогнозирования метки y
из обучающего примера x
необходимо оценить:
который просто выбирает наиболее вероятный y
класс с учетом x
. Это похоже на то, что мы пытались смоделировать границу принятия решений между классами. Такое поведение очень ясно в нейронных сетях, где вычисленные веса можно рассматривать как кривую сложной формы, изолирующую элементы класса в пространстве.
Теперь, используя правило Байеса, давайте заменим в уравнении на . Поскольку вас интересует просто arg max, вы можете стереть знаменатель, который будет одинаковым для каждого y
. Итак, вы остались с
это уравнение вы используете в генеративных моделях.
Если в первом случае у вас было условное распределение вероятностей p(y|x)
, которое моделировало границу между классами, то во втором у вас было совместное распределение вероятностей p(x, y)
, начиная с p(x | y) p(y) = p(x, y)
, которое < strong> явно моделирует фактическое распределение каждого класса.
С помощью функции совместного распределения вероятностей, заданной y
, вы можете вычислить («сгенерировать») ее соответствующий x
. По этой причине их называют «генеративными» моделями.
Вот самая важная часть из конспектов лекций CS299 (Эндрю Нг), связанных с к теме, что действительно помогает мне понять разницу между дискриминационными и генеративными алгоритмами обучения.
Предположим, у нас есть два класса животных: слон (y = 1
) и собака (y = 0
). А x - вектор признаков животных.
Учитывая обучающий набор, алгоритм, такой как логистическая регрессия или алгоритм персептрона (в основном), пытается найти прямую линию, то есть границу принятия решения, которая разделяет слонов и собак. Затем, чтобы классифицировать новое животное как слона или собаки, он проверяет, на какой стороне границы принятия решения оно падает, и соответственно делает свой прогноз. Мы называем это дискриминативным алгоритмом обучения.
Вот другой подход. Во-первых, глядя на слонов, мы можем построить модель того, как они выглядят. Затем, глядя на собак, мы можем построить отдельную модель того, как выглядят собаки. Наконец, чтобы классифицировать новое животное, мы можем сопоставить новое животное с моделью слона и сопоставить его с моделью собаки, чтобы увидеть, похоже ли новое животное больше на слонов или больше на собак, которых мы видели в обучающей выборке. . Мы называем это алгоритмом генеративного обучения.
Различные модели приведены в таблице ниже:
Источник изображения: Шпаргалка по контролируемому обучению - Stanford CS 229 (Машинное обучение) а>
Как правило, в сообществе машинного обучения существует практика не изучать то, чего вы не хотите. Например, рассмотрим задачу классификации, в которой цель состоит в том, чтобы присвоить метки y заданному входу x. Если использовать генеративную модель
p(x,y)=p(y|x).p(x)
мы должны смоделировать p (x), которая не имеет отношения к поставленной задаче. Практические ограничения, такие как разреженность данных, заставят нас моделировать p(x)
с некоторыми слабыми предположениями о независимости. Поэтому мы интуитивно используем дискриминантные модели для классификации.
Дополнительный информативный момент, который хорошо сочетается с ответом 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: Часть ответа взята из источника
Краткий ответ
Многие ответы здесь основаны на широко используемом математическом определении [1]:
- Дискриминативные модели непосредственно изучают условное прогнозное распределение
p(y|x)
.- Generative models learn the joint distribution
p(x,y)
(or rather,p(x|y)
andp(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.
Внимательнее
Даже в этом случае этот вопрос подразумевает некоторую ложную дихотомию [3]. Генеративно-дискриминативная «дихотомия» на самом деле является спектром, который вы можете даже плавно интерполировать между [4].
Как следствие, это различие становится произвольным и сбивающим с толку, особенно когда многие популярные модели не попадают точно в ту или иную [5,6] или фактически являются гибридными моделями (комбинациями классически «дискриминативных» и «генеративных» моделей). .
Тем не менее, это по-прежнему очень полезное и распространенное различие. Мы можем перечислить несколько четких примеров генеративных и дискриминационных моделей, как канонических, так и недавних:
- Генеративные: наивный байесовский алгоритм, скрытое распределение Дирихле (LDA), генеративные состязательные сети (GAN), вариационные автоэнкодеры (VAE), нормализующие потоки.
- Дискриминационный: машина опорных векторов (SVM), логистическая регрессия, самые глубокие нейронные сети.
Существует также много интересных работ, в которых глубоко исследуются генеративно-дискриминативное разделение [7] и спектр [4,8], и даже по преобразованию дискриминативных моделей в генеративные модели [9].
В конце концов, определения постоянно развиваются, особенно в этой быстрорастущей области :) Лучше всего относиться к ним с долей скепсиса и, возможно, даже пересматривать их для себя и других.
Источники
- Возможно, происходит из «Машинного обучения - дискриминационного и генеративного» (Тони Джебара, 2004).
- Ускоренный курс машинного обучения от Google
- Генеративно-дискриминационная ошибка
- «Принципиальные гибриды генеративных и дискриминативных моделей» (Lasserre et al., 2006)
- вопрос @ shimao
- Ответ Бину Джасима
- Comparing logistic regression and naive Bayes:
- https://www.microsoft.com/en-us/research/wp-content/uploads/2016/04/DengJaitly2015-ch1-2.pdf
- «Ваш классификатор тайно основан на энергетической модели» (Grathwohl et al., 2019)
- Stanford CS236 notes: Технически вероятностная дискриминационная модель также является генеративной моделью этикеток, обусловленной данные. Однако термин «генеративные модели» обычно используется для данных большой размерности.
Все предыдущие ответы великолепны, и я хотел бы отметить еще один момент.
Из моделей генеративного алгоритма мы можем получить любое распределение; в то время как мы можем получить только условное распределение P (Y | X) из моделей дискриминативного алгоритма (или мы можем сказать, что они полезны только для различения метки Y), и поэтому это называется дискриминативной моделью. Дискриминантная модель не предполагает, что X являются независимыми с учетом Y ($ X_i \ perp X _ {- i} | Y $) и, следовательно, обычно более эффективны для вычисления этого условного распределения.
Мои два цента: Дискриминационные подходы подчеркивают различия Генеративные подходы не сосредотачиваются на различиях; они пытаются построить модель, репрезентативную для этого класса. Эти два понятия частично совпадают. В идеале следует использовать оба подхода: один будет полезен для поиска сходства, а другой - для обнаружения несходства.
Модель генеративного алгоритма будет полностью учиться на обучающих данных и предсказывать ответ.
Задача дискриминационного алгоритма - просто классифицировать или различать два результата.
Эта статья очень помогла мне понять концепцию.
В итоге,
- Обе модели являются вероятностными, то есть обе используют вероятность (, если быть точным, условную вероятность) для вычисления классов для неизвестных данных.
- Генеративные классификаторы применяют Совместную теорему PDF и Байеса к набору данных и вычисляют условную вероятность, используя полученные из них значения.
- Дискриминационные классификаторы напрямую находят условную вероятность в наборе данных.
Хорошие материалы для чтения: условная вероятность, Объединенный PDF-файл