Несмотря на то, что вы можете хранить файлы таким образом, у него есть значительные компромиссы:
Это всего лишь некоторые из недостатков я могу подняться с головы. Для небольших проектов, возможно, стоит хранить файлы таким образом, но если вы разрабатываете программное обеспечение корпоративного уровня, я бы настоятельно рекомендовал против него.
Допустим, у вас есть входные данные x
, и вы хотите классифицировать данные по меткам y
. Генеративная модель изучает совместное распределение вероятностей p (x, y)
, а дискриминативная модель изучает условное распределение вероятностей p (y | x)
- который следует читать как «вероятность y
с учетом x
» .
Вот действительно простой пример. Предположим, у вас есть следующие данные в виде (x, y)
:
(1,0), (1,0), (2,0), (2, 1)
p (x, y)
is
y=0 y=1
-----------
x=1 | 1/2 0
x=2 | 1/4 1/4
p (y | x)
is
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)
пар.
Из приведенного выше описания вы можете думать, что генеративные модели более полезны и, следовательно, лучше, но это не все так просто. Эта статья является очень популярным справочником по теме дискриминирующих и генеративных классификаторов, но это довольно тяжелая работа. Суть в том, что дискриминантные модели обычно превосходят генеративные модели в задачах классификации.
Генеративный алгоритм моделирует, как данные были сгенерированы для категоризации сигнала. Он задает вопрос: исходя из моих предположений о генерации, какая категория, скорее всего, сгенерирует этот сигнал?
Дискриминантный алгоритм не заботится о том, как были сгенерированы данные, он просто классифицирует данный сигнал.