最大均值差异(MMD)的介绍

0.故事缘由

本文内容主要来自于我的本科毕业设计初稿,被痛批太过口语化、繁琐而删除了一大截,想着不如写在这里以纪念我这么几周的痛苦经历。
Adversity reveals genius; fortune conceals it.

1.最大均值差异MMD

1.0 本节结构与总起

MMD是度量方法的一种,用来评估两个分布之间的相似度,取值为 [0,inf),当且仅当两个分布相同的时候为0。其他的度量方法还有KL散度、余弦相似度等,但MMD是最广泛运用的。

本节将由核函数讲起,介绍核矩阵在无限维基底下的表达式,接着,介绍可再生希尔伯特空间并证明它的可再生性,最后介绍定义在再生希尔伯特空间上的MMD,结合可再生性给出它的经验表达式。

1.1 核函数

核函数有两个作用:
1. 将低维数据映射到高维空间,使得原来难以完成线性分类的数据变得线性可分; \quad 1.将低维数据映射到高维空间,使得原来难以完成线性分类的数据变得线性可分; 1.将低维数据映射到高维空间,使得原来难以完成线性分类的数据变得线性可分;
2. 避免内积运算; \quad 2.避免内积运算; 2.避免内积运算;

在这里插入图片描述
如上图所示的XOR问题就是一个经典例子,这导致了神经网络的前身 —— 感知机研发的寒潮。运用核函数解决这个问题的方法如下:

原数据处于二维平面,平面的两个维度记为 x 1 , x 2 x1, x2 x1,x2,取其中的一个样本 x = ( 2 , 3 ) ∈ R 2 x=\left(2,3\right)\in\mathbb{R}^2 x=(2,3)R2,
其中2为点x在 x 1 x_1 x1这个维度上的分量,3为点x在 x 2 x_2 x2这个维度上的分量,如果使用这样的一个函数 ϕ ( x ) : R 2 → R 3 \phi(x):\mathbb{R}^2 \rightarrow\mathbb{R}^3 ϕ(x):R2R3,如:
ϕ ( x ) = [ x 1 ,   x 2 ,   x 1 x 2 ] ∈ R 3 \phi\left(x\right)=\left[x_1,{\ x}_2,{\ x}_1x_2\right]\in\mathbb{R}^3 ϕ(x)=[x1, x2, x1x2]R3
可以得到样本被映射到高维度后的新坐标 ( 2 ,   3 ,   2 ∗ 3 ) = ( 2 ,   3 ,   6 ) \left(2,\ 3,\ 2\ast3\right)=\left(2,\ 3,\ 6\right) (2, 3, 23)=(2, 3, 6),对每一个数据点都使用这样的变换,便可以得到如右所示的三维数据图,显然地,可以通过如图所示的一个超平面(不唯一)来做到线性分类。

1.1.1 内积

