Часть 1: Как работает аппроксимация сетки

Вступление

Метод аппроксимации сетки - это метод, используемый для оценки апостериорной вероятности распределения. В этой статье я подробно объясню, как работает этот метод. Попутно вы познакомитесь с несколькими техническими терминами, обычно встречающимися в литературе по байесовскому выводу.

Код для воспроизведения результатов и цифр доступен в этой записной книжке.

Я предполагаю, что читатель имеет базовое понимание статистики, эквивалентное курсу «Статистика 101».

Постановка задачи

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

Вы хотите, чтобы эти цифры были максимально реалистичными, поэтому они должны быть подтверждены данными. Итак, в качестве отправной точки вы предположили, что высота подчиняется нормальному распределению. Теперь осталось только вычислить среднее значение и стандартное отклонение этого распределения.

Вы не знаете, каково точное среднее и стандартное отклонение человеческого роста, но у вас есть некоторые представления о них. Предположим, вы думаете, что стандартное отклонение роста человека может варьироваться от 0 до 50 см. Что касается среднего роста человека, вы думаете, что его изменение лучше всего характеризуется нормальным распределением со средним значением 178 см и стандартным отклонением 20 см. Давайте назовем ваши представления о распределении среднего и стандартного отклонения человеческого роста априорным распределением среднего и стандартного отклонения человеческого роста соответственно.

Учитывая предыдущие распределения, вы можете сгенерировать случайный рост человека, сначала выбрав среднее значение и стандартное отклонение из ваших предыдущих распределений, а затем введя их в нормальное распределение, параметризованное выбранным средним и стандартным отклонением. Вот графическое представление этого процесса:

Вот что произойдет, если вы повторите процесс, описанный на рисунке 1, тысячи раз:

Итак, у вас есть распределение человеческого роста, которое примерно соответствует колоколообразной кривой, где типичный рост составляет от 100 до 250 см. Но ваши данные говорят о другом:

Вам нужно будет обновить свои представления о распределении среднего и стандартного отклонения человеческого роста, т. Е. Ваше предварительное распределение, чтобы оно генерировало человеческий рост, похожий на рисунок 3 .

Как вы собираетесь обновлять предыдущую раздачу? Методом проб и ошибок?

Как обновить свои прежние убеждения

Теорема Байеса - это принципиальный способ обновления вашего предыдущего дистрибутива с учетом дополнительной информации. Следующая формула описывает теорему:

Чтобы сделать вещи более конкретными, вот как формула на рисунке 4 транслируется в наш пример:

Где:

  • θ = [μ, σ], вектор, содержащий значения, выбранные из нашего предыдущего распределения, т. е. среднюю высоту выборки и стандартное отклонение.
  • D = набор, содержащий реальные данные, т.е. реальные человеческие высоты

Мы называем предварительное распределение θ, P (θ), которое было обновлено данными наблюдений, D, апостериорным распределением θ, P (θ | D).

Согласно рисунку 5, чтобы получить обновленную вероятность экземпляра θ после наблюдения D, нам просто нужно:

  1. Вычислите вероятность θ на основе наших априорных значений, P (θ)
  2. Вычислите вероятность данных D при заданном θ, то есть вероятность наблюдения всех точек данных в D, если мы предположим, что они были сгенерированы из нашего предварительного распределения P (D | θ). Мы называем это значение правдоподобием данных с учетом θ.
  3. Вычислите вероятность данных, P (D).
  4. Умножьте (1) на (2), а затем разделите на (3).

Как на самом деле применить эту формулу на практике? В частности, как определить значение P (D)?

Некоторые практические соображения

Есть несколько вещей, о которых нам нужно позаботиться, прежде чем мы сможем операционализировать теорему Байеса. Напоминаем, что вот формула:

Во-первых, обратите внимание, что знаменатель P (D) является постоянным. Технически это называется нормализующей константой и служит для гарантии того, что сумма P ( θ | D) для всех возможных значений θ равна 1. Вместо того, чтобы делать это деление. во многих случаях более эффективно просто игнорировать это, поэтому формула теперь принимает следующий вид:

На рисунке 6 показано, что апостериорное распределение θ пропорционально произведению правдоподобия данных данного θ и априорного распределения θ. Теперь мы сосредоточим наше внимание на вычислении этого произведения и назовем его результат относительным весом θ. Примечание. Этот продукт также известен как функция правдоподобия и является функцией только θ.

