最大均值差异(Maximum Mean Discrepancy)

本文探讨了如何通过两组独立同分布的样本集X和Y来判断其分布p和q是否相同,利用MMD(MaximumMeanDiscrepancy)理论,通过映射函数f将样本映射到函数值空间,计算均值差异。特别提到普适的再生核希尔伯特空间(UniversalRKHS)中的单位球在MMD计算中的作用。
摘要由CSDN通过智能技术生成

解决的问题

在这里插入图片描述

假设有两组观测到的样本集X={x1,x2,…xn}和Y={y1,y2,…yn}分别独立同分布采样自分布 p 和分布 q;
如何通过 X和 Y 判断分布 p 和 q 是否相同?

定义

  1. 基于经验的运算
    请添加图片描述

F:在样本空间上的函数集合

  1. 经验估计
    请添加图片描述

过程
(1) 需要一个映射函数f∈F:把样本集X和Y中的所有样本映射至对应的函数值;
(2)分别计算它们的均值做差得到一个均值差异;
MMD 的目标
寻找一个映射函数 f,使得上述均值差异最大
函数集合F分析
F需要足够丰富:确保其中一定存在一个函数,使得当均值差异最大时,分布 p和q相等;
F需要一定限制:确保可以从有限的样本中获得有效的估计;
最合适的F:普适的再生核希尔伯特空间(Universal RKHS)中的单位球(Unit Ball)

简化MMD计算

  1. 分布的均值嵌入
    请添加图片描述

k(·,·):核函数
up的存在需要满足一定的条件,如果存在则是空间中的一个点

  1. MMD计算
    请添加图片描述
    只需要计算两点之间的距离便可得到两个分布之间的差异
  2. MMD经验估计
    请添加图片描述
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch对于求maximum mean discrepancy最大均值差异)可以通过以下步骤实现: 首先,通过定义核函数来测量两个分布之间的差异。可以使用高斯核函数来计算样本的欧氏距离,并通过指定带宽参数来调整核函数的宽度。PyTorch提供了torch.exp函数来计算指数函数。 其次,计算两个分布的均值。对于每个分布,可以通过计算样本张量的平均值来得到。 然后,计算最大均值差异最大均值差异是指两个分布之间的最大差异,可以通过选择最大均值差异的值来判断两个分布是否相同。计算最大均值差异可以通过计算样本集之间的核矩阵并选择其中的最大值来实现。PyTorch提供了torch.mm函数来计算矩阵乘法,并使用torch.max函数选择最大值。 最后,将上述步骤结合起来,使用PyTorch的张量操作和数学函数来实现maximum mean discrepancy的计算。具体代码如下: ```python import torch def maximum_mean_discrepancy(x, y, bandwidth): # 计算高斯核 def gaussian_kernel(x, y, bandwidth): diff = torch.unsqueeze(x, 1) - torch.unsqueeze(y, 0) norm = torch.norm(diff, dim=2) return torch.exp(-0.5 * (norm / bandwidth) ** 2) # 计算样本均值 def mean(x): return torch.mean(x, dim=0) # 计算最大均值差异 kernel_xx = gaussian_kernel(x, x, bandwidth) kernel_xy = gaussian_kernel(x, y, bandwidth) kernel_yy = gaussian_kernel(y, y, bandwidth) mmd = torch.max(torch.mean(kernel_xx) + torch.mean(kernel_yy) - 2 * torch.mean(kernel_xy)) return mmd # 示例数据 x = torch.tensor([[1, 2], [3, 4], [5, 6]]) y = torch.tensor([[2, 3], [4, 5], [6, 7]]) bandwidth = 1 # 求解最大均值差异 mmd = maximum_mean_discrepancy(x, y, bandwidth) print(mmd) ``` 这段代码演示了如何使用高斯核函数和PyTorch的张量操作来计算两个样本集之间的最大均值差异
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值