Машинное обучение для начинающих: интуитивная интерпретация математической концепции KL-дивергенции

машинное обучение искусственный интеллект GitHub NLP

выбран изthushv.com, Автор: Тушан Ганегедара, составлено Heart of the Machine.

Машинное обучение в настоящее время является одним из важнейших направлений развития технологий. Докторант Сиднейского университета Тушан Ганегедара начал серию постов в блоге, направленных на ознакомление новичков с некоторыми базовыми понятиями машинного обучения. Эта статья является первой в серии и знакомит с основными математическими понятиями и основными приложениями KL-дивергенции. Автор опубликовал соответствующий код на GitHub.

Код:GitHub.com/таким образом HV89/где…


Базовые концепты

Сначала давайте установим некоторые основные правила. Мы определим некоторые понятия, которые нам необходимо понять.

распределение

Распределение может относиться к разным вещам, таким как распределение данных или распределение вероятностей. Здесь мы имеем дело с вероятностными распределениями. Предполагая, что у вас есть две оси (т.е. X и Y), нарисованные на листе бумаги, я могу думать о распределении как о линии, которая проходит между двумя осями. где X представляет различные значения, которые вас интересуют, чтобы получить вероятность. Y представляет собой вероятность, которую вы получаете при наблюдении за значением по оси x. То есть у=р(х). На рисунке ниже представлена ​​визуализация распределения.

Это непрерывное распределение вероятностей. Например, мы можем рассматривать ось X как рост человека, а ось Y как вероятность найти человека с соответствующим ростом.

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


событие

