Генеративный или дискриминационный

154

Я знаю, что порождающие средства «основаны на » и дискриминационные средства «основаны на », но я запутался в нескольких моментах:P ( y | x )P(x,y)P(y|x)

  • Википедия (+ много других хитов в сети) классифицирует такие вещи, как SVM и деревья решений, как дискриминационные. Но они даже не имеют вероятностных интерпретаций. Что здесь означает дискриминация? Дискриминационный просто означает что-то, что не является генеративным?

  • Наивный байесовский (NB) является генеративным, потому что он захватывает и , и, таким образом, у вас есть (а также ). Разве не тривиально сделать, скажем, логистическую регрессию (создатель дискриминативных моделей) «порождающей», просто вычисляя аналогичным образом (такое же предположение о независимости, что и NB, так что , где MLE для - просто частоты)?P ( y ) P ( x , y ) P ( y | x ) P ( x ) P ( x ) = P ( x 0 ) P ( x 1 ) . , , P ( x d ) P ( x i )P(x|y)P(y)P(x,y)P(y|x)P(x)P(x)=P(x0)P(x1)...P(xd)P(xi)

  • Я знаю, что дискриминационные модели имеют тенденцию превосходить генеративные. Какая практическая польза от работы с генеративными моделями? Цитируется возможность генерировать / имитировать данные, но когда это происходит? У меня лично есть только опыт регрессии, классификации, коллаборации. фильтруя структурированные данные, так что здесь для меня неуместно? Аргумент «отсутствующие данные» ( для отсутствующего ), кажется, дает вам преимущество только в обучающих данных (когда вы на самом деле знаете и вам не нужно маргинализировать над чтобы получить относительно тупой который вы могли бы оценить в любом случае напрямую), и даже в этом случае вменение гораздо более гибкое (можно прогнозировать, основываясь не только наx i y P ( y ) P ( x i ) yP(xi|y)xiyP(y)P(xi)yно и другие ).xi

  • Что с совершенно противоречивыми цитатами из Википедии? «порождающие модели обычно более гибкие, чем дискриминационные модели в выражении зависимостей в сложных задачах обучения», в отличие от «дискриминационные модели обычно могут выражать более сложные отношения между наблюдаемыми и целевыми переменными»

Связанный вопрос, который заставил меня задуматься об этом.

Ян
источник
5
(+1) Я думаю, что терминология сбивает с толку, и я думаю, что модель является порождающей для условного распределения, в отличие от SVM, скажем, что моделирует только аспекты этого условного распределения для чисто дискриминационного цель. Как показывает ваш второй пункт, модель может быть расширена, чтобы стать полностью генеративной моделью. Различие имеет отношение с точки зрения обучения, потому что мы можем либо моделировать и вычислять либо мы можем моделировать . P ( y | x ) P ( x , y ) P ( y | x ) P ( y | x )P(y|x)P(y|x)P(x,y)P(y|x)P(y|x)
NRH
2
Я не думаю, что ваше утверждение о SVM верно: «Но у них даже нет вероятностных интерпретаций». Все, что имеет функцию потерь, может быть ясно интерпретировано в вероятностном смысле путем нахождения конфигурации MAP подходящего PDF.
Gmatt

Ответы:

135

Фундаментальное различие между дискриминационными моделями и генеративными моделями:

  • Дискриминационные модели изучают (жесткую или мягкую) границу между классами
  • Генеративные модели моделируют распределение отдельных классов

Чтобы ответить на ваши прямые вопросы:

  • SVM и деревья решений являются дискриминационными, потому что они изучают явные границы между классами. SVM - это классификатор максимального запаса, означающий, что он изучает границу решения, которая максимизирует расстояние между выборками двух классов, заданных ядром. Расстояние между образцом и границей выученного решения может быть использовано для того, чтобы сделать SVM «мягким» классификатором. DT изучают границу решения путем рекурсивного разделения пространства таким образом, чтобы максимизировать получение информации (или другой критерий).

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

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

  • (Эта цитата запутанная, но я думаю, это то, что она пытается сказать). Генеративные модели обычно задаются как вероятностные графические модели, которые предлагают богатые представления отношений независимости в наборе данных. Дискриминативные модели не дают таких четких представлений об отношениях между объектами и классами в наборе данных. Вместо того чтобы использовать ресурсы для полного моделирования каждого класса, они сосредоточены на богатом моделировании границы между классами. Учитывая тот же объем емкости (скажем, битов в компьютерной программе, выполняющей модель), дискриминационная модель, таким образом, может дать более сложные представления этой границы, чем порождающая модель.

