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



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

881   10  

10 ответов:

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

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

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

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

представьте, что ваша задача-классифицировать слова на язык.

вы можете сделать это либо:

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

или

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

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

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

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

на дискриминационной модели, чтобы предсказать метку y из обучающего примера x, вы должны оценить:

enter image description here

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

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

enter image description here

какое уравнение вы используете в генеративной модели.

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

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

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

предположим, что у нас есть два класса животных, слон(y = 1) и собака(y = 0). И x это особенность животных.

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

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

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

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

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

дополнительный информативный момент, который хорошо сочетается с ответом StompChicken выше.

The принципиальная разница между дискриминационной модели и генеративной модели - это:

дискриминационной модели узнать (жесткая или мягкая) граница между классами

генеративной модели модель распределение of индивидуальные занятия

Edit:

генеративная модель-это одна который может генерировать данные. Он моделирует как объекты, так и класс (т. е. полные данные).

если мы модель P(x,y): Я могу использовать это распределение вероятностей для генерации точек данных-и, следовательно, все алгоритмы моделирования P(x,y) генеративных.

например. генеративных моделей

  • модели упрощенного алгоритма Байеса P(c) и P(d|c) - где c класс а d - это векторный объект.

    и P(c,d) = P(c) * P(d|c)

    следовательно, наивный Байес в некоторых моделях форма, P(c,d)

  • Bayes Net

  • Марковских Сетей

дискриминационная модель-это та, которую можно использовать только для различать / классифицировать точки данных. Вам нужно только моделировать P(y|x) в таких случаях (т. е. вероятность класс, заданный вектором пространственных объектов).

например. из дискриминативных моделей:

  • логистическая регрессия

  • Нейронные Сети

  • условные случайные поля

P(d) (и нет никаких классов: P)

PS: часть ответа взята из источник

различные модели суммируются в таблице ниже: enter image description here

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

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

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

Comments

    Ничего не найдено.