1. HSIC

博客链接:HSIC简介:一个有意思的判断相关性的思路

前几天,在机器之心看到这样的一个推送《彻底解决梯度爆炸问题,新方法不用反向传播也能训练ResNet》,当然,媒体的标题党作风我们暂且无视,主要看内容即可。机器之心的这篇文章,介绍的是论文《The HSIC Bottleneck: Deep Learning without Back-Propagation》的成果,里边提出了一种通过HSIC Bottleneck来训练神经网络的算法。

坦白说,这篇论文笔者还没有看明白,因为对笔者来说里边的新概念有点多了。不过论文中的“HSIC”这个概念引起了笔者的兴趣。经过学习,终于基本地理解了这个HSIC的含义和来龙去脉,于是就有了本文,试图给出HSIC的一个尽可能通俗(但可能不严谨)的理解。

背景

HSIC全称“ Hilbert-Schmidt independence criterion”,中文可以叫做“希尔伯特-施密特独立性指标”吧,跟互信息一样,它也可以用来衡量两个变量之间的独立性。

度量相关

我们知道,互信息的基本形式是:

I(X,Y)=∬p(x,y)log⁡p(x,y)p(x)p(y)dxdyI(X,Y)=\iint p(x,y)\log \frac{p(x, y)}{p(x)p(y)}dxdy I(X,Y)=∬p(x,y)logp(x)p(y)p(x,y)​dxdy如果I(X,Y)=0I(X,Y)=0I(X,Y)=0那么就说明p(x,y)≡p(x)p(y)p(x, y)\equiv p(x)p(y)p(x,y)≡p(x)p(y),也就是两个变量是相互独立的,否则是相关的。但log⁡p(x,y)p(x)p(y)\log \frac{p(x, y)}{p(x)p(y)}logp(x)p(y)p(x,y)​这一项意味着我们要用某种方式对概率密度进行估计。

HSIC的作用跟互信息类似,但是跟互信息不一样的是,它不需要估计两个变量的概率密度,而是直接转化为采样的形式。

长期关注本博客的读者都知道,“互信息”是本博客经常出现的概念,我们可以用互信息做新词发现(比如《基于切分的新词发现》),也可以用互信息做无监督学习(比如《深度学习的互信息:无监督提取特征》),互信息的重要性可见一斑。如果说有一个指标可以取代互信息、比互信息还方便,那肯定是笔者必须去学习的对象了。

问题定义

一般来说,我们将问题定义为:

有数据(x1,y1),(x2,y2),…,(xn,yn)∼p(x,y)(x_1, y_1),(x_2, y_2),\dots,(x_n,y_n)\sim p(x, y)(x1​,y1​),(x2​,y2​),…,(xn​,yn​)∼p(x,y),判断p(x,y)p(x, y)p(x,y)是否恒等于p(x),p(y)p(x), p(y)p(x),p(y),即 x,yx,yx,y 是否独立。

严格来讲,如果是对于连续变量,这里的“恒等于”指的是“几乎处处等于”,但我们这里不严格声明这一点。
为了描述的规范,这里设 x∈X,y∈Yx\in X, y\in Yx∈X,y∈Y,而 f(x),g(y)∈Rf(x),g(y)\in \mathbb{R}f(x),g(y)∈R。注意 x,yx,yx,y 可能是两个含义完全不一样的变量,比如 xxx 可能是“星期一”,yyy可能是“上班”,p(x,y)p(x,y)p(x,y)就是“今天是星期一,且今天要上班”的概率。鉴于此,X,YX,YX,Y可能是两个完全不一样的域。
基本的思路是去计算互信息,但很多问题中我们都无法很好地估计概率或概率密度。一种可能的方案是转化为对偶问题,用类似对抗的思路去学习互信息(infomax的思路),但这种方法可能会不稳定,而且受到采样方案的影响。最好的方案就是能有一个类似“相关系数”的指标,让我们可以显式地计算和优化这个指标。
HSIC就是冲着这个目标而来的~

HSIC

这里我们尽可能清晰地引入HSIC的概念。然而,“尽可能清晰”不等价于篇幅尽可能短,事实上,下面的篇幅依然会比较长,而且有不少数学公式,但是相对于标准教程里边一上来就引入希尔伯特空间、再生核、各种算子等做法,这里的介绍应该算是对很多不了解相关概念的读者来说都是友好的了。

基本思想

HSIC留意到:

