什么是MMD Maximum Mean Discrepancy 最大均值差异?

news2024/12/12 23:54:31

9多次在迁移学习看到了,居然还是Bernhard Schölkopf大佬的论文,仔细看看。

一.什么是MMD?

1. MMD要做什么?

判断两个样本(族)是不是来自于同一分布

2.怎么做?(直观上)

  • 我们通过找到一个表现良好(例如,平滑)的函数来检验分布p和q是否不同,该函数在p的点上表现得很大,在q的点上表现得尽可能小(尽可能负)。我们使用两个样本的平均函数值之间的差异作为检验统计量;当这个值很大时,样本可能来自不同的分布。我们称这个检验统计量为最大平均差异(MMD)。[1]
  • 检验统计量是再现核希尔伯特空间(RKHS)的单位球中函数期望的最大差异,称为最大平均差异。[1]

所以就是要找一个最合理的指标,能够表示出这两个分布p q之间的差距。

3.怎么做?(统计上)

首先我们如果有两个分布的具体的分布函数f_Xf_Y,只要对比这两个函数,这个问题非常理想地解决了。

或者如[1]中所引用的引理:

所说,我们如果能获得所有有界连续函数,那么也能知道这两者分布是不是一样的。但是实际上这两个条件都实现不了或者难度太大。

那有没有什么指标(或者函数)能方便刻画分布的差别呢?

回想到在统计上有一个矩的概念[1],一阶中心矩是均值,二阶中心矩是方差,统计上还有任意n对应的n阶矩。

此处有一个引理:

如果f_Xf_Y的任意n阶矩都相等,那么这两个分布相等。

那么我们只要找最低的n使得f_Xf_Y的n阶矩不相等,这就可以作为评估f_Xf_Y差别的一个标准了~(可以证明满足1.2的性质,具体可以参考[1])

或者更简单来说,我们先对比期望方差,期望方差一样了再找更高级的指标,直到找到不一样的。

4.怎么做?(定义详解)

4.1 定义MMD的公式

[1]里给了很清晰的定义,贴在下面:

 

(补充嘴一句,无偏估计和有效估计我随便看了[5],其实就是看是不是均值出现偏差)

熟悉泛函分析和统计的朋友肯定一眼看出,这是mapping!f把原始的数据点映射称为一个新的点并计算了距离。但是不同的f肯定效果不一样~具体选择了什么呢?看下一节。

4.2实现的具体形式(RKHF版本)

实际上,将再现核希尔伯特空间H中的单位球作为我们的MMD函数类F[1],

这个再现核希尔伯特空间在SVM里出现过!(可参考我的博客[3]的2.3)在SVM里,我们用再现核希尔伯特空间来把弯曲的“分割面”进行"拉直":通过把原始点投影到高维空间中、牺牲了变量的低维度换取线性可分的好性质。

而在MMD,我们是通过投影、牺牲低维度获取什么好性质呢?[2]里讲的很好

在支持向量机中我们都知道有一个高斯核函数,它对应的映射函数恰好可以映射到无穷维上,映射到无穷维上再求期望,正好可以得到随机变量的高阶矩,这个方法有一个更高大上的名字,叫做kernel embedding of distributions[2],这个简单理解就是将一个分布映射到再生希尔伯特空间(每个核函数都对应一个RKHS)上的一个点,

这样两个分布之间的距离就可以用两个点的内积进行表示!

本来一个分布有乌泱泱一堆点,这样“压缩”到高维空间的一个点,就能求内积了是不是很帅!

具体定义的公式先贴在最前面,还是参考[1]:

上述式子可以直接用,但是怎么证明呢?证明RKHS的结论(也就是把最早定义的f实例化为核函数k)要用到以下的推导: (也就是怎么表示式(1)中的期望)[1]

这个引理证明,MMD可以表示为平均嵌入之间的距离H 

the MMD may be expressed as the distance in H between mean embeddings
(Borgwardt et al., 2006).

(Borgwardt et al., 2006).指的是:K. M. Borgwardt, A. Gretton, M. J. Rasch, H.-P. Kriegel, B. Scholkopf, and A. J. Smola. Integrating ¨structured biological data by kernel maximum mean discrepancy. Bioinformatics (ISMB), 22(14):e49–e57, 2006. 我没看 有需求可以参考哈。

以上定理证明最重要的式第二行,这两个期望的差咋就成了一个内积?回答这个问题,就需要很长的故事了……

4.3(补充)RKHS 那些事(谱分解&Riesz表示定理)

