Чим відрізняється генеративний та дискримінаційний алгоритм?


587

Будь ласка, допоможіть мені зрозуміти різницю між генеративним та дискримінаційним алгоритмом, маючи на увазі, що я лише новачок.


4
Цей документ (який також вказував anguyen8 нижче) є хорошим: cs229.stanford.edu/notes/cs229-notes2.pdf
GuSuku

5
Дивіться також те саме запитання в статистиці.SE: Генератив проти дискримінації
Ленар Хойт

Для простої та наочної відповіді натисніть тут stackoverflow.com/a/52412379/7160346
Ravi G

Відповіді:


840

Скажімо, у вас є вхідні дані, 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)пар.

З описаного вище ви можете думати, що генеративні моделі в цілому корисніші і, отже, кращі, але це не так просто. Цей документ є дуже популярним посиланням на тему дискримінаційних та генеративних класифікаторів, але це досить важко. Загальна суть полягає в тому, що дискримінаційні моделі, як правило, перевершують генеративні моделі в класифікаційних завданнях.


48
Дякую за папір. Автор зараз є професором у Стенфорді та має чудові ресурси на stanford.edu/class/cs229/materials.html
unj2


39
При погляді на матриці зауважте, що в першому всі записи складають до 1,0, а у другому кожен ряд підсумовує до одного. Це пришвидшить просвітлення (і зменшить розгубленість)
Максим Хесін

5
Примітка Ендрю Нґ тут також дуже корисна: cs229.stanford.edu/notes/cs229-notes2.pdf
anh_ng8

1
"саме тому алгоритми, що моделюють це безпосередньо, називаються дискримінаційними алгоритмами", все ще не впевнений, чому p(y|x)мається на увазі, що алгоритми, що моделюють його, називаються "дискримінаційними моделями".
nbro

291

А генеративних алгоритм модель , як дані були отримані для того , щоб класифікувати сигнал. Це задає питання: на основі припущень мого покоління, яка категорія, швидше за все, генерує цей сигнал?

Дискримінаційний алгоритм не дбає про те , як створювалися дані, він просто класифікує даний сигнал.


6
Ця відповідь мене бентежить. Обидва класи алгоритмів відносяться до класу керованих алгоритмів навчання, які вивчають модель мічених навчальних даних для отримання функції, яка передбачає інші дані. Дискримінаційний алгоритм, коли ви описуєте це, звучить так, ніби він не створює модель, це правильно? Буду радий, якби ви могли вдосконалити свою відповідь з цього приводу.
Ленар Хойт

42
@mcb Генеративний алгоритм моделює, як дані "генерувались", тож ви запитуєте його: "яка ймовірність того чи іншого класу створила цей екземпляр?" і виберіть той з більшою ймовірністю. Дискримінаційний алгоритм використовує дані для створення межі рішення, тому ви запитуєте його "на якій стороні межі рішення знаходиться цей екземпляр?" Таким чином, це не створює модель того, як генеруються дані, вона робить модель того, що, на його думку, виглядає межа між класами.
Ентоні

1
Тож така генеративна модель, як Naive Bayes, не має межі прийняття рішення?
sheetal_158

4
Тож генеративні моделі здаються, що вони кращі для інтерпретації?
Candic3

157

Уявіть, що ваше завдання - класифікувати мовлення до мови.

Ви можете це зробити будь-яким:

  1. вивчити кожну мову, а потім класифікувати її за допомогою отриманих вами знань

або

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

Перший - це генеративний підхід, а другий - дискримінаційний .

Перегляньте це посилання для більш детальної інформації: http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf .


2
Чи не навпаки? Зважаючи на те, що ви вивчили мову, ви працюєте за умовним розповсюдженням, і тому це має бути дискримінаційним підходом?
Хлопець Лондона

Я думаю, що це і навпаки, прочитавши відповіді нижче - Приклад із конспектів лекцій CS299 від Ghrua
Mitali Cyrus

132

На практиці моделі використовуються наступним чином.

У дискримінаційних моделях , щоб передбачити етикетку yз прикладу навчання x, ви повинні оцінити:

введіть тут опис зображення

який просто вибирає те , що є найбільш ймовірним класом з yурахуванням x. Це так, як ми намагалися моделювати межу прийняття рішень між класами . Така поведінка дуже чітка в нейронних мережах, де обчислені ваги можна розглядати як складну форму кривої, що ізолює елементи класу в просторі.

Тепер, використовуючи правило Байєса, замінимо введіть тут опис зображеннярівняння на рівняння введіть тут опис зображення. Оскільки вас просто цікавить аргумент max , ви можете стерти знаменник, який буде однаковим для кожного y. Отже, вам залишається

введіть тут опис зображення

яке рівняння ви використовуєте в генеративних моделях .

У першому випадку у вас був умовний розподіл ймовірностей p(y|x) , який моделював межу між класами, у другому у вас був спільний розподіл ймовірностей p(x, y) , оскільки p(x | y) p(y) = p(x, y), явно моделюється фактичний розподіл кожного класу .

За допомогою спільної функції розподілу ймовірностей, заданої a y, ви можете обчислити ("генерувати") її відповідну x. З цієї причини їх називають «генеративними» моделями.


