当前位置: 首页 > news >正文

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

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

相关文章:

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

9多次在迁移学习看到了&#xff0c;居然还是Bernhard Schlkopf大佬的论文&#xff0c;仔细看看。 一.什么是MMD&#xff1f; 1. MMD要做什么&#xff1f; 判断两个样本&#xff08;族&#xff09;是不是来自于同一分布 2.怎么做&#xff1f;&#xff08;直观上&#xff09;…...

沐风老师3DMAX摄相机阵列插件使用方法

3DMAX摄相机阵列插件&#xff0c;从网格对象或样条线的顶点法线快速创建摄相机阵列。该插件从网格的顶点或样条线的节点获取每个摄影机的位置和方向。 3DMAX摄相机阵列插件支持目前3dMax主流的物理相机、标准相机、VRay物理相机。 【版本要求】 3dMax 2015及更高版本 【安装方…...

Java Web 开发学习中:过滤器与 Ajax 异步请求

一、过滤器 Filter&#xff1a; 过滤器的概念与用途 在一个庞大的 Web 应用中&#xff0c;有许多资源需要受到保护或进行特定的预处理。过滤器就像是一位智能的守卫&#xff0c;站在资源的入口处&#xff0c;根据预先设定的规则&#xff0c;决定哪些请求可以顺利访问资源&…...

数据结构 (36)各种排序方法的综合比较

一、常见排序方法分类 插入排序类 直接插入排序&#xff1a;通过构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插入。希尔排序&#xff1a;是插入排序的一种改进版本&#xff0c;先将整个待排序的记录序列分割成为…...

使用vue搭建不需要打包的前端项目

需求详情&#xff1a;用户不要项目进行打包&#xff0c;开发还是选用vue2,且需要便于上手 项目目录 >api 存放api.js&#xff0c;主要是前端用到的接口 >css >>>fonts 存放页面需要的字体文件 >>>1.css 存放所有css文件 >data 存放echarts…...

发布订阅者=>fiber=>虚拟dom

文章目录 vue的响应式原理-发布订阅者模式vue3 响应式原理及优化fiberfiber 与 虚拟dom vue的响应式原理-发布订阅者模式 Vue响应式原理概述 Vue.js的响应式原理是其核心特性之一。它使得当数据发生变化时&#xff0c;与之绑定的DOM元素能够自动更新。其主要基于数据劫持和发布…...

Python-计算机中的码制以及基础运算符(用于分析内存)

记录python学习&#xff0c;直到学会基本的爬虫&#xff0c;使用python搭建接口自动化测试就算学会了&#xff0c;在进阶webui自动化&#xff0c;app自动化 python基础2-码制 计算机中的码制原码&#xff08;True Form&#xff09;反码&#xff08;Ones Complement&#xff09…...

yum 离线软件安装

适用范围 支持YUM软件管理的操作系统&#xff1a; 银河麒麟 服务器操作系统V10统信服务器操作系统V20CentOS 系列 准备 准备一台可以连接互联网并且与离线安装的操作系统相同版本的操作系统&#xff0c;包括指令集类型相同。 安装下载工具 查询是否已经安装下载工具 yum…...

【C语言】17. 数据在内存中的存储

文章目录 一、整数在内存中的存储二、⼤⼩端字节序和字节序判断1、什么是⼤⼩端&#xff1f;2、为什么有⼤⼩端?3、练习1&#xff09;练习12&#xff09;练习23&#xff09;练习34&#xff09;练习45&#xff09; 练习56&#xff09;练习6 三、浮点数在内存中的存储1、浮点数的…...

二叉树概述

目录 一、二叉树的基本结构 二、二叉树的遍历 1.前序 2.中序 3.后序 4.层序遍历 三.计算二叉树的相关参数 1.计算节点总个数 2.计算叶子节点的个数 3.计算树的高度 4.计算第k层的子树个数 5.查找树中val为x的节点 四.刷题 1.单值二叉树 2.检查两棵树是否相同 3.一…...

【开源免费】基于SpringBoot+Vue.JS图书进销存管理系统(JAVA毕业设计)

博主说明&#xff1a;本文项目编号 T 082 &#xff0c;文末自助获取源码 \color{red}{T082&#xff0c;文末自助获取源码} T082&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...

惠普M126a连接共享打印机故障0x000006ba,系统不支持请求的命令,print spooler重复停止

故障说明&#xff1a;直连惠普M126a打印机正常打印&#xff0c;通过共享连接的报故障。 目前已知有三种故障&#xff1a; 1、0x000006ba报错2、系统不支持请求的命令3、print spooler重复停止&#xff08;或者&#xff0c;print spooler没有停止依然报故障&#xff09; 解决方…...

