Borgwardt K., Gretton A., Rasch M., Kriegel H., Schoikopf B., Smola A. Integrating structured biological data by Kernel Maximum Mean Discrepancy. 2006.

本文介绍了一种衡量不同数据分布之间一致性的统计量.

主要内容

在统计中, 我们常常需要讨论两组数据是否采样自同一个分布. 一个最常见的问题或许就是, 训练数据和测试数据的偏移, 本文的重点是提出MMD作为一个衡量二者是否采样自同一个数据的指标, 后续的KMM则是其用于处理这种偏移的一种方法.

定义

假设\(\mathcal{F}\)是一类\(f:\mathcal{X} \rightarrow \mathbb{R}\)的函数, 而\(p, q\)分别是两个博雷尔概率分布,即概率空间为\((\mathbb{R}^d, \mathscr{B}(\mathbb{R})^d, p|q)\) . 并令\(X=(x_1, x_2,\ldots, x_m), Y=(y_1, y_2,\ldots, y_n)\)分别独立采样自\(p, q\). 则MMD与经验MMD按照如下方式定义:

\[\mathrm{MMD}[\mathcal{F},p,q] := \sup_{f \in \mathcal{F}} (\mathbb{E}_p [f(x)] - \mathbb{E}_q[f(y)]) \\
\mathrm{MMD}[\mathcal{F},p,q] := \sup_{f \in \mathcal{F}} (\frac{1}{m} \sum_{x \in X} f(x) - \frac{1}{n} \sum_{y\in Y} f(y)). \\
\]

首先, 倘若\(p=q\), 那么显然\(\mathrm{MMD}[\mathcal{F}, p, q]=0\), 但是当\(p \not= q\)的时候, 我们总能找到一些\(f\)令MMD为正. 不过这一性质对于经验MMD就有所不同了, 由于采样个数有限, \(X, Y\)总会有一些不同, 所以这一指标往往永远不为0.