3
Таким чином, чи не однакова генеративна та дискримінаційна модель, якщо застосовуватись до одного розподілу? Чому тоді різниця в класифікаційній поведінці? Або вони просто рівні в цьому контексті максимальної ймовірності?
Себастьян Граф

Щоб сказати, чи є вони "рівними" чи ні, нам спочатку потрібно визначити, що ми маємо на увазі під цим. Є багато спільного, але найсильніша різниця полягає у застосованій стратегії: моделюйте розподіл (генеративне) та передбачте клас, незалежно від розподілу (дискримінаційний) - подумайте про КНН на секунду для прикладу.
Саул Берардо

90

Ось найважливіша частина з конспектів лекцій CS299 (від Ендрю Нг), що стосуються цієї теми, що справді допомагає мені зрозуміти різницю між дискримінаційним та генеративним алгоритмами навчання.

Припустимо, у нас є два класи тварин, слон ( y = 1) і собака ( y = 0). І x - особливість вектора тварин.

Даючи навчальний набір, алгоритм на зразок логістичної регресії або алгоритм перцептрона (в основному) намагається знайти пряму лінію, тобто межу прийняття рішень, яка розділяє слонів і собак. Потім, щоб класифікувати нову тварину як слона чи собаку, вона перевіряє, на яку сторону межі прийняття рішення вона потрапляє, і робить свій прогноз відповідно. Ми називаємо цей дискримінаційний алгоритм навчання .

Ось інший підхід. Спочатку, дивлячись на слонів, ми можемо побудувати модель того, як виглядають слони. Тоді, дивлячись на собак, ми можемо побудувати окрему модель того, як виглядають собаки. Нарешті, щоб класифікувати нову тварину, ми можемо порівняти нову тварину зі слоновою моделлю та порівняти її з моделлю собаки, щоб побачити, чи нагадує нова тварина як слонів чи більше схожа на собак, яких ми бачили у навчальному наборі . Ми називаємо цей генеративний алгоритм навчання .


33

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

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

ми мусимо моделювати p (x), що не має значення для завдання, яке знаходиться в руці. Практичні обмеження, такі як рідкість даних, змусять нас моделювати p(x)деякі слабкі припущення щодо незалежності. Тому ми інтуїтивно використовуємо дискримінаційні моделі для класифікації.



22

Додатковий інформативний момент, який добре відповідає відповіді StompChicken вище.

Фундаментальна відмінність між дискримінаційними моделями і генеративних моделями є:

Дискримінаційні моделі вивчають (жорстку або м'яку) межу між класами

Генеративні моделі моделюють розподіл окремих класів

Редагувати:

Генеративна модель - це та, яка може генерувати дані . Він моделює як функції, так і клас (тобто повні дані).

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

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

  • Наївні моделі Байєса P(c)і P(d|c)- де cклас і dє особливістю.

    Також, P(c,d) = P(c) * P(d|c)

    Отже, Naive Bayes в деяких формах моделей, P(c,d)

  • Байєс Чистий

  • Марківська мережа

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

Напр. дискримінаційних моделей:

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

  • Нейронні мережі

  • Умовні випадкові поля

Взагалі, генеративні моделі потребують моделювання набагато більше, ніж дискримінаційні, і, отже, іноді не є настільки ефективними. Власне кажучи, більшість (не впевнений, чи всі) алгоритми навчання без нагляду, такі як кластеризація тощо, можна назвати генеративними, оскільки вони моделюють P(d)(а класів немає: P)

PS: Частина відповіді взята з джерела


8

Коротка відповідь

Багато відповідей тут спираються на широко використовуване математичне визначення [1]:

  • Дискримінаційні моделі безпосередньо вивчають умовний прогнозний розподіл p(y|x).
  • Генеративні моделі вивчають спільний розподіл p(x,y)(точніше, p(x|y)і p(y)).
    • Прогнозний розподіл p(y|x)можна отримати за правилом Байєса.

Незважаючи на те, що це дуже корисно, це вузьке визначення передбачає наглядову установку і є менш зручною при вивченні методів без нагляду або напівнагляду. Це також не застосовується до багатьох сучасних підходів для глибокого генеративного моделювання . Наприклад, зараз ми маємо неявні генеративні моделі, наприклад, Генеративні змагальні мережі (GAN), які базуються на вибірці і навіть не явно моделюють щільність ймовірності p(x)(натомість вивчають міру розбіжності через мережу дискримінатора). Але ми їх називаємо «генеративними моделями», оскільки вони використовуються для генерації (великогабаритних [10]) зразків.

Ширше і більш фундаментальне визначення [2] , схоже , в рівній мірі фітінг для цього загального питання:

  • Дискримінаційні моделі вивчають межу між класами.
    • Таким чином, вони можуть розрізняти різні типи даних.
  • Генеративні моделі навчаються розподілу даних.
    • Таким чином вони можуть генерувати нові екземпляри даних.

Від http://primo.ai/index.php?title=Discriminative_vs._Generative Джерело зображення


Більш пильний погляд

Незважаючи на це, це питання передбачає дещо хибну дихотомію [3]. Генеративно-дискримінаційна «дихотомія» насправді є спектром, який можна навіть плавно інтерполювати між [4].

Як наслідок, ця відмінність стає довільною і заплутаною, особливо коли багато популярних моделей не акуратно потрапляють у ту чи іншу [5,6], або насправді є гібридними моделями (комбінації класично «дискримінаційних» та «генеративних» моделей) .

Тим не менш, це все ще дуже корисне і загальне розмежування. Ми можемо перелічити кілька чітких прикладів генеративних та дискримінаційних моделей, як канонічних, так і останніх:

  • Генеративні: Наївні Бейси, приховане розподілення Діріхле (LDA), Генеративні змагальні мережі (GAN), Варіаційні автокодери (VAE), нормалізуючі потоки.
  • Дискримінаційна: векторна машина підтримки (SVM), логістична регресія, більшість глибоких нейронних мереж.

Також є чимало цікавих робіт, глибоко вивчаючи генеративно-дискримінаційний поділ [7] та спектр [4,8], і навіть перетворюючи дискримінаційні моделі в генеративні моделі [9].

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


Джерела

  1. Можливо, походить із "Машинного навчання - дискримінаційного та генеративного" (Тоні Джебара, 2004).
  2. Курс краху в машинному навчанні від Google
  3. Генерально-дискримінаційна помилка
  4. "Принципові гібриди генеративних та дискримінаційних моделей" (Lasserre et al., 2006)
  5. @ shimao питання
  6. Відповідь Біну Ясіма
  7. Порівняння логістичної регресії та наївного Байєса:
  8. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/04/DengJaitly2015-ch1-2.pdf
  9. "Ваш класифікатор - це таємно модель на основі енергії" (Grathwohl et al., 2019)
  10. Stanford CS236 зазначає : Технічно ймовірнісна дискримінаційна модель також є генеративною моделлю міток, обумовлених даними. Однак термін генеративні моделі, як правило, зарезервований для даних високих розмірів.

1
Це дійсно повинно мати більше результатів. Ви були єдиною відповіддю, яка торкнулася ідеї "помилкової дихотомії", яку я знайшов. Моє запитання схоже на це: stats.stackexchange.com/questions/408421/…
Антоніо Луїс Сомбра

1

Усі попередні відповіді чудові, і я хотів би додати ще одну точку.

З генеративних моделей алгоритмів ми можемо отримати будь-яке розподіл; в той час як ми можемо отримати лише умовний розподіл P (Y | X) з моделей дискримінаційного алгоритму (або можна сказати, що вони корисні лише для розмежування мітки Y), і тому його називають дискримінаційною моделлю. Дискримінаційна модель не передбачає, що X є незалежними з урахуванням Y ($ X_i \ perp X _ {- i} | Y $) і, отже, зазвичай є більш потужним для обчислення цього умовного розподілу.


0

Мої два центи: Дискримінаційний підхід виділяє відмінності. Генеративні підходи не зосереджуються на відмінностях; вони намагаються побудувати модель, яка є репрезентативною для класу. Між ними є перекриття. В ідеалі слід використовувати обидва підходи: один буде корисним для пошуку подібності, а інший - корисним для пошуку невідповідностей.


0

Генеративна модель алгоритму повністю засвоїть дані тренувань і передбачить відповідь.

Завдання дискримінаційного алгоритму полягає лише в тому, щоб класифікувати або диференціювати два результати.


Я отримую генеративну модель - це кероване навчання, а дискримінаційна модель - на основі непідконтрольного навчання. Чи правий я?
Waseem Ahmad Naeem

@WaseemAhmadNaeem Добрий, але не такий. y завжди є ціллю і потрібен як частина вхідних даних, тому обидва піддаються нагляду. Генеративне видається без нагляду, оскільки перший крок - отримати повний розподіл (у всіх варіантах, не вважаючи y особливим). Якщо ви там зупинилися і не ставитесь до y як до особливого, то ця частина сама по собі не контролюється.
Мітч

@Mitch чи можу я попросити вас поділитися папером / замітками / посиланням на різницю обох? насправді я трохи розгублений щодо цієї концепції. Дякую заздалегідь
Waseem Ahmad Naeem

@WaseemAhmadNaeem Пошук на Cross Validated.SE (статистика / сайт ML SE), зокрема, генеративні та дискримінаційні або генеративні та дискримінаційні моделі в байєсівському контексті . Елементарні приклади Naive Bayes є генеративним, логістична регресія - дискримінаційною. Більше прикладів обох .
Мітч

0

Ця стаття мені дуже допомогла в розумінні концепції.

Підводячи підсумок,

  • Обидві є імовірнісними моделями, тобто вони обидва використовують ймовірність ( умовна ймовірність, якщо бути точною ) для обчислення класів для невідомих даних.
  • Генеративні класифікатори застосовують спільну теорію PDF і Байєса на наборі даних і обчислюють умовну ймовірність, використовуючи значення з них.
  • Дискримінаційні класифікатори безпосередньо знаходять умовну ймовірність набору даних

Деякі хороші матеріали для читання: умовна ймовірність , спільний PDF

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.