MMD(Maximum Mean Discrepancy)和核函数

MMD

MMD(Maximum Mean Discrepancy)衡量的是:P(X) 与 P(Y) 这两个分布是否相同,其回答的是在某个函数空间 F 里,PQ 的期望差异能有多大:

MMD(F,P,Q)=supfF(ExP[f(x)]EyQ[f(y)])

找一类“判别函数” f,看是否存在某个 f 能明显区分 PQ。如果 P=Q,则所有 f 在计算出来的期望的差都约等于 0,即 MMD 约等于 0。

核函数

如果 F 太大(随便任何可测函数),上面的 sup 很难算。做法:让 F 变成 某个核对应的 Reproducing Kernel Hilbert Space(RKHS,再生核希尔伯特空间) 单位球:

F={fH:fH1}

RKHS(再生核希尔伯特空间):由一个核函数 k(x,y) 定义的函数空间。在这个空间中,每个函数可以通过 k(x,·) 的线性组合构成。

给定一个核函数,例如 RBF 核:

k(x,y)=e(xy)22σ2

令第二个变量 y=z,它变成一个关于 x 的函数:

kz(x):=k(x,z)

这些函数就是 RKHS 的“基础积木”。在 RKHS 中,一个函数 f(x) 可以写成:

f(x)=i=1mαik(x,xi)

也就是说:取若干个核函数 k(,xi),各乘以一个系数 αi,加起来就得到一个新函数 f(x)

此时,MMD 的计算变成:

MMD(H,P,Q)=μPμQH

其中:

μP:=ExP[φ(x)],μQ:=EyQ[φ(y)]
  • φ(x) 是核对应的特征映射(一般是高维甚至无限维)
  • μP,μQP, Q 在 RKHS 中的“均值向量”(mean embedding)

φ(x) 难以直接求得,但是可以换种形式写 MMD。给定核函数 k(x,y)=φ(x),φ(y),有:

MMD2(P,Q)=μPμQH2

可以展开成:

MMD2(P,Q)=Ex,xP[k(x,x)]+Ey,yQ[k(y,y)]2ExP,yQ[k(x,y)]

这是实际用得最多的形式:全都写成核期望,不用显式知道 φ

经验估计

样本:

  • x1,,xmP
  • y1,,ynQ
MMD^2=1m2i,jk(xi,xj)+1n2i,jk(yi,yj)2mni,jk(xi,yj)

可以看到,MMD 计算的复杂度是 O(n2)

MMD-RBF

RBF 核:

k(x,y)=exp(xy22σ2)

放进 MMD2 公式就是 MMD-RBF。RBF 是 characteristic kernel → MMD=0 等价于分布完全相同,所以它确实是“真正的距离”意义。

核函数的性质

不是任何函数都能当 kernel。kernel 必须是“高维向量的内积”。但不是任何函数都能表示成某个高维向量空间里的内积。

一个函数 k(x,y) 要成为 kernel,必须满足:它是对称的,并且对应的 Gram 矩阵永远是半正定的(PSD)。

对于矩阵 A,半正定表示(PSD, Positive Semi-Definite)对所有非零向量 x 都有:

xAx0,

正定(PD, Positive Definite)则表示对所有非零向量 x 都有:

xAx>0,

下面证明核函数的 Gram 矩阵一定是半正定的。设:

  • ϕ(xi)φ(x) 在高维空间中的向量
  • 把它们排成矩阵:
Φ=[ϕ(x1)ϕ(x2)ϕ(xn)]

那么 Gram 矩阵:

Kij=ϕ(xi),ϕ(xj)

就是

K=ΦΦ

对于任意的向量 c,我们有:

cKc=i,jcicjKij=i,jcicjϕ(xi),ϕ(xj)=iciϕ(xi), jcjϕ(xj)=iciϕ(xi)20