Chainlit集成LlamaIndex实现一个通过用户聊天对话的酒店预定系统

Agent 简介 “Agent”是一个自动推理和决策引擎。它接受用户输入/查询,并为执行该查询做出内部决策,以便返回正确的结果。关键的代理组件可以包括但不限于: 把复杂的问题分解成小问题选择要使用的外部工具+调用工具的参数计划一系列的任务将以前完成的任务存储在内存模块中…...

计算机网络之网络层超详细讲解

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 计算机网络之网络层超详细讲解 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; …...

代码随想录算法训练营day51|动态规划part13

回文子串 回文子串这里的递推式不太一样&#xff0c;dp[i] 和 dp[i-1] &#xff0c;dp[i 1] 看上去都没啥关系。所以要回归到回文的定义 而我们发现&#xff0c;判断一个子字符串&#xff08;字符串下标范围[i,j]&#xff09;是否回文&#xff0c;依赖于&#xff0c;子字符串…...

ESP8266自制桌宠机器狗

看到别人的桌宠机器狗有没有想要拥有一台的冲动,其实我们可以使用少量的资金自制一台机器狗 1 硬件 esp8266芯片 舵机 超声波传感器 2 接线 ESP8266配件...

【力扣】409.最长回文串

问题描述 思路解析 因为同时包含大小写字母&#xff0c;直接创建个ASCII表大小的桶来标记又因为是要回文子串&#xff0c;所以偶数个数的一定可以那么同时&#xff0c;对于出现奇数次数的&#xff0c;我没需要他们的次数-1&#xff0c;变为偶数&#xff0c;并且可以标记出现过…...

git 拉取代码时报错 gitignore Please move or remove them before you merge.

git 拉取代码时报错&#xff0c; The following untracked working tree files would be overwritten by merge: .gitignore Please move or remove them before you merge. 当你在使用 Git 进行代码拉取&#xff08;通常是执行 git pull 或 git merge 命令&#xff09;时遇到这…...

19,[极客大挑战 2019]PHP1

这个好玩 看到备份网站字眼&#xff0c;用dirsearch扫描 在kali里打开 爆破出一个www.zip文件 访问一下 解压后是这个页面 class.php <?php include flag.php; error_reporting(0); class Name{ private $username nonono; private $password yesyes; publi…...

MQTT消息服务器mosquitto介绍及说明

Mosquitto是一个开源的消息代理软件&#xff0c;支持MQTT协议&#xff08;消息队列遥测传输协议&#xff09;。MQTT是一种轻量级的发布/订阅消息传输协议&#xff0c;专为低带宽、不可靠网络环境下的物联网设备通信而设计。以下是关于Mosquitto服务器的一些介绍和说明&#xff…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

云原生安全实战:API网关Kong的鉴权与限流详解

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关&#xff08;API Gateway&#xff09; API网关是微服务架构中的核心组件&#xff0c;负责统一管理所有API的流量入口。它像一座…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

算法打卡第18天

从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7…...

前端高频面试题2:浏览器/计算机网络

本专栏相关链接 前端高频面试题1&#xff1a;HTML/CSS 前端高频面试题2&#xff1a;浏览器/计算机网络 前端高频面试题3&#xff1a;JavaScript 1.什么是强缓存、协商缓存&#xff1f; 强缓存&#xff1a; 当浏览器请求资源时&#xff0c;首先检查本地缓存是否命中。如果命…...

五、jmeter脚本参数化

目录 1、脚本参数化 1.1 用户定义的变量 1.1.1 添加及引用方式 1.1.2 测试得出用户定义变量的特点 1.2 用户参数 1.2.1 概念 1.2.2 位置不同效果不同 1.2.3、用户参数的勾选框 - 每次迭代更新一次 总结用户定义的变量、用户参数 1.3 csv数据文件参数化 1、脚本参数化 …...

【AI News | 20250609】每日AI进展

AI Repos 1、OpenHands-Versa OpenHands-Versa 是一个通用型 AI 智能体&#xff0c;通过结合代码编辑与执行、网络搜索、多模态网络浏览和文件访问等通用工具&#xff0c;在软件工程、网络导航和工作流自动化等多个领域展现出卓越性能。它在 SWE-Bench Multimodal、GAIA 和 Th…...

生产管理系统开发:专业软件开发公司的实践与思考

生产管理系统开发的关键点 在当前制造业智能化升级的转型背景下&#xff0c;生产管理系统开发正逐步成为企业优化生产流程的重要技术手段。不同行业、不同规模的企业在推进生产管理数字化转型过程中&#xff0c;面临的挑战存在显著差异。本文结合具体实践案例&#xff0c;分析…...