Допустим, у вас есть входные данные 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)
пар.
Из приведенного выше описания вы можете подумать, что генеративные модели более полезны и, следовательно, лучше, но это не так просто. Эта статья является очень популярным справочником по вопросу о дискриминационных и порождающих классификаторах, но она довольно трудоемкая. Общая суть в том, что дискриминационные модели обычно превосходят генеративные модели в задачах классификации.