p(x,y)≡p(x)p(y)p(x, y)\equiv p(x)p(y)p(x,y)≡p(x)p(y) 当且仅当对于任意的 f,gf,gf,g,式
C[f,g]=∬p(x,y)f(x)g(y)dxdy−∬p(x)p(y)f(x)g(y)dxdy=E(x,y)∼p(x,y)[f(x)g(y)]−Ex∼p(x)[f(x)]Ey∼p(y)[g(y)]\begin{aligned}C[f,g]=&\iint p(x,y)f(x)g(y)dxdy - \iint p(x)p(y)f(x)g(y)dxdy\\ =&\ \mathbb{E}_{(x,y)\sim p(x,y)}[f(x)g(y)]-\mathbb{E}_{x\sim p(x)}[f(x)]\mathbb{E}_{y\sim p(y)}[g(y)]\end{aligned}C[f,g]==​∬p(x,y)f(x)g(y)dxdy−∬p(x)p(y)f(x)g(y)dxdy E(x,y)∼p(x,y)​[f(x)g(y)]−Ex∼p(x)​[f(x)]Ey∼p(y)​[g(y)]​都等于0。

这个结论显然不难理解。有意思的是,等号右边是采样的形式,也就是说我们将这个指标转化为了采样的形式,避免了直接估算概率密度。
所以,我们就有一个判断独立性的方法:选取“足够多”的 f,gf,gf,g,然后计算:
LH=∑f,g(C[f,g])2L_H=\sum_{f,g} \big(C[f,g]\big)^2LH​=f,g∑​(C[f,g])2看 LHL_HLH​ 与 0 的接近程度;反过来,如果在优化问题中,我们希望特征 x,yx,yx,y 尽可能相互独立,那么我们就可以将 LHL_HLH​ 加入到损失函数中。

抽丝剥茧

其实 LHL_HLH​ 的形式已经很好地体现了HSIC的判别思想。下面我们就沿着这个思路,继续抽丝剥茧,逐步地走向HSIC最终的形式。
首先我们把(C[f,g])2\big(C[f,g]\big)^2(C[f,g])2算一算:

HSIC(X,Y)=(C[f,g])2=(E(x,y)∼p(x,y)[f(x)g(y)])2+(Ex∼p(x)[f(x)])2(Ey∼p(y)[g(y)])2−2(E(x,y)∼p(x,y)[f(x)g(y)])(Ex∼p(x)[f(x)])(Ey∼p(y)[g(y)])\begin{aligned}HSIC(X,Y) = \big(C[f,g]\big)^2=&\big(\mathbb{E}_{(x,y)\sim p(x,y)}[f(x)g(y)]\big)^2 + \big(\mathbb{E}_{x\sim p(x)}[f(x)]\big)^2 \big(\mathbb{E}_{y\sim p(y)}[g(y)]\big)^2\\ & - 2\big(\mathbb{E}_{(x,y)\sim p(x,y)}[f(x)g(y)]\big)\big(\mathbb{E}_{x\sim p(x)}[f(x)]\big)\big(\mathbb{E}_{y\sim p(y)}[g(y)]\big)\end{aligned}HSIC(X,Y)=(C[f,g])2=​(E(x,y)∼p(x,y)​[f(x)g(y)])2+(Ex∼p(x)​[f(x)])2(Ey∼p(y)​[g(y)])2−2(E(x,y)∼p(x,y)​[f(x)g(y)])(Ex∼p(x)​[f(x)])(Ey∼p(y)​[g(y)])​

