Пожалуйста, помогите мне понять разницу между генеративным и дискриминационным алгоритмом, помня, что я только начинающий.
В чем разница между генеративным и дискриминационным алгоритмом?
Ответ 1
Допустим, у вас есть входные данные 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)
пар.
Из приведенного выше описания вы можете подумать, что генеративные модели более полезны и, следовательно, лучше, но не все так просто. Эта статья является очень популярным справочником по вопросу о дискриминационных и порождающих классификаторах, но она довольно трудоемкая. Общая суть заключается в том, что дискриминационные модели обычно превосходят генеративные модели в задачах классификации.
Ответ 2
A генеративный алгоритм моделирует, как данные были сгенерированы для категоризации сигнала. Он задает вопрос: исходя из предположений моего поколения, какая категория, скорее всего, будет генерировать этот сигнал?
A дискриминационный алгоритм не заботится о том, как генерировались данные, он просто классифицирует данный сигнал.
Ответ 3
Представьте, что ваша задача - классифицировать речь по языку.
Вы можете сделать это:
- изучать каждый язык, а затем классифицировать его, используя только что полученные знания
или же
- определение различий в лингвистических моделях без изучения языков, а затем классификация речи.
Первый - это генеративный подход, а второй - дискриминационный.
Проверьте эту ссылку для более подробной информации: http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf.
Ответ 4
На практике модели используются следующим образом.
В дискриминационных моделях, чтобы предсказать метку y
из обучающего примера x
, вы должны оценить:
который просто выбирает наиболее вероятный класс y
учитывая x
. Как будто мы пытались смоделировать границу решения между классами. Это поведение очень ясно видно в нейронных сетях, где вычисленные веса можно рассматривать как сложную форму кривой, изолирующей элементы класса в пространстве.
Теперь, используя правило Байеса, давайте заменим в уравнении на . Так как вы просто интересуетесь arg max, вы можете стереть знаменатель, который будет одинаковым для каждого y
. Итак, вы остались с
это уравнение, которое вы используете в порождающих моделях.
В то время как в первом случае у вас было условное распределение вероятностей p(y|x)
, которое моделировало границу между классами, во втором вы имели совместное распределение вероятностей p (x, y), так как p (x, y) = p (x | y) p (y), который явно моделирует фактическое распределение каждого класса.
С помощью функции совместного распределения вероятностей, заданной как y
, вы можете вычислить ("сгенерировать") ее соответствующий x
. По этой причине их называют "генеративными" моделями.
Ответ 5
Здесь наиболее важная часть из лекционных заметок CS299 (Эндрю Нг), связанных с темой, которая действительно помогает мне понять разницу между дискриминационными и генеративными алгоритмами обучения.
Предположим, у нас есть два класса животных: слон (y = 1
) и собака (y = 0
). И х - это вектор признаков животных.
При наличии обучающего набора алгоритм, такой как логистическая регрессия или алгоритм персептрона (в основном), пытается найти прямую линию, то есть границу решения, которая разделяет слонов и собак. Затем, чтобы классифицировать новое животное как слона или собаку, он проверяет, на какую сторону границы решения он попадает, и соответственно делает свой прогноз. Мы называем это дискриминационным алгоритмом обучения.
Здесь другой подход. Во-первых, глядя на слонов, мы можем построить модель того, как выглядят слоны. Затем, глядя на собак, мы можем построить отдельную модель того, как собаки выглядят. Наконец, чтобы классифицировать новое животное, мы можем сопоставить новое животное с моделью слона и сопоставить его с моделью собаки, чтобы увидеть, выглядит ли новое животное больше как слоны или больше как собаки, которых мы видели в тренировочном наборе., Мы называем это генеративным алгоритмом обучения.
Ответ 6
Как правило, в сообществе машинного обучения есть практика не изучать то, чего вы не хотите. Например, рассмотрим проблему классификации, в которой одной целью является присвоение y меток заданному входу x. Если мы используем генеративную модель
p(x,y)=p(y|x).p(x)
мы должны моделировать p (x), что не имеет отношения к задаче в руке. Практические ограничения, такие как ограниченность данных, заставят нас моделировать p(x)
с некоторыми слабыми предположениями о независимости. Поэтому мы интуитивно используем дискриминационные модели для классификации.
Ответ 7
Дополнительный информативный пункт, который хорошо согласуется с ответом 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: часть ответа взята из источника
Ответ 8
Ответ 9
Мои два цента: Дискриминационные подходы подчеркивают различия Положительные подходы не фокусируются на различиях; они пытаются создать модель, которая является представителем класса. Между ними есть перекрытие. В идеале должны использоваться оба подхода: один будет полезен для поиска сходства, а другой будет полезен для поиска диссонансов.
Ответ 10
Модель генеративного алгоритма будет полностью извлекать уроки из обучающих данных и прогнозировать реакцию.
Дискриминирующий алгоритм работы состоит в том, чтобы просто классифицировать или дифференцировать 2 результата.
Ответ 11
Все предыдущие ответы великолепны, и я хотел бы добавить еще один момент.
Из моделей генеративного алгоритма мы можем получить любое распределение; в то время как мы можем получить только условное распределение P (Y | X) из моделей дискриминационного алгоритма (или мы можем сказать, что они полезны только для распознавания метки Ys), и именно поэтому оно называется дискриминационной моделью. Дискриминативная модель не предполагает, что X являются независимыми с учетом Y ($ X_i\perp X _ {-i} | Y $) и, следовательно, обычно более мощны для вычисления этого условного распределения.