benhamner
источник
Тривиальный комментарий: границы между кластерами становятся все сложнее и труднее построить / понять / измерить при увеличении . Таким образом, например, k-кластеризация, рассматриваемая как дискриминационная модель, становится более шумной и специальной. (Пример: сравните политику в двухпартийной системе с 5-партийной в Германии). (k2)kk
Денис
63

(Ответ Хамнера великолепен, поэтому просто напишите мой ответ от MetaOptimize для полноты.)

Я думаю о порождающих алгоритмах как о предоставлении модели того, как на самом деле генерируются данные (я думаю о них как о том, что они дают вам модель как и , а не , хотя я предполагаю, что это эквивалентно), и дискриминационные алгоритмы просто обеспечивают разделение классификации (и не обязательно вероятностным способом).P(X|Y)P(Y)P(X,Y)

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

Обратите внимание, что порождающие алгоритмы имеют дискриминационные свойства, поскольку вы можете получить если у вас есть и (по теореме Байеса), хотя дискриминационные алгоритмы на самом деле не имеют порождающих свойств.P(Y|X)P(X|Y)P(Y)

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

  • вероятностные алгоритмы пытаются выучить (например, логистическая регрессия);P(Y|X)
  • или не вероятностные алгоритмы, которые пытаются изучать отображения непосредственно из точек в классы (например, персептрон и SVM просто дают вам разделяющую гиперплоскость, но не дают модели генерации новых точек).

Так что да, дискриминационные классификаторы - это любые классификаторы, которые не являются генеративными.

Другой способ думать об этом заключается в том, что порождающие алгоритмы делают некоторые предположения о структуре вашей модели , но дискриминационные алгоритмы делают меньше предположений. Например, Наивный Байес предполагает условную независимость ваших функций, а логистическая регрессия (дискриминационный «аналог» Наивного Байеса) - нет.

2: Да, Наивный Байес является генеративным, потому что он захватывает и . Например, если мы знаем, что и вместе с вероятностями английского и французского слова, то теперь мы можем сгенерировать новый документ, сначала выбрав язык документа ( Английский с вероятностью 0,7, французский с вероятностью 0,3), а затем генерирует слова в соответствии с вероятностями слова выбранного языка.P(X|Y)P(Y)P(Y=English)=0.7P(Y=French)=0.3

Да, я думаю, вы могли бы сделать логистическую регрессию порождающей таким образом, но это только потому, что вы добавляете что-то к логистической регрессии, которой еще нет. То есть, когда вы выполняете наивную байесовскую классификацию, вы непосредственно вычисляете (термины справа, и , это то, что позволяет генерировать новый документ); но когда вы вычисляете в логистической регрессии, вы не вычисляете эти две вещи, вы просто применяете логистическую функцию к точечному произведению.P ( X | Y ) P ( Y ) P ( Y | X )P(Y|X)P(X|Y)P(Y)P(X|Y)P(Y)P(Y|X)

3: генеративные модели часто превосходят дискриминационные модели в меньших наборах данных, потому что их генеративные допущения устанавливают некоторую структуру в вашей модели, которая предотвращает переоснащение . Например, давайте рассмотрим наивный байесовский алгоритм против логистической регрессии. Предположение Наивного Байеса, конечно, редко выполняется, поэтому логистическая регрессия будет иметь тенденцию превосходить Наивный байесовский по мере роста вашего набора данных (так как он может фиксировать зависимости, которые наивный Байес не может). Но когда у вас есть только небольшой набор данных, логистическая регрессия может обнаружить ложные паттерны, которые на самом деле не существуют, поэтому наивный байесовский эффект действует как своего рода регуляризатор в вашей модели, который предотвращает перефразирование. Есть статья Эндрю Нга и Майкла Джордана о дифференцирующих и порождающих классификаторах, которая говорит об этом больше.

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

raegtin
источник