然后我们用一个技巧:我们知道 Ex∼p(x)[f(x)]=Ex′∼p(x′)[f(x′)]\mathbb{E}_{x\sim p(x)}[f(x)]=\mathbb{E}_{x'\sim p(x')}[f(x')]Ex∼p(x)​[f(x)]=Ex′∼p(x′)​[f(x′)],说明了这个期望值的结果跟随机变量的记号没啥关系。所以我们有
(Ex∼p(x)[f(x)])2=(Ex1∼p(x)[f(x1)])(Ex2∼p(x)[f(x2)])=Ex1∼p(x),x2∼p(x)[f(x1)f(x2)]\begin{aligned}\big(\mathbb{E}_{x\sim p(x)}[f(x)]\big)^2=&\big(\mathbb{E}_{x_1\sim p(x)}[f(x_1)]\big)\big(\mathbb{E}_{x_2\sim p(x)}[f(x_2)]\big)\\ =&\ \mathbb{E}_{x_1\sim p(x),x_2\sim p(x)}[f(x_1)f(x_2)]\end{aligned}(Ex∼p(x)​[f(x)])2==​(Ex1​∼p(x)​[f(x1​)])(Ex2​∼p(x)​[f(x2​)]) Ex1​∼p(x),x2​∼p(x)​[f(x1​)f(x2​)]​

把其余的项都这样变换,最终我们就可以得到
(C[f,g])2=E(x1,y1)∼p(x,y),(x2,y2)∼p(x,y)[f(x1)f(x2)g(y1)g(y2)]+Ex1∼p(x),x2∼p(x),y1∼p(y),y2∼p(y)[f(x1)f(x2)g(y1)g(y2)]−2E(x1,y1)∼p(x,y),x2∼p(x),y2∼p(y)[f(x1)f(x2)g(y1)g(y2)]\begin{aligned}\big(C[f,g]\big)^2=&\ \mathbb{E}_{(x_1,y_1)\sim p(x,y),(x_2,y_2)\sim p(x,y)}[f(x_1)f(x_2)g(y_1)g(y_2)] \\ & + \mathbb{E}_{x_1\sim p(x),x_2\sim p(x),y_1\sim p(y),y_2\sim p(y)}[f(x_1)f(x_2)g(y_1)g(y_2)]\\ & - 2 \mathbb{E}_{(x_1,y_1)\sim p(x,y),x_2\sim p(x),y_2\sim p(y)}[f(x_1)f(x_2)g(y_1)g(y_2)]\end{aligned}(C[f,g])2=​ E(x1​,y1​)∼p(x,y),(x2​,y2​)∼p(x,y)​[f(x1​)f(x2​)g(y1​)g(y2​)]+Ex1​∼p(x),x2​∼p(x),y1​∼p(y),y2​∼p(y)​[f(x1​)f(x2​)g(y1​)g(y2​)]−2E(x1​,y1​)∼p(x,y),x2​∼p(x),y2​∼p(y)​[f(x1​)f(x2​)g(y1​)g(y2​)]​这样一来,每一项都是f(x1)f(x2)g(x1)g(x2)f(x_1)f(x_2)g(x_1)g(x_2)f(x1​)f(x2​)g(x1​)g(x2​)的期望,只不过变量的采样分布不一样。

特征函数

现在的问题是:要选择哪些 f,gf,gf,g 呢?怎样才算“足够多”呢?
类比向量空间的知识,所有可能的 f(x)f(x)f(x) 能组成一个向量空间 F\mathcal{F}F,所有的 g(y)g(y)g(y) 也一样组成一个向量空间 G\mathcal{G}G。如果能把这两个空间的所有“基底”都遍历一遍,那肯定就够了。那问题就是:如何找到所有的基底呢?
这时候“核函数”就登场了。所谓核函数,那就是——呃,其实说起来很复杂,我也不大懂。简单来说,核函数是类似于线性代数中“正定矩阵”的存在,就是一个定义在 X×XX\times XX×X 的二元对称函数K(x1,x2)=K(x2,x1)K(x_1, x_2)=K(x_2, x_1)K(x1​,x2​)=K(x2​,x1​),然后我们把一元函数 f(x)f(x)f(x) 类比为一个向量,那么
∫K(x1,x2)f(x2)dx2\int K(x_1,x_2) f(x_2)dx_2∫K(x1​,x2​)f(x2​)dx2​就相当于一个矩阵乘以向量的矩阵运算。跟矩阵的特征值和特征向量一样,核函数也能定义特征值和特征函数,满足下述恒等式的一元函数 ψ\psiψ 就称为这个核函数的特征函数:
∫K(x1,x2)ψ(x2)dx2=αψ(x1)\int K(x_1,x_2) \psi(x_2)dx_2=\alpha \psi(x_1)∫K(x1​,x2​)ψ(x2​)dx2​=αψ(x1​)上面的内容都是铺垫的,其严格定义则是属于“再生核希尔伯特空间“范畴。后面我们用到的,实际上是两点性质:

1、核函数的所有特征函数 ψ1,ψ2,…\psi_1,\psi_2,\dotsψ1​,ψ2​,… 构成该空间的一组正交基;
2、核函数的所有特征值 α1,α2,…\alpha_1,\alpha_2,\dotsα1​,α2​,… 都是正的,且满足
K(x1,x2)=∑iαiψi(x1)ψi(x2)K(x_1,x_2)=\sum_i \alpha_i \psi_i(x_1)\psi_i(x_2)K(x1​,x2​)=i∑​αi​ψi​(x1​)ψi​(x2​)

HSIC登场

经过上述铺垫,HSIC基本上就可以登场了~
首先,假如我们已经有定义在 X×XX\times XX×X 的核函数 KX(x1,x2)K_X(x_1,x_2)KX​(x1​,x2​),那么我们就可以算出KX(x1,x2)K_X(x_1,x_2)KX​(x1​,x2​) 对应的特征值 α1,α2,…\alpha_1,\alpha_2,\dotsα1​,α2​,… 和特征函数 ψ1,ψ2,…\psi_1,\psi_2,\dotsψ1​,ψ2​,…;同样地,有了定义在 Y×YY\times YY×Y 的核函数 KY(y1,y2)K_Y(y_1,y_2)KY​(y1​,y2​) 后,也可以算出 KY(y1,y2)K_Y(y_1,y_2)KY​(y1​,y2​) 对应的特征值 β1,β2,…\beta_1,\beta_2,\dotsβ1​,β2​,… 和特征函数 ϕ1,ϕ2,…\phi_1,\phi_2,\dotsϕ1​,ϕ2​,…。
然后,因为特征函数构成了基底,所以我们可以把 f,gf,gf,g 换成对应特征函数 ψi,ϕj\psi_i,\phi_jψi​,ϕj​
LH=∑i,j(C[ψi,ϕj])2L_H=\sum_{i,j}\big(C[\psi_i, \phi_j]\big)^2LH​=i,j∑​(C[ψi​,ϕj​])2
因为所有的特征值都是正的,所以我们还可以用特征值为权重进行加权求和,而不改变LHL_HLH​的作用:
LH=∑i,jαiβj⋅(C[ψi,ϕj])2L_H=\sum_{i,j}\alpha_i \beta_j\cdot\big(C[\psi_i, \phi_j]\big)^2LH​=i,j∑​αi​βj​⋅(C[ψi​,ϕj​])2
现在我们代入到上面去,就得到
LH=E(x1,y1)∼p(x,y),(x2,y2)∼p(x,y)[∑i,jαiβjψi(x1)ψi(x2)ϕj(y1)ϕj(y2)]+Ex1∼p(x),x2∼p(x),y1∼p(y),y2∼p(y)[∑i,jαiβjψi(x1)ψi(x2)ϕj(y1)ϕj(y2)]−2E(x1,y1)∼p(x,y),x2∼p(x),y2∼p(y)[∑i,jαiβjψi(x1)ψi(x2)ϕj(y1)ϕj(y2)]\begin{aligned}L_H=&\mathbb{E}_{(x_1,y_1)\sim p(x,y),(x_2,y_2)\sim p(x,y)}\left[\sum_{i,j}\alpha_i \beta_j\psi_i(x_1)\psi_i(x_2)\phi_j(y_1)\phi_j(y_2)\right] \\ & + \mathbb{E}_{x_1\sim p(x),x_2\sim p(x),y_1\sim p(y),y_2\sim p(y)}\left[\sum_{i,j}\alpha_i \beta_j\psi_i(x_1)\psi_i(x_2)\phi_j(y_1)\phi_j(y_2)\right]\\ & - 2 \mathbb{E}_{(x_1,y_1)\sim p(x,y),x_2\sim p(x),y_2\sim p(y)}\left[\sum_{i,j}\alpha_i \beta_j\psi_i(x_1)\psi_i(x_2)\phi_j(y_1)\phi_j(y_2)\right] \end{aligned}LH​=​E(x1​,y1​)∼p(x,y),(x2​,y2​)∼p(x,y)​[i,j∑​αi​βj​ψi​(x1​)ψi​(x2​)ϕj​(y1​)ϕj​(y2​)]+Ex1​∼p(x),x2​∼p(x),y1​∼p(y),y2​∼p(y)​[i,j∑​αi​βj​ψi​(x1​)ψi​(x2​)ϕj​(y1​)ϕj​(y2​)]−2E(x1​,y1​)∼p(x,y),x2​∼p(x),y2​∼p(y)​[i,j∑​αi​βj​ψi​(x1​)ψi​(x2​)ϕj​(y1​)ϕj​(y2​)]​
最后,方括号里边的实际上就是KX(x1,x2)KY(y1,y2)K_X(x_1,x_2)K_Y(y_1,y_2)KX​(x1​,x2​)KY​(y1​,y2​),于是,HSIC就登场了:
HSIC(X,Y)=E(x1,y1)∼p(x,y),(x2,y2)∼p(x,y)[KX(x1,x2)KY(y1,y2)]+Ex1∼p(x),x2∼p(x),y1∼p(y),y2∼p(y)[KX(x1,x2)KY(y1,y2)]−2E(x1,y1)∼p(x,y),x2∼p(x),y2∼p(y)[KX(x1,x2)KY(y1,y2)]\begin{aligned}HSIC(X,Y)=&\ \mathbb{E}_{(x_1,y_1)\sim p(x,y),(x_2,y_2)\sim p(x,y)}\left[K_X(x_1,x_2)K_Y(y_1,y_2)\right] \\ & + \mathbb{E}_{x_1\sim p(x),x_2\sim p(x),y_1\sim p(y),y_2\sim p(y)}\left[K_X(x_1,x_2)K_Y(y_1,y_2)\right]\\ & - 2 \mathbb{E}_{(x_1,y_1)\sim p(x,y),x_2\sim p(x),y_2\sim p(y)}\left[K_X(x_1,x_2)K_Y(y_1,y_2)\right]\end{aligned}HSIC(X,Y)=​ E(x1​,y1​)∼p(x,y),(x2​,y2​)∼p(x,y)​[KX​(x1​,x2​)KY​(y1​,y2​)]+Ex1​∼p(x),x2​∼p(x),y1​∼p(y),y2​∼p(y)​[KX​(x1​,x2​)KY​(y1​,y2​)]−2E(x1​,y1​)∼p(x,y),x2​∼p(x),y2​∼p(y)​[KX​(x1​,x2​)KY​(y1​,y2​)]​
这就是我们最重要寻找的度量相关性的指标,它纯粹是采样的形式,而且 KX,KYK_X,K_YKX​,KY​ 都是事先给定的、通常是可微的,因此这就是一个可以明确采样计算、可以直接优化的指标!

在实际计算中,我们可选的核函数有很多,比较常用的是
K(x1,x2)=exp⁡(−∥x1−x2∥22σ2)K(x_1, x_2) = \exp\left(-\frac{\Vert x_1 - x_2\Vert_2^2}{\sigma^2}\right)K(x1​,x2​)=exp(−σ2∥x1​−x2​∥22​​)其中 σ>0\sigma > 0σ>0 是一个常数,本文开头提到的论文《The HSIC Bottleneck: Deep Learning without Back-Propagation》也是用这个核函数。不同的核函数效果有点不一样,但是都能保证HSIC(X,Y)=0⇔p(x,y)≡p(x)p(y)HSIC(X,Y)=0 \Leftrightarrow p(x,y)\equiv p(x)p(y)HSIC(X,Y)=0⇔p(x,y)≡p(x)p(y)。

矩阵形式

最后,我们来推导一下在有限样本下的矩阵形式。

按照采样求期望的思想,E(x1,y1)∼p(x,y)\mathbb{E}_{(x_1,y_1)\sim p(x,y)}E(x1​,y1​)∼p(x,y)​ 实际上就是对所有的样本对(xi,yi)(x_i,y_i)(xi​,yi​)的结果求平均,而 E(x1,y1)∼p(x,y),(x2,y2)∼p(x,y)\mathbb{E}_{(x_1,y_1)\sim p(x,y),(x_2,y_2)\sim p(x,y)}E(x1​,y1​)∼p(x,y),(x2​,y2​)∼p(x,y)​ 其实就是将这个平均操作做两次,所以:
E(x1,y1)∼p(x,y),(x2,y2)∼p(x,y)[KX(x1,x2)KY(y1,y2)]=1n2∑i=1β∑j=1β[KX(xi,xj)KY(yi,yj)]\mathbb{E}_{(x_1,y_1)\sim p(x,y),(x_2,y_2)\sim p(x,y)}\left[K_X(x_1,x_2)K_Y(y_1,y_2)\right]=\frac{1}{n^2}\sum_{i=1}^\beta \sum_{j=1}^\beta \left[K_X(x_i,x_j)K_Y(y_i,y_j)\right]E(x1​,y1​)∼p(x,y),(x2​,y2​)∼p(x,y)​[KX​(x1​,x2​)KY​(y1​,y2​)]=n21​i=1∑β​j=1∑β​[KX​(xi​,xj​)KY​(yi​,yj​)]其中 KX(xi,xj),KY(yi,yj)K_X(x_i,x_j),K_Y(y_i,y_j)KX​(xi​,xj​),KY​(yi​,yj​) 实际上都是 β×β\beta\times \betaβ×β 的对称矩阵中 iii 行 jjj 列的元素,分别记为 KX,yK_X,_yKX​,y​,那么上述运算可以写成矩阵乘法 1β2Tr(KXKY)\frac{1}{\beta^2}\text{Tr}(K_X K_Y)β21​Tr(KX​KY​),其中 Tr\text{Tr}Tr 表示矩阵的迹。基于同样的思想,第二项实际上就是 “KXK_XKX​ 所有元素的平均乘以 KYK_YKY​ 所有元素的平均”,如果非要写成矩阵形式的话,那就是 1β4Tr(KX1KY1)\frac{1}{\beta^4}\text{Tr}(K_X \boldsymbol{1}K_Y \boldsymbol{1})β41​Tr(KX​1KY​1),其中加粗的 1\boldsymbol{1}1 表示大小为 β×β\beta\times \betaβ×β 的全1矩阵。相应地,最后一项是“KXKYK_X K_YKX​KY​ 所有元素平均值的 1/β1/\beta1/β 的两倍”,即 2β3Tr(KXKY1)\frac{2}{\beta^3}\text{Tr}(K_X K_Y \boldsymbol{1})β32​Tr(KX​KY​1)。

所以,如果用矩阵形式表示HSIC,那就是
HSIC(X,Y)=1β2Tr(KXKY)+1β4Tr(KX1KY1)−2β3Tr(KXKY1)=1β2Tr(KXKY+KX1βKY1β−2KXKY1β)=1β2Tr(KXJKYJ)\begin{aligned}HSIC(X,Y)&=\frac{1}{\beta^2}\text{Tr}(K_X K_Y)+\frac{1}{\beta^4}\text{Tr}(K_X \boldsymbol{1}K_Y \boldsymbol{1})-\frac{2}{\beta^3}\text{Tr}(K_X K_Y \boldsymbol{1})\\ &= \frac{1}{\beta^2}\text{Tr}(K_XK_Y + K_X \boldsymbol{\frac{1}{\beta}}K_Y \boldsymbol{\frac{1}{\beta}} - 2K_XK_Y\boldsymbol{\frac{1}{\beta}})\\ &=\frac{1}{\beta^2}\text{Tr}(K_X J K_Y J) \end{aligned}HSIC(X,Y)​=β21​Tr(KX​KY​)+β41​Tr(KX​1KY​1)−β32​Tr(KX​KY​1)=β21​Tr(KX​KY​+KX​β1​KY​β1​−2KX​KY​β1​)=β21​Tr(KX​JKY​J)​其中 J=I−1/βJ = \boldsymbol{I} -\boldsymbol{1/\beta}J=I−1/β
无偏估计为:
HSIC(X,Y)=1(β−1)2Tr(KXJKYJ)\begin{aligned}HSIC(X,Y)&=\frac{1}{(\beta-1)^2}\text{Tr}(K_X J K_Y J) \end{aligned}HSIC(X,Y)​=(β−1)21​Tr(KX​JKY​J)​


2. MMD (Maximum Mean Discrepancy)

MMD 的含义为 ppp、qqq 两个概率分布的差距。令 F\mathscr{F}F 为由 f:X→Rf : X → \mathbb{R}f:X→R 组成的一类函数。p,qp, qp,q 是两个概率分布,X,YX, YX,Y 是 从 p,qp, qp,q 采样得到的样本的集合。定义:
MMD(F,p,q)=sup⁡f∈F∣Ex∼p[f(x)]−Ey∼q[f(y)]∣MMD(\mathscr{F}, p, q)=\sup_{f\in\mathscr{F}}|E_{x\sim p}[f(x)] - E_{y\sim q}[f(y)]|MMD(F,p,q)=f∈Fsup​∣Ex∼p​[f(x)]−Ey∼q​[f(y)]∣

设 x,yx, yx,y 投射到 F\mathscr{F}F 上的值的均值元素分别为:
⟨μx,f⟩F:=Ex[⟨ϕ(x),f⟩F]=Ex[f(x)]⟨μy,f⟩F:=Ey[⟨ϕ(y),f⟩F]=Ey[f(y)]\left\langle\mu_{x}, f\right\rangle_{\mathcal{F}}:=\mathbf{E}_{x}\left[\langle\phi(x), f\rangle_{\mathcal{F}}\right] =\mathbf{E}_{x}[f(x)] \\ \left\langle\mu_{y}, f\right\rangle_{\mathcal{F}}:=\mathbf{E}_{y}\left[\langle\phi(y), f\rangle_{\mathcal{F}}\right] =\mathbf{E}_{y}[f(y)] ⟨μx​,f⟩F​:=Ex​[⟨ϕ(x),f⟩F​]=Ex​[f(x)]⟨μy​,f⟩F​:=Ey​[⟨ϕ(y),f⟩F​]=Ey​[f(y)]此外:
∥μx∥F2=Ex,x′[⟨ϕ(x),ϕ(x′)⟩F]=Ex,x′[k(x,x′)]\left\|\mu_{x}\right\|_{\mathcal{F}}^{2}=\mathbf{E}_{x, x^{\prime}}\left[\left\langle\phi(x), \phi\left(x^{\prime}\right)\right\rangle_{\mathcal{F}}\right]=\mathbf{E}_{x, x^{\prime}}\left[k\left(x, x^{\prime}\right)\right] ∥μx​∥F2​=Ex,x′​[⟨ϕ(x),ϕ(x′)⟩F​]=Ex,x′​[k(x,x′)]其中,xxx 和 x′x'x′ 是取自分布 pxp_xpx​ 的独立副本。

则:
MMD2(F,p,q)={sup⁡f∈F∣Ex∼p[f(x)]−Ey∼q[f(y)]∣}2={sup⁡f∈F∣<μx−μy,f>F∣}2=∣∣μx−μy∣∣2=<μp,μp>F+<μq,μq>F−2<μp,μq>F=Ex,x′<ϕ(x),ϕ(x′)>F+Ey,y′<ϕ(y),ϕ(y′)>F−2Ex,y<ϕ(x),ϕ(y)>F=Ex,x′k(x,x′)+Ey,y′k(y,y′)−2Ex,yk(x,y)\begin{aligned} MMD^2(\mathscr{F}, p, q) &=\{\sup_{f\in\mathscr{F}}| E_{x\sim p}[f(x)] - E_{y\sim q}[f(y)]|\}^2 \\ &=\{\sup_{f\in\mathscr{F}}| <\mu_x-\mu_y, f>_\mathscr{F}|\}^2\\ &=||\mu_x-\mu_y||^2 \\ &=<\mu_{p}, \mu_{p}>_{\mathscr{F}}+<\mu_{q}, \mu_{q}>_{\mathscr{F}}-2<\mu_{p}, \mu_{q}>_{\mathscr{F}} \\ &=E_{x, x^{\prime}}<\phi(x), \phi\left(x^{\prime}\right)>_{\mathscr{F}}+E_{y, y^{\prime}}<\phi(y), \phi\left(y^{\prime}\right)>_{\mathscr{F}} \\ &\ \ \ \ -2 E_{x, y}<\phi(x), \phi(y)>_{\mathscr{F}} \\ &=E_{x, x^{\prime}} k\left(x, x^{\prime}\right)+E_{y, y^{\prime}} k\left(y, y^{\prime}\right)-2 E_{x, y} k(x, y) \end{aligned} MMD2(F,p,q)​={f∈Fsup​∣Ex∼p​[f(x)]−Ey∼q​[f(y)]∣}2={f∈Fsup​∣<μx​−μy​,f>F​∣}2=∣∣μx​−μy​∣∣2=<μp​,μp​>F​+<μq​,μq​>F​−2<μp​,μq​>F​=Ex,x′​<ϕ(x),ϕ(x′)>F​+Ey,y′​<ϕ(y),ϕ(y′)>F​    −2Ex,y​<ϕ(x),ϕ(y)>F​=Ex,x′​k(x,x′)+Ey,y′​k(y,y′)−2Ex,y​k(x,y)​

MMD 的无偏估计计算公式为:

MMD2[F,p,q]=1m(m−1)∑i=1m∑j≠imk(xi,xj)+1n(n−1)∑i=1n∑j≠ink(yi,yj)−2mn∑i=1m∑j=1nk(xi,yj)\begin{aligned} M M D^{2}[\mathscr{F}, p, q] &=\frac{1}{m(m-1)} \sum_{i=1}^{m} \sum_{j \neq i}^{m} k\left(x_{i}, x_{j}\right)+\frac{1}{n(n-1)} \sum_{i=1}^{n} \sum_{j \neq i}^{n} k\left(y_{i}, y_{j}\right) \\ &-\frac{2}{m n} \sum_{i=1}^{m} \sum_{j=1}^{n} k\left(x_{i}, y_{j}\right) \end{aligned} MMD2[F,p,q]​=m(m−1)1​i=1∑m​j​=i∑m​k(xi​,xj​)+n(n−1)1​i=1∑n​j​=i∑n​k(yi​,yj​)−mn2​i=1∑m​j=1∑n​k(xi​,yj​)​

HSIC and MMD相关推荐

  1. MMD的unity导入插件

    2019独角兽企业重金招聘Python工程师标准>>> 存在一个mmd模型的unity导入插件: 导入了mmd的物理,将模型每个部位通过 custom的joint进行连接,设定物理属 ...

  2. unity 批量导入模型工具_如何将VMD舞蹈导入桌面萌娘MMD

    [视频教程] https://www.zhihu.com/video/1246107348335976448 图文教程 概览 MMD的动作数据文件 .VMD 文件导入到DesktopMMD很简单,只需 ...

  3. HSIC简介:一个有意思的判断相关性的思路

    作者丨苏剑林 单位丨追一科技 研究方向丨NLP,神经网络 个人主页丨kexue.fm 前段时间在机器之心看到这样的一个推送彻底解决梯度爆炸问题,新方法不用反向传播也能训练 ResNet,当然,媒体的标 ...

  4. c4d导出obj格式有破面_适合折腾MMD的C4D常用插件及本体合集

    分享一下自己以前折腾MMD用到的C4D软件和相关插件,内容比较小众,对于其他C4D使用者来说,就当做当做开拓眼界吧. 软件本体:C4D R18 目前,R18版本是一个比较稳定的版本,R19以及R20因 ...

  5. Maximum Mean Discrepancy理解(MMD)

    https://blog.csdn.net/tunhuzhuang1836/article/details/78058184 MMD理解 1.定义 MMD:maximum mean discrepan ...

  6. MMD导入unity中使用

    使用mmd4mecanim插件 链接 MMD素材网站 BowlRoll

  7. 【MMD动作+镜头下载】Chocolate Train

    下载:https://go.ysboke.cn/archives/1013 ■モーションデータ このモーションは.第13回MMD杯参加作品 「チョコレート・トレイン」 で使用した.モーションデータの詰 ...

  8. blender导入mmd的pmx模型进行额外建模后,导出pmx模型,出现材质缺失问题的解决方法

    pmx的材质导出不能以一般fbx模型的形式设置,在材质属性里,有个mmd纹理设置. 在纹理路径这,选择你的贴图/纹理的路径地址. 其他设置,可以参考原mmd模型的设置(这个球体纹理我不知道有什么用,因 ...

  9. 使用blender和mmd模型进行3D辅助绘图

    本文为一个简易的索引贴,零基础通过mmd模型,使用blender凹造型打光,所需要的教程合集 1 blender安装和基本使用 可以看V大的教程, https://mp.weixin.qq.com/s ...

最新文章

  1. java object转int_Java字节码文件解析
  2. 独家 | 从零开始用python搭建推荐引擎(附代码)
  3. 500 服务器内部错误
  4. sql 语句 查询两个字段都相同的方法
  5. 技术除了工作,还有什么可以提升的?
  6. Prima Cartoonizer中文版
  7. [转]ASP.Net缓存总结
  8. 【Chrome浏览器】常用快捷键整理
  9. 08年冬季足协代表VS三水喜健友谊赛
  10. 数据结构面试常见问题总结
  11. Linux - Kafka集群搭建
  12. ios 纯代码怎么适配ipad_程序员或可在iPad上编程 苹果可能正在适配iPad版Xcode
  13. UE4编辑器ToolBar扩展
  14. matlabsvd提取特征值_matlab特征值分解和奇异值分解
  15. 计算机计算资产分析表,财务指标计算器.xls
  16. 将Flutter添加到现有应用——过程中遇到的问题
  17. NMS(非极大值抑制)代码构建与详解
  18. 超实数系统的单子(Monad)结构
  19. web前端学习34(表格标签 小说排行榜案例)
  20. Windows下生成 MD5 文件校验和的方法

热门文章

  1. MySql中的行锁,表锁
  2. javascript设计模式-策略模式(Strategy)
  3. matlab中模糊工具箱的使用
  4. 如何设计一个权限管理模块?
  5. Windows 查看文件大小
  6. 网络基础(四) — QUIC协议
  7. 0xc000007b应用程序无法正常启动win10解决方法
  8. Spring各种注解 @PersistenceContext和@Resource @GetMapping、@PostMapping、@PutMapping、@DeleteMapping
  9. 总结编译Liblas库时的问题(会及时更新解决博友遇到的问题)
  10. 爬虫学习笔记(第二章)requests模块