Порождающие модели — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Вычисление распределения)
(Вычисление плотности распределения)
Строка 14: Строка 14:
 
== Вычисление плотности распределения ==
 
== Вычисление плотности распределения ==
 
[[Файл:Tax2.jpg|500px|thumb|right]]
 
[[Файл:Tax2.jpg|500px|thumb|right]]
С математической точки зрения основная цель порождающей модели обычно состоит в максимизации функции правдоподобия: для набора данных
+
С математической точки зрения основная цель порождающей модели обычно состоит в максимизации функции '''правдоподобия''': для набора данных максимизировать <tex>\displaystyle \prod_i p_{model}(x_i;\theta)</tex> по параметрам модели <tex>\theta</tex>, т.е. найти <math>\theta^* = \underset{\theta}{\operatorname{argmax}} \displaystyle \prod_i p_{model}(x_i;\theta)</math>
Оценка плотности распределения является основной задачей порождающих моделей.
+
 
 +
===Потеря порядка===
 +
Чтобы избежать арифметического переполнения снизу<ref>[https://ru.wikipedia.org/wiki/Исчезновение_порядка Исчезновение порядка]</ref> зачастую пользуются свойством логарифма произведения <tex>\log ab = \log a+\log b</tex>. Благодаря моннотоности логарифма, его применение к обоим частям выражения не изменит параметры, при которых достигается максимум. При этом, логарифм от числа близкого к нулю будет числом отрицательным, но в абсолютном значении существенно большим чем исходное число, что делает логарифмические значения вероятностей более удобными для анализа. Что в нашем случае с вероятности очень уместно. Поэтому, мы переписываем нашу формулу с использованием логарифма.
 +
 
 +
<math>\theta^* = \underset{\theta}{\operatorname{argmax}} \log \displaystyle \prod_i p_{model}(x_i;\theta) = \underset{\theta}{\operatorname{argmax}} \displaystyle \sum_i \log p_{model}(x_i;\theta) </math>
 +
 
 +
 
  
 
Два основных подхода:
 
Два основных подхода:

Версия 22:34, 17 февраля 2020

Порождающая модель пытается генерировать рукописные 0 и 1, для этого моделирует распределение по всему пространству данных. Напротив, дискриминативная модель старается разделить данные, без необходимости точно моделировать, как объекты размещаются по обе стороны от линии.

Порождающие модели (англ. generative model) — это класс моделей, которые обучают совместное распределение[1] данных [math]p(x, y)[/math]; отсюда легко получить условное распределение [math]p(y | x)={p(x, y)\over p(x)}[/math], но совместное даёт больше информации и его можно использовать, например, для генерации новых фотографий животных, которые выглядят как настоящие животные.

С другой стороны, дискриминативная модель (англ. discriminative model)[2] обучает только условное распределение и может, например, отличить собаку от кошки.

Классификация задачи

Можно использовать некоторые эмпирические правила для генерации новых объектов, не используя машинного обучения.

Требуется чтобы новые объекты были правдоподобными в своей области. Новое изображение человека должно быть правдоподобным, как изображение, но также человек на нём должен быть правдоподобным как человек.

Мы хотим научиться создавать правдоподобный объект относительно некоторой скрытой структуры исходных объектов. Давайте изучим распределение по ним, а затем просто будем сэмплировать новый объект из этого распределения. Значит эта задача относится к классу задач обучения без учителя.

Вычисление плотности распределения

Tax2.jpg

С математической точки зрения основная цель порождающей модели обычно состоит в максимизации функции правдоподобия: для набора данных максимизировать [math]\displaystyle \prod_i p_{model}(x_i;\theta)[/math] по параметрам модели [math]\theta[/math], т.е. найти [math]\theta^* = \underset{\theta}{\operatorname{argmax}} \displaystyle \prod_i p_{model}(x_i;\theta)[/math]

Потеря порядка

Чтобы избежать арифметического переполнения снизу[3] зачастую пользуются свойством логарифма произведения [math]\log ab = \log a+\log b[/math]. Благодаря моннотоности логарифма, его применение к обоим частям выражения не изменит параметры, при которых достигается максимум. При этом, логарифм от числа близкого к нулю будет числом отрицательным, но в абсолютном значении существенно большим чем исходное число, что делает логарифмические значения вероятностей более удобными для анализа. Что в нашем случае с вероятности очень уместно. Поэтому, мы переписываем нашу формулу с использованием логарифма.

[math]\theta^* = \underset{\theta}{\operatorname{argmax}} \log \displaystyle \prod_i p_{model}(x_i;\theta) = \underset{\theta}{\operatorname{argmax}} \displaystyle \sum_i \log p_{model}(x_i;\theta) [/math]


Два основных подхода:

  • Явный: определить распределение [math]p_{model}[/math], описывающее объекты и генерировать данные из него
  • Неявный: получить некоторое распределение, оценить его близость с [math]p_{model}[/math] через дивергенцию Кульбака-Лейблера[4]

Глубокие порождающие модели на основе нейронных сетей

См. также

Примечания

Источники информации