Определение генеративной модели и дискриминационной модели простое и понятное. При заданном входе x и выходе y генеративная модель моделирует P (x), P (x | y) или P (x, y), а дискриминативная модель моделирует P (y | x). И это объясняется на примере в https://medium.com/@mlengineer/generative-and-distributive-models-af5637a66a3.

Но почему распространенные в настоящее время модели глубокого обучения (такие как ResNet, FasterRCNN, YOLO, LSTM) предназначены для различительной задачи или, точнее, контролируемой различительной задачи? Почему бы нам не использовать генеративную модель для создания изображения на основе тестовых данных, чтобы мы, люди, знали, как наша нейронная сеть интерпретирует данные? Ответ очень прост: нам не нужны эти лишние работы, чтобы иметь хорошо работающую нейросеть. Давайте рассмотрим простой пример случая бинарной классификации.

Красная кривая и синяя кривая на приведенном выше рисунке показывают генеративное распределение x при заданном y, который принадлежит классу y1 или классу y2. Эти две кривые отображают каждую деталь в распределении. Однако в случае классификации нас интересует только граница решения. Следовательно, более эффективно просто моделировать и максимизировать вероятность, как это делает черная кривая на рисунке.

Тогда когда нам нужна генеративная модель?

  • Когда нам необходимо сгенерировать выборки: Во многих случаях нам действительно нужно сгенерировать выборки из исходных данных. Возможно, мы хотим провести полуконтролируемое обучение, когда у нас нет хорошо помеченного набора данных или у нас просто недостаточно данных. Также может случиться так, что мы просто хотим создать новые данные, как то, что люди делали при создании картин, копирующих определенный стиль, или при создании изображений с текстовым описанием.
  • Когда мы хотим декодировать данные: мы можем использовать генеративные модели, чтобы найти скрытую переменную, что похоже на идею скрытой марковской модели (HMM). Это тот случай, когда мы хотим знать, что объясняет наши данные. И он разделяет дух высокого уровня с PCA, что означает, что мы можем выполнять сжатие данных с использованием генеративных моделей.
  • Когда мы хотим получить P(x): иногда мы также хотим назначить распределение выборке, как в оценке плотности, таким образом мы можем использовать генеративную модель для завершения работы.