Затем давайте подумаем о том, как вычислить P (θ). Согласно определениям, приведенным в предыдущем разделе, мы имеем P (θ) = P (μ, σ), то есть P (θ) - совместное распределение наблюдения μ и σ. Для простоты будем предполагать, что μ и σ не зависят друг от друга. Таким образом, мы имеем:

Наконец, обратите внимание, что мы берем произведение трех значений вероятности. Это может привести к арифметическому переполнению, когда из-за аппаратных ограничений произведение очень малых вероятностей равно 0 вместо еще меньшей вероятности. Обратитесь к [2] для получения более подробной информации об этом явлении. Решение состоит в том, чтобы работать с журналом вероятностей, поэтому теперь у нас есть:

Теперь мы готовы применить метод аппроксимации сетки для вычисления логарифма относительного веса θ после наблюдения D с использованием функции логарифма правдоподобия.

Как работает аппроксимация сетки

Решение для P (θ | D) с использованием аппроксимации сетки представляет собой трехэтапный процесс:

  1. Постройте сетку
  2. Примените функцию правдоподобия к ячейке в сетке
  3. Образец из обновленной сетки

Постройте сетку

P (θ) означает, что мы должны вычислить вероятность каждой возможной комбинации μ и σ. Это непрактично, поскольку μ и σ принимают бесконечный диапазон значений. Вместо этого мы сделаем дискретизацию μ и σ в некотором диапазоне, который мы считаем разумным, и вычислим вероятность для этих диапазонов.

Например, мы могли бы сгенерировать 200 различных значений μ от 140 до 160 и 200 различных значений σ от 4 до 9. Вот как выглядит двухмерная сетка:

Примените функцию правдоподобия к ячейке в сетке

Следующим шагом является применение функции логарифма правдоподобия к каждой ячейке сетки, используя значения в каждой ячейке в качестве входных. Это дает нам журнал относительного веса экземпляра θ.

Обратите внимание, что результат применения функции логарифма правдоподобия всегда является отрицательным числом, поскольку логарифм числа от 0 до 1 отрицателен. Это затрудняет интерпретацию журнала относительного веса экземпляра θ.

Взяв e и возведя его в логарифм относительного веса, математически вернется относительный вес, но результат, скорее всего, будет равен 0 из-за арифметического потери значимости.

Обходной путь к этой проблеме состоит в том, чтобы вычесть из каждого значения логарифма правдоподобия, мы вычислили максимальное значение общих значений логарифма правдоподобия и использовали это значение для увеличения е. Эффект от этой манипуляции заключается в том, что относительный вес изменяется на максимальный относительный вес, как показано на следующем рисунке:

Образец из обновленной сетки

Результатом предыдущего шага является то, что мы знаем относительный вес каждой ячейки в сетке. Это означает, что наша работа выполнена, потому что случайный выбор ячеек в этой сетке пропорционально их относительному весу аналогичен выборке из P (θ | D)!

Вот как выглядит новая P (θ) после того, как мы наблюдали за D:

Для полноты, вот обновленное распределение μ и σ (мы называем это маргинальным апостериорным распределением, а не просто маргинальным распределением, поскольку они были обновлены для отражения D):

Полученные результаты

Теперь у нас есть возможность генерировать реалистичные высоты, повторяя процесс, изображенный на рисунке 1, но вместо этого выбирая пару (среднее, стандартное отклонение) из P (θ | D). Вот как выглядят результаты:

На Рисунке 13 «эмпирический» относится к распределению высот на основе собранных вами данных. «До данных наблюдений» и «после данных наблюдений» относятся к высотам, полученным путем выборки из нашего предварительного распределения, P (θ) и апостериорного распределения, P (θ | D ), соответственно. Обратите внимание, что высоты, полученные из апостериорного распределения, намного лучше соответствуют реальным данным по сравнению с высотами из предыдущего распределения.

Заключение

Я считаю, что метод аппроксимации сетки очень интересен: мы начали с намерения вычислить P (θ | D), но из практических соображений нам пришлось пойти на некоторые компромиссы и вычислить что-то еще. Но в результате некоторых хитрых манипуляций это нечто другое оказывается эквивалентным P (θ | D)!

Дайте мне знать в комментариях, если у вас есть какие-либо вопросы или отзывы. Надеюсь, эта статья была вам полезна.

использованная литература

[1] Теорема Бая. Википедия. Последний доступ: 1 февраля 2020 г.

[2] Арифметическое исчезновение. Википедия. Последний доступ: 1 февраля 2020 г.