Для дискретных распределений вероятностей событием является наблюдение за тем, что X принимает некоторое значение (скажем, X=1). Обозначим вероятность события X=1 как P(X=1). В непрерывном пространстве вы можете думать об этом как о диапазоне значений (например, 0,95


Назад к Дивергенция KL

Отсюда я буду использовать пример из этого сообщения в блоге:Woohoo. счет Байеса IE.com/blog/2017/5…. Это хорошее введение в KL Divergence, но я чувствую, что некоторые из сложных объяснений можно было бы объяснить более подробно. Хорошо, давайте двигаться дальше.


проблема, которую мы хотим решить

Основной вопрос, затронутый в приведенном выше сообщении в блоге, заключается в следующем: предположим, что мы группа ученых, проводящих исследования на бескрайних просторах космоса. Мы нашли несколько космических червей с разным количеством зубов. Теперь нам нужно отправить эту информацию обратно на Землю. Но отправка информации из космоса на Землю стоит дорого, поэтому нам нужно выражать эту информацию с помощью как можно меньшего количества данных. У нас есть хорошая идея: вместо того, чтобы отправлять одно значение, мы рисуем график, где ось X представляет количество различных наблюдаемых зубов (0,1,2...), а ось Y — количество космических червей. видно с x числом Вероятность зубов (т.е. количество червей с x зубами/общее количество червей). Таким образом, мы преобразуем наблюдения в распределения.

Отправка дистрибутива более эффективна, чем отправка информации о каждом черве. Но мы можем дополнительно сжать размер данных. Мы можем представить это распределение известным распределением (например, равномерным, биномиальным, нормальным). Например, если мы используем равномерное распределение для представления истинного распределения, нам нужно отправить только две части данных, чтобы восстановить истинные данные: равномерную вероятность и количество червей. Но как узнать, какое распределение лучше объясняет истинное распределение? Вот тут-то и появляется расхождение KL.

Интуитивное объяснение: расхождение KL — это мера того, насколько хорошо два распределения (скажем, две линии) подходят друг другу.


Немного изменим пример

Чтобы иметь возможность проверить правильность значений, давайте изменим значения вероятности, чтобы они были более удобными для человека (по сравнению со значениями в сообщении блога выше). Мы делаем следующие предположения: Предположим, что имеется 100 червей, статистические результаты количества червей с различным числом зубов следующие.

0 зубов: 2 (вероятность: p_0 = 0,02)

1 зуб: 3 (вероятность: p_1 = 0,03)

2 зуба: 5 (вероятность: p_2 = 0,05)

3 зуба: 14 (вероятность: p_3 = 0,14

4 зуба: 16 (вероятность: p_4 = 0,16)

5 зубов: 15 (вероятность: p_5 = 0,15)

6 зубов: 12 (вероятность: p_6 = 0,12)

7 зубов: 8 (вероятность: p_7 = 0,08)

8 зубов: 10 (вероятность: p_8 = 0,1)

9 зубов: 8 (вероятность: p_9 = 0,08)

10 зубов: 7 (вероятность: p_10 = 0,07)

Проведите быструю проверку на вменяемость! Убедитесь, что общее количество червей равно 100, а сумма вероятностей равна 1,0.

  • Общее количество червей = 2+3+5+14+16+15+12+8+10+8+7 = 100
  • Сумма вероятностей = 0,02+0,03+0,05+0,14+0,16+0,15+0,12+0,08+0,1+0,08+0,07 = 1,0

Результаты визуализации:

Попытка 1: Моделирование с равномерным распределением

Сначала мы моделируем это распределение, используя равномерное распределение. Равномерное распределение имеет только один параметр: равномерную вероятность, то есть вероятность того, что данное событие произойдет.

Равномерное распределение по сравнению с нашим истинным распределением:

Не обсуждая этот результат, давайте смоделируем истинное распределение с помощью другого распределения.


Попытка 2: Моделирование с биномиальным распределением

Возможно, вы рассчитали вероятность того, что монета выпадет орлом или решкой, что является вероятностью биномиального распределения. Мы можем распространить ту же концепцию на нашу проблему. Для монеты с двумя возможными выходами мы предполагаем, что вероятность того, что монета выпадет орлом, равна p, и сделано n попыток, тогда вероятность успеха k раз равна:

Интерпретация формулы

Вот значение каждого термина в биномиальном распределении. Первый член p^k. Мы хотим добиться успеха k раз, где вероятность единственного успеха равна p, тогда вероятность успеха k раз равна p^k. Также помните, что мы сделали n попыток. Следовательно, если число отказов равно n-k, соответствующая вероятность отказа равна (1-p). Таким образом, вероятность успеха k раз равна совместной вероятности

. Это еще не конец. Из n попыток k успехов будут распределены по-разному. Количество различных перестановок k элементов в пространстве числа n равно

Умножение всех этих членов дает биномиальную вероятность успеха k раз.


Среднее значение и дисперсия биномиального распределения

Мы также можем определить среднее значение и дисперсию биномиального распределения следующим образом:

среднее значение = np

дисперсия = np (1-p)

Что значит значит? Среднее значение — это ожидаемое (среднее) количество успешных попыток при выполнении n попыток. Если вероятность успеха для каждой попытки равна p, то мы можем сказать, что количество успешных попыток для n попыток равно np.

Что означает дисперсия? Он показывает, насколько истинное количество успешных попыток отличается от среднего. Чтобы понять дисперсию, предположим, что n = 1, тогда уравнение принимает вид «дисперсия = p (1-p)». Тогда при p=0,5 (вероятность того, что впереди и сзади одинакова), дисперсия наибольшая; когда p=1 или p=0 (можно получить только одно из переднего или заднего), дисперсия наименьшая. .


вернуться, чтобы продолжить моделирование

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


Со средним значением мы можем вычислить значение p:

среднее значение = np

5.44 = 10p

p = 0.544

Обратите внимание, что n здесь относится к максимальному количеству зубов, наблюдаемых у червяка. Вы можете спросить, почему мы не устанавливаем общее количество червей (т.е. 100) или общее количество событий (т.е. 11) равным n. Мы скоро увидим, почему. С помощью этих данных мы можем определить вероятность произвольного количества зубов следующим образом.

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

С точки зрения подбрасывания монеты, это что-то вроде:

Предположим, я подбрасываю монету 10 раз, какова вероятность увидеть k решек?

Формально мы можем вычислить вероятность для всех различных значений k

. где k — количество зубов, которые мы хотим наблюдать.

биномиальная вероятность положения номера зуба k (т.е. 0 зуб, 1 зуб...). Таким образом, результаты расчета следующие:

Сравнение между нашим истинным распределением и биномиальным распределением выглядит следующим образом:

Обобщить существующую ситуацию

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

  • Равномерное распределение - вероятность 0,0909
  • Биномиальное распределение - n=10, p=0,544, значения k между 0 и 10.

Давайте визуализируем эти три распределения в одном месте:

Как мы можем количественно определить, какое распределение лучше?

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

Вот тут-то и появляется расхождение KL. Дивергенция KL формально определяется как:

где q(x) — приблизительное распределение, а p(x) — истинное распределение, которое мы хотим сопоставить с q(x). Интуитивно это измеряет, насколько данное произвольное распределение отклоняется от истинного распределения. Если два распределения точно совпадают, то

, иначе оно должно быть между 0 и бесконечностью (inf). Чем меньше расхождение KL, тем лучше соответствие между истинным распределением и приблизительным распределением.


Интуитивная интерпретация дивергенции KL

Давайте посмотрим, что означают различные части расхождения KL. Первый взгляд

пункт. Что, если q(x_i) больше, чем p(x_i)? Тогда значение этого члена отрицательно, потому что логарифм значений меньше 1 отрицателен. С другой стороны, если q(x_i) всегда меньше, чем p(x_i), то значение термина положительно. Если p(x_i)=q(x_i), то значение этого элемента равно 0. Затем, чтобы сделать это значение ожидаемым, вы взвешиваете логарифмический член с помощью p(x_i). То есть совпадающие регионы с более высокой вероятностью p(x_i) более важны, чем совпадающие регионы с низкой вероятностью p(x_i).

Интуитивно понятно, что есть практическая ценность в приоритизации правильно совпадающих событий, которые имеют действительно высокую вероятность в приблизительном распределении. Математически это позволяет автоматически игнорировать области распределения, выходящие за пределы поддержки истинного распределения (поддержкой является полная длина оси X, используемая распределением). Кроме того, это позволяет избежать вычисления log(0), что может произойти, если вы попытаетесь вычислить этот логарифмический член, выходящий за пределы поддержки истинного распределения.


Рассчитать дивергенцию KL

Давайте вычислим расхождение KL между двумя приблизительными распределениями выше и истинным распределением. Сначала посмотрите на равномерное распределение:

Посмотрите еще раз на биномиальное распределение:

Играйте с KL Divergence

Теперь давайте поиграем с KL Divergence. Сначала мы рассмотрим, как меняется расхождение KL при изменении вероятности успеха бинарного распределения. К сожалению, мы не можем сделать то же самое с равномерным распределением, потому что вероятность равномерного распределения не меняется при фиксированном n.

Можно видеть, что расхождение KL быстро увеличивается по мере того, как мы удаляемся от нашего выбора (красная точка). На самом деле, если вы покажете вывод небольшого количества значений расхождения KL вокруг наших вариантов, вы увидите, что наши варианты имеют наименьшее расхождение KL в вероятности успеха.

Теперь давайте посмотрим

и

поведение. Как показано ниже:


Вроде есть участок

и

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


Похоже, наши вероятностные выборы тоже расположены очень близко

и

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


в заключении

Теперь у нас есть солидные результаты. Хотя равномерное распределение выглядит простым и менее информативным, а биномиальное распределение содержит более дифференцированную информацию, на самом деле равномерное распределение больше соответствует истинному распределению, чем биномиальное. Честно говоря, этот результат меня даже немного удивил. Потому что я ожидал, что биномиальное распределение лучше моделирует это истинное распределение. Поэтому этот эксперимент также может сказать нам: не доверяйте только своей интуиции!

Оригинальная ссылка:Woohoo.thus HV.com/machine- ааааа…