Практика – залог успеха

Упражнение. Сравнение разных стратегий

Здравствуйте и вновь добро пожаловать на занятия по теме «Байесовское машинное обучение на языке Python, часть 1».

В этой практической статье я расскажу вам о прекрасной возможности, действительно позволяющей закрепить изученный в данном курсе материал. Напомню, что мы прошлись по некоторым классическим частотным методам А/В-тестирования и обсудили ряд им присущих проблем, таких как неточные доверительные интервалы и неверное понимание p-значения. В частности, мы сосредоточились на данных с распределением Бернулли, поскольку они интенсивно применяются в интернет-бизнесе, цифровых медиа, охватывая понятия вроде показателей кликабельности, переходов и так далее. Затем мы рассмотрели несколько адаптивных методов, позволяющих одновременно проверять несколько разных вариантов чего-либо, в то же время приспосабливая и обновляя наши убеждения о лучшем варианте, исходя из данных. Мы также рассмотрели математические свойства каждого метода, чтобы показать, что хотя все они работают в том плане, что позволяют и исследовать, и использовать, но каждый из них использует свою стратегию.

Вреальном мире нас интересуют не столько математические свойства каждого изметодов вроде их асимптотической сходимости, сколько знание о том, какой из нихлучше работает. Как вы видели, мы можем сгенерировать искусственные данные изапустить алгоритм на них. Видимо, вы заметили, что мы не писали никакого кодадля эпсилон-жадного алгоритма и UCB1, но, надеюсь,это не вызвало затруднений, поскольку они представляют собой лишь несколькострок псевдокода. Но чтобы прочувствовать работу всех этих алгоритмов исравнить их между собой, было бы неплохо создать собственную симуляцию работыэтих трёх алгоритмов и подсчитать вознаграждение от каждого из них.

Есть ряд характеристик, на которые стоит взглянуть: какой из алгоритмов самый простой в реализации или все примерно одинаковы, какой быстрее всего сходится к лучшему бандиту и каковы общие потери по сравнению с ситуацией, когда вы уже знаете лучший вариант и играете только с соответствующим бандитом.
Формально этот показатель называется «сожалением» – прим. от LazyProgrammer

Упражнение. Бросок кубика

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

Работас априорными сопряжениями – это центральная часть байесовского машинногообучения. Вы уже видели, что априорная вероятность бета-распределения справдоподобием Бернулли являются априорным сопряжением и описываютповторяющийся случайный процесс вроде подбрасывания монеты. При этомполагалось, что результат является двоичным, что, конечно же, далеко не всегдатак в реальном мире. В этом же упражнении нам предстоит всё несколько обобщить.

Предположим,что теперь мы многократно подбрасываем кубик. У него 6 граней, но алгоритмдолжен работать и для кубика с любым числом граней. Итак, каково же априорноесопряжение в этой задаче? Я дам вам минуту, чтобы разобраться, поэтому,пожалуйста, поставьте видео на паузу и возвращайтесь, когда справитесь, чтобыпроверить свой ответ.

Итак,прежде всего нужно смоделировать функцию правдоподобия. Поскольку результатыиспытания являются дискретными категориальными переменными, то и правдоподобиемы моделируем как категориальное распределение:

ПодI подразумевается функция тождества,возвращающая 1, если аргумент истинен (то есть xn = k) и 0 впротивном случае.

Далее,если вы посмотрите на априорные сопряжения в Википедии, то увидите, чтоаприорная вероятность Дирихле имеет категориальное правдоподобие. РаспределениеДирихле – это нечто вроде многомерной версии бета-распределения, так что этологично. Вот плотность распределения вероятностей при распределении Дирихле (B-функция здесьаналогична B-функциив бета-распределении, так что явно видна прямая связь с бета-распределением):

ПодI подразумевается функция тождества,возвращающая 1, если аргумент истинен (то есть xn = k) и 0 впротивном случае.

Далее,если вы посмотрите на априорные сопряжения в Википедии, то увидите, чтоаприорная вероятность Дирихле имеет категориальное правдоподобие. РаспределениеДирихле – это нечто вроде многомерной версии бета-распределения, так что этологично. Вот плотность распределения вероятностей при распределении Дирихле (B-функция здесьаналогична B-функциив бета-распределении, так что явно видна прямая связь с бета-распределением):