在具体地给出核函数的定义之前,我觉得有必要先解释内积,因为这是核函数定义的一部分。
内积:如果 H \mathcal{H} H R \mathbb{R} R上的一个向量空间,一个函数 < ⋅ , ⋅ > : H × H → R <·,·>: H× H→R <⋅,⋅>:H×HR被称作在 H \mathcal{H} H上的内积,如果它满足:
1. < α 1 x 1 + α 2 x 2 ,    y > H   = \qquad 1. <\alpha_1x_1+\alpha_2x_2,\ \ y>_\mathcal{H}\ = 1.<α1x1+α2x2,  y>H = α 1 < x 1 ,    y > H   +   α 2   < x 2 ,    y > H \alpha_1<x_1,\ \ y>_\mathcal{H}\ +\ \alpha_2\ <x_2,\ \ y>_\mathcal{H} α1<x1,  y>H + α2 <x2,  y>H
2. < x ,    y > H   =   < y ,    x > H   \qquad 2. <x,\ \ y>_{\mathcal{H}\ }=\ <y,\ \ x>_{\mathcal{H}\ } 2.<x,  y>H = <y,  x>H 
3. < x ,    x > H     ≥ 0   ,    < x , x > H   = 0  当且仅当 f = 0 \qquad 3. <x,\ \ x>_{\mathcal{H}\ }\ \geq0\ ,\ \ <x,x>_{\mathcal{H}\ }=0\ 当且仅当 f=0 3.<x,  x>H  0 ,  <x,x>H =0 当且仅当f=0
内积有多种定义,在实空间中,有标准内积、欧几里得内积、切比雪夫内积、曼哈顿内积等等,本文使用标准内积来定义内积,即:
对于两个向量 x = ( x 1 , x 2 , … , x n ) x=\left(x_1,x_2,\ldots,x_n\right) x=(x1,x2,,xn) y = ( y 1 , y 2 , … , y n ) y=\left(y_1,y_2,\ldots,y_n\right) y=(y1,y2,,yn),
< x , y > = ∑ i = 1 n x i y i <{x},{y}>=\sum_{i=1}^{n}x_iy_i <x,y>=i=1nxiyi

1.1.2 希尔伯特空间

具体的介绍是不可能的,本人不是数学系的学生,但大致的,可以参考下面的这张图,一步步的定义可参考https://sakigami-yang.me/2017/08/13/about-kernel-02/
在这里插入图片描述

在下文中常出现的希尔伯特空间 (Hilbert space) 是一个完备的内积空间,所谓的完备是指在该空间中,任意一个柯西序列都收敛,并且收敛值也必须在希尔伯特空间中。
而将点映射到希尔伯特空间实际上是将点映射到无穷维空间中的向量。

1.1.3 核函数的正式定义1

核函数:给定一个非空集合 X \mathcal{X} X ,方程 k : X ×   X → R k:\mathcal{X}\times\ \mathcal{X}\rightarrow\mathbb{R} k:X× XR,如果存在一个实希尔伯特空间 ( R \mathbb{R} R-Hilbert space,实希尔伯特空间因其上的内积的定义的不同而不同) 和一个映射 ϕ ( x ) : X → H \phi (x): \mathcal{X} \rightarrow \mathcal{H} ϕ(x):XH,使得 ∀ x , x ′ ∈ X \forall x, x' \in \mathcal{X} x,xX,
k ( x , x ′ ) ≔ < ϕ ( x ) , ϕ ( x ′ ) > H k(x,x')≔<ϕ(x),ϕ(x')>_{\mathcal{H}} k(x,x):=<ϕ(x),ϕ(x)>H
并且满足对称性和正定性:
1. 对称性: k ( x , x ′ ) = k ( x ′ , x ) \qquad 1.对称性:k\left(x,x^\prime\right)=k\left(x^\prime,x\right) 1.对称性:k(x,x)=k(x,x)
2. 正定性: ∀ x , x ′ ∈ X , ∀ c i , c j ∈ R  , ∑ i = 1 n ∑ j = 1 n c i c j k ( x , x ′ ) ≥ 0 \qquad 2.正定性:\forall x,x^\prime\in\mathcal{X},\forall c_i,c_j\in\mathbb{R}\ ,\sum_{i=1}^{n}{\sum_{j=1}^{n}{c_ic_j}k\left(x,x^\prime\right)}\geq0 2.正定性:x,xX,ci,cjR i=1nj=1ncicjk(x,x)0
那么便可将这样的函数称作核函数。
有正式定义1便有正式定义2,(一家说法)但正式定义2里的 K ( x , y ) K(x,y) K(x,y)是建立于正式定义1里的 k ( x , y ) k(x,y) k(x,y)的基础上, K ( x , y ) K(x,y) K(x,y)表示任意两点进行核函数运算后的结果,一般情况下认为它是个无穷维矩阵
K ( x , y ) = ( k ( x 1 , y 1 ) k ( x 1 , y 2 ) . . . k ( x 1 , y n ) . . . k ( x 2 , y 1 ) k ( x 2 , y 2 ) . . . k ( x 2 , y n ) . . . . . . . . . . . . . . . k ( x m , y 1 ) k ( x m , y 2 ) . . . k ( x m , y n ) . . . . . . . . . . . . . . . ) K(x,y)=\begin{pmatrix} k(x_1,y_1) & k(x_1,y_2) & ...&k(x_1,y_n) & ...\\ k(x_2,y_1) & k(x_2,y_2) & ...&k(x_2,y_n) & ...\\ ...&...&...&...\\ k(x_m,y_1) & k(x_m,y_2) & ...&k(x_m,y_n) & ...\\ ...&...&...&...\\ \end{pmatrix} K(x,y)= k(x1,y1)k(x2,y1)...k(xm,y1)...k(x1,y2)k(x2,y2)...k(xm,y2)..................k(x1,yn)k(x2,yn)...k(xm,yn)............
更正式的定义留在后面。

1.1.4 观点建立:函数等于一个无穷维向量

在这里插入图片描述
给定一个定义在区间 [ a , b ] [a,b] [a,b]上的函数 f ( x ) f\left(x\right) f(x),函数 f ( x ) f\left(x\right) f(x)意味着区间 [ a , b ] \left[a,b\right] [a,b]中的所有点进行映射,如果以间距 Δ x \Delta x Δx 来取 n个点 [ x 1 , x 2 , … , x n ] , ∀ i , x i ∈ [ a , b ] \left[x_1,x_2,\ldots,x_n\right],∀i,x_i∈[a,b] [x1,x2,,xn],i,xi[a,b],这些点经过f的作用后变成 [ f ( x 1 ) , f ( x 2 ) , … , f ( x n ) ] \left[f(x_1),f(x_2),\ldots,{f(x}_n)\right] [f(x1),f(x2),,f(xn)]这么一个维度为n的向量,那么当 Δ x   → 0 \Delta x\ \rightarrow 0 Δx 0 ,这个向量自然变成无穷维度。

这就好比你在python里面,这般写法:

import numpy as np
def function(x):
	result=2*x*x+7*x-10
	return result
vector=[]
a=1
b=2
#随着deltax的不断减少,vector的长度会不断上升,直至正无穷
deltax=0.01
for i in np.arange(a,b,deltax):
	vector.append(function(i))

print(len(vector))
print(vector)

1.1.4.5 约定熟成的表示方法

上面我们已经了解了:一个函数等价于一个无限维向量
自下开始,我们使用如下的表示方法:

f:表示函数本身(参考向量的表示如,a=123))
f(x):表示函数在点x上的函数值
f(·):表示一个算子

1.1.5 无穷维向量的内积

与向量的标准内积类似地,本文可以在这里定义函数的内积[7],即:
给定两个定义于区间 [ a , b ] \left[a,b\right] [a,b]上的两个函数 f ( x ) , g ( x ) f\left(x\right),g\left(x\right) f(x),g(x),若以间距 Δ x \Delta x Δx 来取点,则
< f , g > = lim ⁡ Δ x   → 0 ∑ i f ( x i ) g ( x i ) Δ x   = ∫ f ( x ) g ( x )   d x <f,g>=\lim _{{\mathrm{\Delta x}\ \rightarrow 0}} {\sum_{i} f\left(x_i\right)g\left(x_i\right)\mathrm{\Delta x}\ =}\int{f\left(x\right)g\left(x\right)\ dx} <f,g>=Δx 0limif(xi)g(xi)Δx =f(x)g(x) dx

在知道无穷维向量的内积,也就是函数的内积之后,我们便可以正式地介绍核函数的正式定义2了。

1.1.6 核函数的正式定义2

给定一个函数空间中的无穷维矩阵 K ( x , y ) K\left(x,y\right) K(x,y),如果它满足
1. 对称性: K ( x , y ) = K ( y , x ) \qquad 1.对称性:K\left(x,y\right)=K\left(y,x\right) 1.对称性:K(x,y)=K(y,x)
2. 正定性: ∀ f ,    ∬ f ( x ) K ( x , y ) f ( y ) d x d y ≥ 0 \qquad 2.正定性:\forall f,\ \ \iint{f\left(x\right)K\left(x,y\right)f\left(y\right)dxdy\geq0} 2.正定性:f,  f(x)K(x,y)f(y)dxdy0
那么称这个无穷维矩阵 K ( x , y ) K\left(x,y\right) K(x,y)是一个核函数

1.1.7 无限维矩阵与其无限维基底

1.1.7.1 有限维矩阵

先回顾一遍对有限维度矩阵的处理
对一个n阶实对称阵A,存在特征值与特征向量x,使得
A x = λ x Ax=\lambda x Ax=λx
对于两不相等的特征值 λ 1 ≠ λ 2 \lambda_1 \neq \lambda_2 λ1=λ2,有

λ 1 x 1 T x 2 = x 1 T A T x 2 = x 1 T A x 2 = x 1 T ( A x 2 ) = x 1 T λ 2 x 2 = λ 2 x 1 T x 2 \begin{aligned} {\lambda}_1 x_1^ T x_2 &= x_1^ T A^ T x_2 \\ &= x_1^ T A x_2 \\ & = x_1^ T (A x_2)\\ &= x_1^T{\lambda}_2 x_2\\ &={\lambda}_2 x_1^ T x_2 \end{aligned} λ1x1Tx2=x1TATx2=x1TAx2=x1T(Ax2)=x1Tλ2x2=λ2x1Tx2

λ 1 ≠ λ 2 \lambda_1 \neq \lambda_2 λ1=λ2,于是 x 1 T x 2 = 0 x_1^ T x_2=0 x1Tx2=0

1.1.7.2 无限维矩阵

由于A是实对称阵,实对称阵必相似于对角矩阵,对n个特征值 ( λ 1 , λ 2 , . . . λ n ) (\lambda_1, \lambda_2,... \lambda_n) (λ1,λ2,...λn),可以找到n个正交的特征向量 ( q 1 , q 2 , . . . , q n ) (q_1,q_2,...,q_n) (q1,q2,...,qn)

类似于矩阵的特征值核特征向量,核函数(定义二里面的无限维矩阵)也存在着特征值和特征函数:
∫ K ( x , y ) φ ( x ) d x = λ φ ( x ) \int K(x,y)φ(x)dx=λφ(x) K(x,y)φ(x)dx=λφ(x
于是,对于不同的特征值,可以得到不同的特征值对应的特征向量(前面已经提到函数可以视作一个向量)是相互正交的,即有,
< φ i , φ j > = 0 , i f i ≠ j <\varphi_i,φ_j>=0, \quad if \quad i≠j <φi,φj>=0,ifi=j
于是可以得到一个核函数对应于无穷多个特征值 { λ i } i = 1 ∞ \{ {\lambda}_i \}_{i=1}^{\infty} {λi}i=1与无穷多个特征函数 { φ i } i = 1 ∞ \{ {\varphi}_i \}_{i=1}^{\infty} {φi}i=1

1.2 再生希尔伯特空间

1.2.1 希尔伯特空间补充

具体的介绍是不可能的,本人不是数学系的学生,但大致的,可以参考下面的这张图,一步步的定义可参考https://sakigami-yang.me/2017/08/13/about-kernel-02/
在这里插入图片描述

希尔伯特空间 (Hilbert space) 是一个完备的内积空间,所谓的完备是指在该空间中,任意一个柯西序列都收敛,并且收敛值也必须在希尔伯特空间中。而将点映射到希尔伯特空间实际上是将点映射到无穷维空间中的向量。

“将点映射到希尔伯特空间实际上是将点映射到无穷维空间中的向量",这点在本文不给予证明,需要用到泛函分析的东西。大致的逻辑是:我们是通过一种叫特征映射(feature map)的函数将点映射到希尔伯特空间上,而这些函数都满足Mercer条件,由Mercer定理,我们知道任何半正定核函数都可以用于将输入点映射到希尔伯特空间中的向量。
经典的特征映射函数有高斯核函数…

在这里插入图片描述

1.2.2 再生希尔伯特空间(RKHS)

再生希尔伯特空间是希尔伯特空间的一个子集。
希尔伯特空间所有的元素都是函数,而再生希尔伯特空间中的所有元素额外满足可再生性。

1.2.2 可再生性

这是可再生希尔伯特空间的一个性质,但个人看到过两种表述
下面出现的 K ( x , ⋅ ) K(x,·) K(x,⋅)表示无限维矩阵K的第x行

1.2.2.1 可再生性表述1

对于任意的函数 f ∈ R K H S f ∈ RKHS fRKHS 和输入点 x ∈ X x ∈ X xX
< f , K ( x , ⋅ ) > = f ( x ) <f,K(x,·)>=f(x) <f,K(x,⋅)>=f(x)
这是最主要的写法,比如在下面的MMD推导里用的就是这种。

额外地,可以用用这个来验证一个核函数是否属于RKHS,如
首先,我们有:
K ( x , y ) = ∑ i = 1 ∞ λ i φ i ( x ) φ i ( y ) K(x, y)=\sum_{i=1}^{∞}λ_i φ_i(x) φ_i(y) K(x,y)=i=1λiφi(x)φi(y)
f ( x ) = ∑ i = 1 ∞ f i λ i φ i ( x ) f(x)=\sum_{i=1}^{∞} f_i \sqrt{\lambda_i} φ_i(x) f(x)=i=1fiλi φi(x)

于是:
< f , K ( x , ⋅ ) > = ∫ f ( y ) K ( x , y ) d y < f, K(x, ·) > = \int f(y) K(x, y) dy <f,K(x,⋅)>=f(y)K(x,y)dy

将判断 f ( x ) ? < f , K ( x , ⋅ ) > f(x) {\quad }? {\quad }< f, K(x, ·) > f(x)?<f,K(x,⋅)>
等于号则表示该核函数属于RKHS

1.2.2.2 可再生性表述2

< K ( x , ⋅ ) , K ( ⋅ , y ) > = ∑ i ∞ λ i φ i ( x ) φ i ( y ) = K ( x , y ) <K(x,·),K(·,y)>= {\sum_{i} ^{∞}}λ_i φ_i(x) φ_i(y)=K(x,y) <K(x,⋅),K(⋅,y)>=iλiφi(x)φi(y)=K(x,y)

首先 K ( x , ⋅ ) K(x,·) K(x,⋅)表示固定x之后的一维向量,长度无限
K ( x , ⋅ ) = ∑ i ∞ λ i φ i ( x ) φ i K(x,·)= {\sum_{i} ^{∞}}λ_i φ_i(x) φ_i K(x,⋅)=iλiφi(x)φi
K ( ⋅ , y ) = ∑ i ∞ λ i φ i ( y ) φ i K(·, y)= {\sum_{i} ^{∞}}λ_i φ_i(y) φ_i K(⋅,y)=iλiφi(y)φi

于是,以无穷多个特征函数 { φ i } i = 1 ∞ \{ {\varphi}_i \}_{i=1}^{\infty} {φi}i=1为基底,可以表示 K ( x , ⋅ ) K(x,·) K(x,⋅) ( φ 1 ( x ) , φ 2 ( x ) , . . . ) T (φ_1(x),φ_2(x),...)^T (φ1(x),φ2(x),...)T,同理,可以表示 K ( ⋅ , y ) K(·, y) K(⋅,y) ( φ 1 ( y ) , φ 2 ( y ) , . . . ) T (φ_1(y),φ_2(y),...)^T (φ1(y),φ2(y),...)T
于是

< K ( x , ⋅ ) , K ( ⋅ , y ) > = ∑ i ∞ λ i φ i ( x ) φ i ( y ) = K ( x , y ) <K(x,·),K(·,y)>= {\sum_{i} ^{∞}}λ_i φ_i(x) φ_i(y)=K(x,y) <K(x,⋅),K(⋅,y)>=iλiφi(x)φi(y)=K(x,y)

1.2.2.3二者合一

大佬博客中只给出了一种,我想了下其实两种表达是一致的

重复一次:
f ( x ) = ∑ i = 1 ∞ f i λ i φ i ( x ) f(x)=\sum_{i=1}^{∞} f_i \sqrt{\lambda_i} φ_i(x) f(x)=i=1fiλi φi(x)
K ( x , ⋅ ) = ∑ i ∞ λ i φ i ( x ) φ i K(x,·)= {\sum_{i} ^{∞}}λ_i φ_i(x) φ_i K(x,⋅)=iλiφi(x)φi
K ( ⋅ , y ) = ∑ i ∞ λ i φ i ( y ) φ i K(·, y)= {\sum_{i} ^{∞}}λ_i φ_i(y) φ_i K(⋅,y)=iλiφi(y)φi
其中, f ( x ) f(x) f(x)是一个数值, K ( x , ⋅ ) K(x,·) K(x,⋅)是一个一维无穷向量,可以视为一个一维函数(未知量是y,而不是已经固定的x)
下面尝试说明 K ( ⋅ , y ) K(·,y) K(⋅,y)可以视作 f f f
f = ∑ i = 1 ∞ f i λ i φ i f=\sum_{i=1}^{∞} f_i \sqrt{\lambda_i} φ_i f=i=1fiλi φi
K ( ⋅ , y ) = ∑ i ∞ λ i φ i ( y ) φ i = ∑ i ∞ [ λ i φ i ( y ) ] λ φ i K(·, y)= {\sum_{i} ^{∞}}λ_i φ_i(y) φ_i={\sum_{i} ^{∞}} [\sqrt {λ}_i φ_i(y) ]\sqrt {λ}φ_i K(⋅,y)=iλiφi(y)φi=i[λ iφi(y)]λ φi

λ i φ i ( y ) = f i \sqrt {λ}_i φ_i(y) =f_i λ iφi(y)=fi,显然,二者将相同,如若不同也可以通过乘除一个值来达到表示的效果
因而二者一致

1.3 最大均值差异MMD

M M D [ F , p , q ] = sup ⁡ ∣ ∣ f ∣ ∣ H ≤ 1 ( E p [ f ( x ) ] − E q [ f ( y ) ] ) MMD\left[\mathcal{F},p,q\right]=\sup_{\left|\left|f\right|\right|_\mathcal{H}\le1} (E_p\left[f\left(x\right)\right]-E_q[f(y)]) MMD[F,p,q]=fH1sup(Ep[f(x)]Eq[f(y)])
其中, p , q p,q p,q表示两份数据满足地概率分布, ∣ ∣ f ∣ ∣ H ≤ 1 \left|\left|f\right|\right|_\mathcal{H}\le1 fH1表示函数域 F \mathcal{F} F 被定义成再生希尔伯特空间中的单位球内的一个任意向量,这么定义是为了避免两个分布的MMD距离无限大, f ( x ) f\left(x\right) f(x)表示将x映射成希尔伯特空间中的无限维向量。

E p [ f ( x ) ] = ∫ P ( x ) f ( x ) d x = ∫ P ( x ) < f , K ( x , ⋅ ) > H d x = < ∫ P ( x ) K ( x , ⋅ ) d x , ϕ ( x ) > H ≔ < μ p , f > H \begin{aligned} E_p[f(x)]&=\int P(x) f(x) dx\\ &=\int P(x) <f, K(x, ·)>_{\mathcal{H}}dx\\ &=<\int P(x)K(x, ·)dx, ϕ(x) >_{\mathcal{H}}\\ &≔<μp,f>_{\mathcal{H}} \end{aligned} Ep[f(x)]=P(x)f(x)dx=P(x)<f,K(x,⋅)>Hdx=<P(x)K(x,⋅)dx,ϕ(x)>H:=<μp,f>H

即我们定义了 μ p : = ∫ P ( x ) K ( x , ⋅ ) d x \mu_p:= \int P(x) K(x, ·)dx μp:=P(x)K(x,⋅)dx,其实这项叫核均值嵌入KME,但我看不懂,可参考

进而,
M M D [ p   ,   q   , H ] = sup ⁡ ∣ ∣ f ∣ ∣ H ≤ 1 ( E p f ( x ) − E q f ( y ) ) = sup ⁡ ∣ ∣ f ∣ ∣ H ≤ 1 < μ p − μ q , f > H \begin{aligned} MMD\left[p\ ,\ q\ ,\mathcal{H}\right]&=\sup_{\left|\left|f\right|\right|_\mathcal{H}\le1}(E_pf(x)-E_qf(y))\\ &=\sup_{\left|\left|f\right|\right|_\mathcal{H}\le1} <\mu_p-\mu_q,f>_{\mathcal{H}} \end{aligned} MMD[p , q ,H]=fH1sup(Epf(x)Eqf(y))=fH1sup<μpμq,f>H
注意到, < μ p − μ q , f > H ≤ ∣ ∣ μ p − μ q ∣ ∣ H ∣ ∣ f ∣ ∣ H <\mu_p-\mu_q,f>_{\mathcal{H}} ≤||μ_p-μ_q||_{\mathcal{H}}||f||_{\mathcal{H}} <μpμq,f>H∣∣μpμqH∣∣fH,在 f ∝ μ p − μ q f ∝ μ_p-μ_q fμpμq时等号成立,于是
M M D [ p , q , H ] = ∣ ∣ μ p − μ q ∣ ∣ H MMD[p ,q , {\mathcal {H}} ]=||μ_p-μ_q||_{\mathcal{H}} MMD[p,q,H]=∣∣μpμqH

但是 μ p \mu_p μp μ q μ_q μq一般是不知道的,而由于期望是无偏估计,于是我们可以考虑用经验值来代替,假设 X ∼ p X \sim p Xp, Y ∼ q Y \sim q Yq,从中分别采样出n与m个样本,有:
M M D [ p   ,   q   , H ] = ∣ ∣   1 n ∑ i = 1 n f ( x i ) −   1 m ∑ j = 1 m f ( y j ) ∣ ∣ H MMD\left[p\ ,\ q\ ,\mathcal{H}\right]=||\ \frac{1}{n}\sum_{i=1}^{n}f\left(x_i\right)- \ \frac{1}{m}\sum_{j=1}^{m}f\left(y_j\right)||_{\mathcal{H}} MMD[p , q ,H]=∣∣ n1i=1nf(xi) m1j=1mf(yj)H

2.KME核均值嵌入

ref: 主要是KME的wiki词条

2.1.BG:

分布分析是ML和统计学习的基础,这块主要依赖于信息论的方法,如熵、互信息、KL散度等。然而为了估计这些量必须先进行密度估计,或采用复杂的空间划分/偏差校正等策略,这些对于高维数据来说是不可行的。另一点是对复杂分布建模的方法所依赖的参数假设可能是没有根据的、或是在计算上不大可行的,至于非参数方法,如核密度估计或者特征函数表示(通过分布的傅里叶变化)在高位设置中会崩溃。
但基于分布的核嵌入方法则避开了这些问题,并且有以下的有点:

①.数据可以在没有关于分布形式于变量之间的关系等方面的限制性假设的情况下建模;
②.无需进行中间密度估计
③.使用者可以指定于他们的问题最相关的分布的属性(这一点可以通过选择核函数以结合先验知识)
④.如果使用了特征核函数(上面有提到),那么(对应的)embedding可以唯一地保留关于分布地信息,而由于核技巧的使用,在实际使用的时候可以将潜在的无限维RKHS的计算以简单的Gram矩阵运算的方式实现
⑤.可以证明 : 经验核均值(使用分布中的样本估计)到真实底层分布的核嵌入的维数无关的收敛率(没看懂);
⑥.基于该框架的学习算法表现出良好的泛化能力和良好的有限样本收敛性,同时往往比信息论的方法更加有效

2.2 definition

3 现代数字信号处理(可能有关)

逻辑是这样的,首先我有一批数据,现在我假定我搞到了一个比较好的模型(比如高斯,泊松),就只剩下了弄一个估计从数据中来认识参数的需求,于是提出了充分统计量,它包含了数据中所有的与参数有关的信息,这是一个很初步的需求,进一步的需求是无偏性,再进一步是MSE要足够的小,而再充分统计量和无偏的基础上,在上一个估计θ0的情况下对其做改进得到的θ1,就MSE而言,θ1效果比θ0好;

这个逻辑就很对域适应中对伪标签的作用

接着提出充分完备统计可以一步到位达到改进的头,然后用Cramer-Rao可以得到这个改进的终点的具体数值。

所以接着看,现在dl的方向中的基于无监督的zero/few shot,我猜测其原理和充分完备统计有关,并且方向还是达到Cramer-Rao界

  • 19
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MMD (Maximum Mean Discrepancy) 是一种统计学方法,常用于评估两个概率分布之间的差异,尤其是在无监督学习和生成模型中。在 TensorFlow 中使用 MMD,你需要编写一些自定义代码来实现它,因为 TensorFlow 提供了基本的计算框架,但不是专门针对 MMD 的库。 以下是使用 TensorFlow 实现 MMD 作为损失函数的一个简单示例: ```python import tensorflow as tf from scipy.spatial.distance import squareform def rbf_kernel(X, Y, sigma): # X 和 Y 是输入数据的张量,sigma 是核函数的宽度参数 n_samples_X = tf.shape(X) n_samples_Y = tf.shape(Y) tiled_X = tf.tile(tf.expand_dims(X, axis=1), [1, n_samples_Y, 1]) tiled_Y = tf.tile(tf.expand_dims(Y, axis=0), [n_samples_X, 1, 1]) diff = tf.square(tiled_X - tiled_Y) return tf.exp(-diff / (2 * sigma**2)) def mmd_loss(p_dist, q_dist, kernel_func=rbf_kernel, sigma=1.0): K_pq = kernel_func(p_dist, q_dist, sigma) K_pp = kernel_func(p_dist, p_dist, sigma) K_qq = kernel_func(q_dist, q_dist, sigma) trace_qp = tf.reduce_sum(K_pq) trace_pp = tf.reduce_sum(tf.linalg.diag_part(K_pp)) trace.qq = tf.reduce_sum(tf.linalg.diag_part(K_qq)) return trace_qp - 0.5 * (trace_pp + trace.qq) # 假设你有两组样本 p_data 和 q_data p_data = ... # 形状为 (batch_size, feature_dim) q_data = ... # 形状为 (batch_size, feature_dim) loss = mmd_loss(p_data, q_data) optimizer = tf.keras.optimizers.Adam() optimizer.minimize(loss, var_list=model.trainable_variables) ``` 这个例子中,我们首先定义了一个 RBF 核心函数,然后计算了 MMD 损失。`mmd_loss` 函数返回两个分布之间的 MMD,之后可以在训练过程中优化模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值