当前位置: 首页 > 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…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

​​企业大模型服务合规指南:深度解析备案与登记制度​​

伴随AI技术的爆炸式发展&#xff0c;尤其是大模型&#xff08;LLM&#xff09;在各行各业的深度应用和整合&#xff0c;企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者&#xff0c;还是积极拥抱AI转型的传统企业&#xff0c;在面向公众…...

验证redis数据结构

一、功能验证 1.验证redis的数据结构&#xff08;如字符串、列表、哈希、集合、有序集合等&#xff09;是否按照预期工作。 2、常见的数据结构验证方法&#xff1a; ①字符串&#xff08;string&#xff09; 测试基本操作 set、get、incr、decr 验证字符串的长度和内容是否正…...