Следующийэтап – объединение правдоподобия и априорной вероятности для определениявероятности апостериорной:

Ядам вам минуту для изучения всего этого.

Итак,мы можем объединить все θk ипереместить произведение по N под экспоненту:

Этодаст нам нечто вроде распределения Дирихле, причём новые αk – это старые αk плюс количествопоявлений k:

Как видите, это в точности похоже на подбрасывание многомерной монеты.

Упражнение. Многофакторное гауссово правдоподобие

Вэтой лекции мы разберём даже более сложный пример с априорными сопряжениями.

Иногдаизмеряется не бросок монеты или категориальная величина, а действительноечисло. Разумеется, гауссово распределение является самым распространённым длямоделирования действительных чисел, поэтому в данной лекции мы его и используемв качестве нашей функции правдоподобия. Вы можете сразу заметить в чём тутсложность: тогда как правдоподобия по Бернулли и Дирихле имеют лишь одинпараметр, у гауссового распределения их два – среднее значение и дисперсия.Поскольку двигаться мы будем понемногу, в этой лекции будет рассматриватьсясреднее значение, предположив, что дисперсия фиксирована. Позже мы обсудим рядпоследующих упражнений, которые вы можете выполнить, если поймёте это.

Начнёмс того, что мы вместо дисперсии будем использовать понятие точности. Точность –это всего лишь величина, обратная дисперсии

\lambda^{-1} = \sigma^2.

Работатьс ней несколько легче, чем напрямую с дисперсией. Если не верите, можетевыполнить аналогичное упражнение, но с дисперсией и сравнить. Итак, поставьтевидео на паузу, потратьте несколько минут и попробуйте найти правильноевыражение для априорной вероятности и решить его для апостериорной.

Итак,заглянув в таблицу априорных сопряжений (напомню, я обычно для этого пользуюсьВикипедией), можем увидеть, что априорным сопряжением для гауссовогоправдоподобия также является гауссово распределение. Обозначим для гауссовогоправдоподобия среднее значение через μи точность через τ, а в другомгауссовом распределении обозначим среднее значение через m и точность черезλ, причём параметры априорнойвероятности обозначим через m0 и λ0:

Обычноустанавливается, что m0 = 0, но мы егооставим в качестве переменной.

Итак,первый этап – умножение правдоподобия и априорной вероятности для полученияпропорциональности апостериорного значения:

Обычноустанавливается, что m0 = 0, но мы егооставим в качестве переменной.

Итак,первый этап – умножение правдоподобия и априорной вероятности для полученияпропорциональности апостериорного значения:

Наследующем этапе я отбросил некоторые константы, оставив лишь то, что находитсяв экспоненте, поскольку нас не интересует константа нормализации:

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

Очереднойэтап – приведение подобных членов относительно μ. Помните, что нас не интересует всё, что не связано с μ, поскольку оно включается в константунормализации:

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

Следующий этап – определить, какую форму уравнения мы ищем. Для апостериорной вероятности желательно, чтобы было:

Но если присмотреться, это ведь точно та самая форма, которую мы только что нашли:

Но если присмотреться, это ведь точно та самая форма, которую мы только что нашли:

Следовательно,следующим этапом будет приравнять и решить уравнение

Обратитевнимание, что член с точностью проще решить, но после него нужно решить член с m, поскольку онзависит от λ.

Итак,теперь у нас есть решение для нового m и новой λ,основанное на параметрах априорной вероятности и собранных данных. Уделитеминутку, чтобы понять, как мы пришли к такому ответу или поставьте видео напаузу и проделайте выкладки на бумаге.

Тутесть одно любопытное обстоятельство. Если мы посмотрим на точность, то увидим,что это точность для μ и линейновозрастает с N.Таким образом, когда N стремится к бесконечности, то и точность стремитсяк бесконечности. Далее, если мы взглянем на второй член с обоих сторон от m, то заметим,что числитель зависит от суммы xn, а знаменатель – от N. Ясно, что впределе, когда Nвелико, всё это сходится к среднему значению выборки X, которые, какмы знаем, в пределе равно μ.

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

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

Понравилась статья? Поделить с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: