Пожалуйста, помогите мне понять разницу между порождающим и дискриминационным алгоритмом, помня, что я только начинающий.
587
Пожалуйста, помогите мне понять разницу между порождающим и дискриминационным алгоритмом, помня, что я только начинающий.
Ответы:
Допустим, у вас есть входные данные,
x
и вы хотите классифицировать данные по меткамy
. Генеративная модель изучает совместное распределение вероятностей,p(x,y)
а дискриминативная модель изучает условное распределение вероятностей,p(y|x)
которое следует читать как «вероятностьy
данногоx
» .Вот действительно простой пример. Предположим, у вас есть следующие данные в форме
(x,y)
:(1,0), (1,0), (2,0), (2, 1)
p(x,y)
являетсяp(y|x)
являетсяЕсли вам понадобится несколько минут, чтобы посмотреть на эти две матрицы, вы поймете разницу между двумя вероятностными распределениями.
Распределение
p(y|x)
является естественным распределением для классификации данного примераx
в классy
, поэтому алгоритмы, которые моделируют это напрямую, называются дискриминационными алгоритмами. Модель генеративных алгоритмовp(x,y)
, которую можно преобразоватьp(y|x)
, применив правило Байеса, а затем использовать для классификации. Тем не менее, распределениеp(x,y)
может также использоваться для других целей. Например, вы можете использоватьp(x,y)
для создания вероятных(x,y)
пар.Из приведенного выше описания вы можете подумать, что генеративные модели более полезны и, следовательно, лучше, но это не так просто. Эта статья является очень популярным справочником по вопросу о дифференцирующих и порождающих классификаторах, но она довольно трудоемкая. Общая суть заключается в том, что дискриминационные модели обычно превосходят генеративные модели в задачах классификации.
источник
p(y|x)
подразумевает, что алгоритмы, которые моделируют это, называют «дискриминационными моделями».А генеративный алгоритм модель , как данные были получены для того , чтобы классифицировать сигнал. Он задает вопрос: исходя из предположений моего поколения, какая категория, скорее всего, будет генерировать этот сигнал?
Дискриминационный алгоритм не заботится о том , как создавались данные, он просто классифицирует данный сигнал.
источник
Представьте, что ваша задача - классифицировать речь по языку.
Вы можете сделать это:
или
Первый - это генеративный подход, а второй - дискриминационный .
Проверьте эту ссылку для более подробной информации: 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)
, что явно моделирует реальное распределение каждого класса .С помощью функции совместного распределения вероятностей, учитывая
y
, вы можете вычислить («сгенерировать») ее значениеx
. По этой причине их называют «генеративными» моделями.источник
Вот самая важная часть из лекций CS299 (Эндрю Нг), связанных с этой темой, которая действительно помогает мне понять разницу между дискриминационными и генеративными алгоритмами обучения.
Предположим, у нас есть два класса животных, слон (
y = 1
) и собака (y = 0
). И х - это вектор признаков животных.При наличии обучающего набора алгоритм, такой как логистическая регрессия или алгоритм персептрона (в основном), пытается найти прямую линию, то есть границу решения, которая разделяет слонов и собак. Затем, чтобы классифицировать новое животное как слона или собаку, он проверяет, на какую сторону границы решения он попадает, и соответственно делает свой прогноз. Мы называем это дискриминационным алгоритмом обучения .
Вот другой подход. Во-первых, глядя на слонов, мы можем построить модель того, как выглядят слоны. Затем, глядя на собак, мы можем построить отдельную модель того, как собаки выглядят. Наконец, чтобы классифицировать новое животное, мы можем сопоставить новое животное с моделью слона и сопоставить его с моделью собаки, чтобы увидеть, выглядит ли новое животное больше как слоны или больше как собаки, которых мы видели в тренировочном наборе. , Мы называем это генеративным алгоритмом обучения .
источник
Как правило, в сообществе машинного обучения есть практика не учить то, что вы не хотите. Например, рассмотрим проблему классификации, в которой цель состоит в том, чтобы назначить метки y заданному вводу 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]:
Хотя это узкое определение очень полезно, оно предполагает контролируемую настройку и менее удобно при изучении неконтролируемых или полуконтролируемых методов. Это также не относится ко многим современным подходам к глубокому генеративному моделированию . Например, теперь у нас есть неявные генеративные модели, например, Генерирующие состязательные сети (GAN), которые основаны на выборке и даже не моделируют явно плотность вероятности
p(x)
(вместо этого изучают меру расхождения через сеть дискриминатора). Но мы называем их «порождающими моделями», поскольку они используются для генерации (многомерных [10]) выборок.Более широкое и более фундаментальное определение [2] кажется одинаково подходящим для этого общего вопроса:
Источник изображения
Пристальный взгляд
Тем не менее, этот вопрос подразумевает некоторую ложную дихотомию [3]. Генеративно-дискриминационная «дихотомия» на самом деле представляет собой спектр, который можно даже плавно интерполировать между [4].
Как следствие, это различие становится произвольным и запутанным, особенно когда многие популярные модели не подпадают под ту или иную [5,6] или фактически являются гибридными моделями (комбинации классически «дискриминационных» и «порождающих» моделей) ,
Тем не менее, это все еще очень полезное и распространенное различие. Мы можем перечислить некоторые четкие примеры порождающих и дискриминационных моделей, как канонических, так и недавних:
Существует также много интересных работ, глубоко исследующих порождающе-дискриминационный разрыв [7] и спектр [4,8], и даже превращающих дискриминационные модели в порождающие модели [9].
В конце концов, определения постоянно развиваются, особенно в этой быстро растущей области :) Лучше взять их с щепоткой соли, и, возможно, даже переопределить их для себя и других.
источники
источник
Все предыдущие ответы великолепны, и я хотел бы добавить еще один момент.
Из моделей генеративного алгоритма мы можем получить любое распределение; в то время как мы можем получить только условное распределение P (Y | X) из моделей дискриминирующего алгоритма (или мы можем сказать, что они полезны только для распознавания метки Y), и именно поэтому оно называется дискриминационной моделью. Дискриминативная модель не предполагает, что X независимы, учитывая Y ($ X_i \ perp X _ {- i} | Y $), и, следовательно, обычно более эффективны для вычисления этого условного распределения.
источник
Мои два цента: дискриминационные подходы подчеркивают различия Генеративные подходы не фокусируются на различиях; они пытаются построить модель, которая является представителем класса. Между ними есть совпадение. В идеале следует использовать оба подхода: один будет полезен для нахождения сходства, а другой будет полезен для нахождения несоответствия.
источник
Модель генеративного алгоритма будет полностью извлекать уроки из обучающих данных и прогнозировать реакцию.
Дискриминирующий алгоритм работы состоит в том, чтобы просто классифицировать или дифференцировать 2 результата.
источник
Эта статья мне очень помогла в понимании концепции.
В итоге,
Хороший материал для чтения: условная вероятность , совместный PDF
источник