Я попытался реализовать численную оценку дивергенции Кульбака-Лейблера для двух выборок. Для отладки реализации возьмем образцы из двух нормальных распределений и .
Для простой оценки я сгенерировал две гистограммы и попытался численно аппроксимировать интеграл. Я застрял с обработкой тех частей гистограммы, где ячейки одной из гистограмм равны нулю, так что я либо заканчиваю делением на ноль, либо логарифмом нуля. Как мне решить эту проблему?
В моей голове возник вопрос: как точно вычислить KL-дивергенцию между двумя различными равномерными распределениями? Нужно ли ограничивать интеграл объединением поддержки обоих дистрибутивов?
Ответы:
Расходимость Кульбака-Лейблера определяется как так что для вычисления (оценки) этого по эмпирическим данным нам понадобятся, может быть, некоторые оценки функций плотности p ( x ) , q ( x ) . Таким образом, естественной отправной точкой может быть оценка плотности (а после этого просто численное интегрирование). Насколько хорошим или стабильным был бы такой метод, я не знаю.
Но сначала ваш второй вопрос, потом я вернусь к первому. Допустим, и q - однородные плотности на [ 0 , 1 ] и [ 0 , 10 ] соответственно. Тогда KL ( p | | q ) = log 10, в то время как KL ( q | | p ) определить сложнее, но единственное разумное значение, которое я могу дать, это ∞ , насколько я могу видеть, поскольку оно включает интегрирование log ( 1). /п Q [ 0 , 1 ] [ 0 , 10 ] KL( p | | q) = журнал10 KL( д| | р) ∞ которую мы можем интерпретировать как log ∞ . Эти результаты обоснованы из интерпретации, которую я даю в «Интуиции» о расхождении Кульбака-Лейблера (КЛ)журнал( 1 / 0 ) журнал∞
Возвращаясь к основному вопросу. Это задается очень непараметрическим способом, и не делается никаких предположений о плотности. Вероятно, необходимы некоторые предположения. Но если предположить, что две плотности предложены в качестве конкурирующих моделей для одного и того же явления, мы, вероятно, можем предположить, что они имеют одну и ту же доминирующую меру: расхождение KL между непрерывным и дискретным распределением вероятности всегда будет, например, бесконечностью. Один документ, посвященный этому вопросу, следующий: https://pdfs.semanticscholar.org/1fbd/31b690e078ce938f73f14462fceadc2748bf.pdf Они предлагают метод, который не требует предварительной оценки плотности, и анализируют его свойства.
(Есть много других работ). Я вернусь и опубликую некоторые детали из этой газеты, идеи.
Некоторые идеи из этой статьи, которые касаются оценки расходимости KL с помощью образцов из абсолютно непрерывных распределений. Я показываю их предложение для одномерных распределений, но они дают решение и для векторов (с использованием оценки плотности ближайших соседей). Для доказательства читайте газету!
Они предлагают использовать версию эмпирической функции распределения, но линейно интерполировать между точками выборки, чтобы получить непрерывную версию. Они определяют гдеU- шаговая функция Хевисайда, но определенная так, чтоU(0)=0,5. Тогда эта функция, интерполированная линейно (и вытянутая горизонтально за пределы диапазона), равнаPc(cдля непрерывного). Затем они предлагают оценить дивергенцию Кульбака-Либлер от D (Р| |Q)=1
R-код для версии эмпирической функции распределения, которая нам нужна
обратите внимание, что
rle
используется, чтобы заботиться о случае с дубликатами вx
.Тогда оценка дивергенции KL дается
Затем я покажу небольшую симуляцию:
которая дает следующую гистограмму, показывающую (оценку) выборочного распределения этой оценки:
Для сравнения мы вычислим расхождение KL в этом примере путем численного интегрирования:
хм ... разница настолько велика, что здесь есть, что исследовать!
источник
Если немного расширить ответ kjetil-b-halvorsen , и извините за отсутствие комментариев, у меня нет репутации:
LR <- function(x) dnorm(x,log=TRUE)-dt(x,5,log=TRUE) integrate(function(x) dnorm(x)*LR(x),lower=-Inf,upper=Inf)$value
После внесения этих двух поправок результаты кажутся более реалистичными.
источник