Будь ласка, допоможіть мені зрозуміти різницю між генеративним та дискримінаційним алгоритмом, маючи на увазі, що я лише новачок.
Будь ласка, допоможіть мені зрозуміти різницю між генеративним та дискримінаційним алгоритмом, маючи на увазі, що я лише новачок.
Відповіді:
Скажімо, у вас є вхідні дані, 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
. Це так, як ми намагалися моделювати межу прийняття рішень між класами . Така поведінка дуже чітка в нейронних мережах, де обчислені ваги можна розглядати як складну форму кривої, що ізолює елементи класу в просторі.
Тепер, використовуючи правило Байєса, замінимо рівняння на рівняння . Оскільки вас просто цікавить аргумент max , ви можете стерти знаменник, який буде однаковим для кожного y
. Отже, вам залишається
яке рівняння ви використовуєте в генеративних моделях .
У першому випадку у вас був умовний розподіл ймовірностей p(y|x)
, який моделював межу між класами, у другому у вас був спільний розподіл ймовірностей p(x, y)
, оскільки p(x | y) p(y) = p(x, y)
, явно моделюється фактичний розподіл кожного класу .
За допомогою спільної функції розподілу ймовірностей, заданої a y
, ви можете обчислити ("генерувати") її відповідну x
. З цієї причини їх називають «генеративними» моделями.
Ось найважливіша частина з конспектів лекцій CS299 (від Ендрю Нг), що стосуються цієї теми, що справді допомагає мені зрозуміти різницю між дискримінаційним та генеративним алгоритмами навчання.
Припустимо, у нас є два класи тварин, слон ( y = 1
) і собака ( y = 0
). І x - особливість вектора тварин.
Даючи навчальний набір, алгоритм на зразок логістичної регресії або алгоритм перцептрона (в основному) намагається знайти пряму лінію, тобто межу прийняття рішень, яка розділяє слонів і собак. Потім, щоб класифікувати нову тварину як слона чи собаку, вона перевіряє, на яку сторону межі прийняття рішення вона потрапляє, і робить свій прогноз відповідно. Ми називаємо цей дискримінаційний алгоритм навчання .
Ось інший підхід. Спочатку, дивлячись на слонів, ми можемо побудувати модель того, як виглядають слони. Тоді, дивлячись на собак, ми можемо побудувати окрему модель того, як виглядають собаки. Нарешті, щоб класифікувати нову тварину, ми можемо порівняти нову тварину зі слоновою моделлю та порівняти її з моделлю собаки, щоб побачити, чи нагадує нова тварина як слонів чи більше схожа на собак, яких ми бачили у навчальному наборі . Ми називаємо цей генеративний алгоритм навчання .
Як правило, в машинобудівній спільноті існує практика не вчитися чогось, чого ви не хочете. Наприклад, розглянемо проблему класифікації, де метою є присвоєння 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)
Отже, Naive Bayes в деяких формах моделей, 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 $) і, отже, зазвичай є більш потужним для обчислення цього умовного розподілу.
Мої два центи: Дискримінаційний підхід виділяє відмінності. Генеративні підходи не зосереджуються на відмінностях; вони намагаються побудувати модель, яка є репрезентативною для класу. Між ними є перекриття. В ідеалі слід використовувати обидва підходи: один буде корисним для пошуку подібності, а інший - корисним для пошуку невідповідностей.
Генеративна модель алгоритму повністю засвоїть дані тренувань і передбачить відповідь.
Завдання дискримінаційного алгоритму полягає лише в тому, щоб класифікувати або диференціювати два результати.
Ця стаття мені дуже допомогла в розумінні концепції.
Підводячи підсумок,
Деякі хороші матеріали для читання: умовна ймовірність , спільний PDF