这个式子来源于[2],理解可以看[2]引用的[6]。

推导再生性用到的无穷维线性空间是这个:[6]

太漂亮了,基础的希尔伯特空间这一套理论看的真爽,就是现在用不上,后续闲暇可以细看。简单来说就是用到矩阵理论中的谱分解和泛函里的Riesz表示定理,能够推出上面引用的这个式子。

具体的再生性的无穷维线性空间是

5.具体实现:

同SVM一样,我们不关心核函数(记为k(x))本身,而关心它的内积(一个二元函数k(x,y)=<k(x),k(y)>_H),这样我们定义了一个内积(可参考[4]证明符合内积的性质)

常用的依旧是高斯核函数: [4]

 6.代码实现:

[2][6]里很清晰!

参考文献:

[1]Gretton, Arthur, et al. "A kernel two-sample test." The Journal of Machine Learning Research 13.1 (2012): 723-773. 

[2]统计知识(一)MMD Maximum Mean Discrepancy 最大均值差异https://zhuanlan.zhihu.com/p/163839117icon-default.png?t=O83Ahttps://zhuanlan.zhihu.com/p/163839117

[3]什么是支持向量机(Support vector machine)和其原理_支持向量机(support vector machine, svm)-CSDN博客

[4]Maximum Mean Discrepancy (MMD) in Machine LearningMaximum mean discrepancy (MMD) is a kernel based statistical test used to determine whether given two distribution are the same which is proposed in [1]. MMD...icon-default.png?t=O83Ahttps://www.onurtunali.com/ml/2019/03/08/maximum-mean-discrepancy-in-machine-learning.html#references[5]什么是无偏估计?https://www.zhihu.com/question/22983179icon-default.png?t=O83Ahttps://www.zhihu.com/question/22983179 [6]Kernel Distribution Embedding https://zhuanlan.zhihu.com/p/114264831icon-default.png?t=O83Ahttps://zhuanlan.zhihu.com/p/114264831

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2256825.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LDR6500:音频双C支持,数字与模拟的完美结合

在当今数字化快速发展的时代&#xff0c;音频设备的兼容性和性能成为了用户关注的重点。LDR6500&#xff0c;作为乐得瑞科技精心研发的USB Power Delivery&#xff08;PD&#xff09;协议芯片&#xff0c;凭借其卓越的性能和广泛的应用兼容性&#xff0c;为音频设备领域带来了新…

Leetcode 每日一题 1.两数之和

目录 问题描述 示例 示例 1 示例 2 示例 3 提示 解决方案 算法思路 过题图片 代码实现 复杂度分析 注意事项 题目链接 结论 问题描述 给定一个整数数组 nums 和一个目标值 target&#xff0c;请你找出数组中和为目标值的那两个整数&#xff0c;并返回它们的数组下…

【萤火工场CEM5826-M11测评】Arduino 采集雷达模块数据与串口绘图

【萤火工场CEM5826-M11测评】Arduino 采集雷达模块数据与串口绘图 当采用串口输出模式时&#xff0c;雷达检测到运动时&#xff0c;则输出 v0.0km/h, str1234 字样&#xff1b; v 表示目标速度大小&#xff0c;str 表示信号强度&#xff1b; 当雷达检测不到目标时&#xff0c…

【C++】选择排 序算法分析与扩展

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;代码回顾&#x1f4af;选择排序的算法流程&#x1f4af;代码详解外层循环初始化最小值内层循环比较与更新元素交换 &#x1f4af;选择排序的特性时间复杂度空间复杂度稳定性…

3D 生成重建024-LGM第一个开源的3D生成大模型!

3D 生成重建024-LGM第一个开源的3D生成大模型 文章目录 0 论文工作1 论文方法2 实验效果 0 论文工作 这篇论文介绍了一种名为LGM&#xff08;大型多视角高斯模型&#xff09;的新方法&#xff0c;用于从单视角图像或文本提示生成高分辨率的三维内容。该方法的核心思想是双重的…

微信 创建小程序码-有数量限制

获取小程序码&#xff1a;小程序码为圆图&#xff0c;有数量限制。 目录 文档 接口地址 功能描述 注意事项 请求参数 对接 获取小程序码 调用获取 小程序码示例 总结 文档 接口地址 https://api.weixin.qq.com/wxa/getwxacode?access_tokenaccess_token 功能描述 …

日志基础示例python和c++

文章目录 0. 引言1. python2. c 0. 引言 本文主要记录python版本和c版本常用的日志基础示例。 1. python python版本常用的是logging库&#xff0c;结合colorlog库&#xff0c;可根据不同日志级别打印不同颜色的日志&#xff0c;为了便于分析问题&#xff0c;还添加了日志保…

泷羽sec学习打卡-brupsuite4

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都 与本人无关,切莫逾越法律红线,否则后果自负 关于brupsuite的那些事儿-proxy proxyInterceptHTTP history/WebSocket history&#xff08;历史记录&a…

喜报!极限科技(INFINI Labs)通过国家高新技术企业认定

2024 年 10 月 29 日&#xff0c;国家高新技术企业认定管理工作网公示了北京市认定机构 2024 年认定报备的第一批高新技术企业备案名单&#xff0c;极限数据&#xff08;北京&#xff09;科技有限公司 顺利通过本次高新技术企业评审&#xff0c;并获得 国家级“高新技术企业”认…

STM32 USART串口通信 综合练习

USART&#xff08;通用同步/异步串行接收/发送器&#xff09;串口通信具有以下特点&#xff1a; 全双工操作&#xff1a;设备之间可以同时进行数据的发送和接收。异步通信&#xff1a;不需要共同的时钟信号&#xff0c;双方设备有各自的时钟。单端信号&#xff1a;使用一根线传…

Linux - 进程等待和进程替换

进程等待 前面我们了解了如果父进程没有回收子进程, 那么当子进程接收后, 就会一直处于僵尸状态, 导致内存泄漏, 那么我们如何让父进程来回收子进程的资源. waitpid 我们可以通过 Linux 提供的系统调用函数 wait 系列函数来等待子进程死亡, 并回收资源. #include <sys/t…

虚拟主机怎么选哪家的性价比高

选择虚拟主机不能只看价格&#xff0c;还要看质量和服务&#xff0c;稳定快速的虚拟主机再加上优质的售后服务&#xff0c;才可令网站顺利运行&#xff0c;站长才无后顾之忧。 选虚拟主机或云服务器还是要选大牌主机商的产品比较好&#xff0c;质量和服务更有保障&#xff0c;例…

英文论文翻译成中文,怎样翻译更地道?

我是娜姐 迪娜学姐 &#xff0c;一个SCI医学期刊编辑&#xff0c;探索用AI工具提效论文写作和发表。 最近学员群有同学问&#xff0c;英文论文翻译成中文的解决方案—“DeepL翻译出来的内容总是有点别扭&#xff0c;ChatGPT能翻译的地道一些吗&#xff1f;”。 正好有位刚加入的…

40分钟学 Go 语言高并发:服务监控与追踪

服务监控与追踪 一、知识要点总览 模块核心内容技术选型难度监控指标请求量、响应时间、错误率、资源使用Prometheus Grafana中链路追踪分布式调用链、性能瓶颈分析Jaeger, OpenTelemetry高日志处理日志收集、分析、存储ELK Stack中告警系统告警规则、通知渠道、告警分级Ale…

【Unity高级】如何实现粒子系统的间歇式喷射

先看下要最终实现的效果&#xff1a; 代码如下&#xff1a; using UnityEngine; using System.Collections;public class ParticleBurstController : MonoBehaviour {private ParticleSystem _particleSystem; // 获取粒子系统public float burstDuration 2f; // 每次…

clipchamp制作视频文字转语音音频

一.准备工作&#xff1a; 1.在浏览器打开 https://app.clipchamp.com/首次打开需要登录&#xff0c;未登录用户注册登录 2.点击右上角头像到Settings页面&#xff0c;点击Language切换到中文&#xff08;英文水平好的可以忽略此步骤&#xff09;因中文英文界面有微小差异&…

开源轻量级文件分享服务Go File本地Docker部署与远程访问

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

三菱伺服通过MR Configurator2进行的试运行模式

(1)试运行模式 (a)JOG运转 可以不使用伺服系统控制器执行J0G运行。请在解除强制停止的状态下使用。无论伺服0N/伺服OFF或伺服系统控制器有无连接均可使用。 通过MR Configurator2的J0G运行画面进行操作。 1)运行模式 2)运行方法 "“仅在长按正转、反转按钮中运行”的复选框…

Sqoop导入数据(mysql---->>hive)

目录 数据传输流程脚本报错和异常说明1. Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf2. 数据导入hive后显示NULL 数据传输流程 mysql---->>hdfs---->>hive 数据从mysql表中取出&#xff0c;放到hdfs上&#xff08;由targ…

Flask返回中文Unicode编码(乱码)解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…