Пожалуйста, помогите мне понять разницу между порождающим и дискриминационным алгоритмом, помня, что я только начинающий.
Пожалуйста, помогите мне понять разницу между порождающим и дискриминационным алгоритмом, помня, что я только начинающий.
Ответы:
Допустим, у вас есть входные данные, 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)
пар.
Из приведенного выше описания вы можете подумать, что генеративные модели более полезны и, следовательно, лучше, но это не так просто. Эта статья является очень популярным справочником по вопросу о дифференцирующих и порождающих классификаторах, но она довольно трудоемкая. Общая суть заключается в том, что дискриминационные модели обычно превосходят генеративные модели в задачах классификации.
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,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)
.- Генеративные модели учатся совместному распределению
p(x,y)
(точнее,p(x|y)
иp(y)
).
- Прогнозирующее распределение
p(y|x)
может быть получено с помощью правила Байеса.
Хотя это узкое определение очень полезно, оно предполагает контролируемую настройку и менее удобно при изучении неконтролируемых или полуконтролируемых методов. Это также не относится ко многим современным подходам к глубокому генеративному моделированию . Например, теперь у нас есть неявные генеративные модели, например, Генерирующие состязательные сети (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