若是要估计上面的式子, 这是非常困难的, 而且某种程度上是没有意义的, 因为一旦找到一个\(f\)使得MMD非零, 我们可以去\(f':=\alpha \cdot f\)使得MMD任意大. 所以第一步便是要限制\(\mathcal{F}\), 很自然的方式是限制其在范数球上\(\|f\| \le 1\), 但这并没有改变困难的本质. 要知道\(p=q\)的一个充分必要条件是

\[\int f \mathrm{d} p = \int f \mathrm{d} q , \forall f \in C.
\]

而所有的连续函数都能由 universal RKHS (reproducing kernel Hilbert space)中的函数来逼近, 故我们完全可以将\(\mathcal{F}\)限制在这样一个空间之上.

MMD for kernel function classes

接下来我们在 universal RKHS \(\mathcal{H}\)上讨论, 该空间通过给定核\(k(\cdot, \cdot)\)来确定, 此时\(\phi_x=k(x, \cdot)\) . 当然你也可以说是先有的\(\phi\), 然后\(k(x, y)=\langle \phi_x, \phi_y \rangle\)也是可以的. 此时, 是假设对于任意的\(x \in \mathcal{X}\)存在\(L_x: f \rightarrow f(x)\), 且\(L_x\)是一个有界线性算子, 根据Riesz表示引理, \(L_x(f)=f(x) = \langle f, \phi_x \rangle_{\mathcal{H}}\), 其中\(\phi_x \in \mathcal{H}\).

回到由\(k(\cdot, \cdot)\)定义的\(\mathcal{H}\)中来, 此时的MMD可以便成了

\[\mathrm{MMD}[\mathcal{H}, p, q] = \sup_{\|f\|_{\mathcal{H}} \le 1} \mathbb{E}_p [f(x)] - \mathbb{E}_q [f(x)]
= \sup_{\|f\|_{\mathcal{H}} \le 1} \mathbb{E}_p [\langle \phi_x, f\rangle_{\mathcal{H}}] - \mathbb{E}_q [\langle \phi_x, f\rangle_{\mathcal{H}}] = \|\mu_p-\mu_q\|_{\mathcal{H}},
\]

其中\(\mu_p=\mathbb{E}_p [\phi_x], \mu_q = \mathbb{E}_q [\phi_x]\).

\(\mathrm{MMD}^2\) 一个无偏统计量

定义

\[\mathrm{MMD}^2 [\mathcal{H}, p, q] = \|\mu_p - \mu_q\|_{\mathcal{H}}^2, \\
\mathrm{MMD}^2 [\mathcal{H}, X, Y] = \frac{1}{m(m-1)}\sum_{i \not = j}k(x_i, x_j) + \frac{1}{n(n-1)}\sum_{i \not = j } k(y_i, y_j) - \frac{2}{mn} \sum_{i,j} k(x_i, y_j).
\]

容易证明\(\mathrm{MMD}^2[\mathcal{H}, X, Y]\)是\(MMD^2[\mathcal{H}, p, q]\)的一个无偏统计量.

当\(m=n\)的时候, 进一步有

\[\mathrm{MMD}^2[\mathcal{H}, X, Y]= \frac{1}{m(m-1)} \sum_{i \not =j} h(z_i, z_j),
\]

其中

\[h(z_i, z_j) := k(x_i, x_j)+ k(y_i, y_j) - k(x_i, y_j) - k(x_j, y_i).
\]

MMD test

通过上述推论便可知我们应该如何检验, 并且具体算法如下.

注: \(\mathrm{Pr}(z > z_{\alpha}) = \alpha \Rightarrow \mathrm{Pr}(-z_{\alpha}<z <z_{\alpha})=1-\alpha\), 又\(\mathrm{erf}(x) = \Phi(\sqrt{2}x) - \Phi(-\sqrt{2}x)\), 所以\(\mathrm{erfinv}(1-2\alpha) = \frac{1}{\sqrt{2}} z_{\alpha}\), 这是算法里那个式子的由来.

MMD的更多相关文章

  1. 【自制插件】将MMD4Mecanim转换的MMD模型导入maya

    这个已经废弃了_(:зゝ∠)_,另外做了升级版: http://www.cnblogs.com/marisa/p/5174150.html ============================== ...

  2. MMD日文乱码解决

    记录一下自己在学习MMD遇到的问题. 日文乱码是很常见的,因为很多MMD资源是日本的. 1.解压乱码 我以好压为例,其他解压软件也是可以通过设置解决的 设置

  3. 在写一点关于MySQL的知识,感觉自己mmd

    DBMS(Database Management System)数据库管理系统  包括有DDL(数据定义语言)和DML(数据操纵语言)以及DCL(数据库控制语言) 数据库设计方法: 1.需求分析阶段 ...

  4. 探索ASP.NET MVC5系列之~~~2.视图篇(上)---包含XSS防御和异步分部视图的处理

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  5. 从Maya中把模型搬运至网页的过程

    虽然利用threejs来在网页中渲染3d模型不是第一次折腾了,但是还是遇到了各种问题.总结下我所遇到的问题,希望能给正在使用threejs的小伙伴一个帮助. 一.所使用的软件与开发环境 Maya201 ...

  6. 在sql server中建存储过程,如果需要参数是一个可变集合怎么处理?

    在sql server中建存储过程,如果需要参数是一个可变集合的处理 原存储过程,@objectIds 为可变参数,比如 110,98,99 ALTER PROC [dbo].[Proc_totalS ...

  7. SparkStreaming实现Exactly-Once语义

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 译自:http://blog.cloudera.com/blog/2015/03/exactly ...

  8. lucene+IKAnalyzer实现中文纯文本检索系统

    首先IntelliJ IDEA中搭建Maven项目(web):spring+SpringMVC+Lucene+IKAnalyzer spring+SpringMVC搭建项目可以参考我的博客 整合Luc ...

  9. mysql提供dataprovider

    import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.Inpu ...

随机推荐

  1. accustom

    近/反义词: acclimatize, familiarize, habituate, inure, get used to, orient; alienate, estrange, wean New ...

  2. CentOS7 搭建maven私服Nexus

    下载解压 官网https://www.sonatype.com/download-oss-sonatype 下载页面 https://help.sonatype.com/repomanager2/do ...

  3. 【原创】Altium生成Gerber时跳出The Film is too small for this PCB的解决办法

    在用altium Designer画板子的时候,要生成gerber文件的时候,会出错,出现这样的提示框:"The Film is too small for this PCB" 原 ...

  4. SpringBoot-RestTemplate测试Controller

    1.功能测试类 package com.imooc.controller; import java.io.IOException; import java.math.BigDecimal; impor ...

  5. linux环境下安装jdk,tomcat

    一.安装tomcat 1.使用docker安装(你得linux服务器上已经安装了docker) 1)执行命令: docker search tomcat; 2)选择第一个镜像进行下载,执行命令:doc ...

  6. cookie,sessionStorage,loclaStorage,HTML5应用程序缓存

    cookie Cookie 是一些数据,由服务器生成,发送给浏览器,一旦用户从该网站或服务器退出,Cookie 就存储在用户本地的硬盘上,下一次请求同一网站时会把该cookie发送给服务器.Cooki ...

  7. thinkphp or查询

    $map['source'] = array(array('eq',0),array('eq',1), 'or'); $this->model->where($map)

  8. .NET内存性能分析宝典

    .NET Memory Performance Analysis 知道什么时候该担心,以及在需要担心的时候该怎么做 译者注 **作者信息:Maoni Stephens ** - 微软架构师,负责.NE ...

  9. 利用模块加载回调函数修改PE导入表实现注入

    最近整理PE文件相关代码的时候,想到如果能在PE刚刚读进内存的时候再去修改内存PE镜像,那不是比直接对PE文件进行操作隐秘多了么? PE文件在运行时会根据导入表来进行dll库的"动态链接&q ...

  10. FastJsonHttpMessageConverter请求中参数序列化问题排查

    问题 前几天帮忙其他部门的多个祖先级项目改造开发,服务间使用Feign方式调用,发现接口提供方接收到的请求,没有请求参数,经过排查发现服务调用方的FastJsonHttpMessageConverte ...