今天读论文遇到了用KL divergence来估计density ratio的方法,被原论文一笔带过,特意找来reference,感觉想法很不错,整理如下:
首先估计density ratio在许多方面有重要应用,比如change point detection, transfer learning等,以change point detection为例,主要目的在于检验相邻的两个状态是否发生重大变化,进而检测出发生变化的点。如果用random variable表示所在状态,那这时候,具体的density并不是特别需要,只要能比较相邻两个状态之间的变化差,就足够detect出哪个点发生变化了。而如果先分别估计两个状态的density,进而计算它们的ratio,那么可能会因为中间多估计了一个不必要的统计量,导致最后估计的ratio不准。
具体的formulation如下:
假设我们有一组 i.i.d. 的 reference sample ,以及另外一组i.i.d. 的training sample ,(原论文用了training set 以及 test set,但是此处这两个sets和传统机器学习中的set并不一样,所以暂且叫做reference sample,training sample以作区分)密度函数分别为及,其ratio记为:
. (1)
问题的目的为在不直接估计及的情况下估计。
常用的方法为,假设可以用以下的线性模型表示:
, (2)
为basis function,一般来讲Gaussian kernel function就可以,为要估的参数,b为自己决定的,可以依赖于sample。根据(1)可以得到
. (3)
作为的估计,我们当然希望二者越近越好,而二者的接近程度用KL divergence来刻画:
.
其中第二个等号右边第一项与要估的参数无关,所以要使KL divergence最小,只需要让最大即可。的empirical version可以写为:
.
目标函数中并不含有reference sample,但是reference sample并非无用,而是被用作constraint.
因为为density function,所以要满足
,
而根据(3),我们可以得到的empirical的形式,进而得出
.
所以最后要优化的函数为:
subject to and .
目标函数为凸函数,所以很容易求解出的值,代入(2)即可得出density ratio.
原文链接:
http://www.ms.k.u-tokyo.ac.jp/2008/KLIEP.pdf