KMM
概
MMD量化了两组数据是否来自同一个分布的可能性, 那么如何利用这份信息来更好地训练, 增加模型的泛化性呢?
主要内容
我们有两组数据\(Z = ((x_1, y_1), (x_2, y_2), \ldots, (x_m, y_m)) \subseteq \mathcal{X} \times \mathcal{Y}\), \(Z' = ((x_1', y_1'), (x_2', y_2'), \ldots, (x_n', y_n')) \subseteq \mathcal{X} \times \mathcal{Y}\), 分别来自分布\(\mathrm{Pr}(x, y)\)和\(\mathrm{Pr}'(x, y)\).
一般来说, 我们训练一个模型(分类也好回归也罢), 可以归结为如下的风险函数
\]
但是我们真正想要优化的是\(R(\mathrm{Pr}', \theta, \ell(x, y, \theta))\), 当然一般的做法是假设二者是一致的. 但实际情况可能是二者并不一致, 但是注意到
\]
并记\(\beta(x, y) := \frac{\mathrm{Pr}'(x, y)}{\mathrm{Pr}(x, y)}\)(若成立), 则
\]
这实际上可以理解为对样本的一个重加权, 所以现在的问题便是, 如何估计\(\beta(x, y)\), 本文研究一种特殊的情况:
\]
即 covariate shift, 此时
\]
首先, 根据MMD我们知道, 两个分布差异性可以量化为
\]
当我们限制\(\mathcal{F}\)为 universal RKHS \(\mathcal{H}\)的时候, 上式可表示为
= \sup_{\|f\|_{\mathcal{H}} \le 1} \mathbb{E}_p [\langle \phi_x, f\rangle_{\mathcal{H}}] - \mathbb{E}_q [\langle \phi_x, f\rangle_{\mathcal{H}}] = \|\mu_p-\mu_q\|_{\mathcal{H}}.
\]
在此处, 我们关注(用\(\phi(x)\)表示\(\phi_x\))
\]
即我们希望找到一个权重\(\beta(x)\)使得上式最小, 由于分布的一些特殊性质, 完整的问题表述如下:
\mathrm{s.t.}\quad \beta(x) \ge 0, \mathbb{E}_{x \sim \mathrm{Pr}(x)}[\beta(x)] = 1.
\]
在实际问题中, 我们只有分布中的有限的采样, 也就是开头的\(Z, Z'\), 上述问题变为
\]
其中\(\kappa_i := \sum_{j=1}^{n} k(x_i, x_j')\). 于是, 我们优化如下的问题
\mathrm{s.t.} \quad \beta_i \in [0, B], |\sum_{i=1}^m \beta_i - m| \le m\epsilon.
\]
限制条件的前者限制了差异的大小, 后者则是希望其迫近概率分布.
KMM的更多相关文章
- Kotlin/Native KMM项目架构
一.什么是KMM? Kotlin Multiplatform Mobile ( KMM ) 是一个 SDK,旨在简化跨平台移动应用程序的创建.在 KMM 的帮助下,您可以在 iOS 和 Android ...
- Kotlin/Native 用KMM写Flutter插件
一.用KMM写Flutter插件 Google官方有一个写Flutter例子How to write a Flutter plugin,这里把Google plugin_codelab 例子改成用KM ...
- UI数据库
一.数据库 SQL: SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集, 是一种功能齐全的数据库语言. 二.数据库管理系统 数据 ...
- 采用ubuntu系统来安装tensorflow
最近在学习google新开源的深度学习框架tensorflow.发现安装它的时候,需要依赖python2.7.X;我之前一直使用的linux是centos.而centos不更新了,里面的自带的pyth ...
- OAF_开发系列07_实现OAF下拉菜单的上下联动Poplist Synchor(案例)
20150706 Created By BaoXinjian
- SQLServer : EXEC和sp_executesql的区别
MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql.通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有.还有一个最大的好处就 ...
- 01Spring_基本jia包的导入andSpring的整体架构and怎么加入日志功能
1.什么是Spring : v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:u ...
- iOS之类的本质
1.本质 类的本质其实也是一个对象(类对象) 程序中第一次使用该类的时候被创建,在整个程序中只有一份. 此后每次使用都是这个类对象,它在程序运行时一直存在. 类对象是一种数据结构,存储类的基本信息:类 ...
- rfc2616 HTTP Protocl Analysis
catalog . Introduction . Protocol Parameters . HTTP Message . Request . Response . HTTP Method.Conte ...
随机推荐
- How is Quality Score Calculated?
Google determines Quality Score slightly differently for each of the different advertising networks ...
- 3.6 String 与 切片&str的区别
The rust String is a growable, mutable, owned, UTF-8 encoded string type. &str ,切片,是按UTF-8编码对St ...
- git删除了本地文件,从远程仓库中恢复
在本地删除了文件,使用git pull,无法从远程项目中拉取下来 具体操作 查看项目的状态,会显示出你删除的数据 git status 进入被删除的文件的目录下,假设删除的文件名为 test.txt ...
- Linux:-e、-d、-f、-L、-r、-w、-x、-s、-h、
-e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真 -L fil ...
- java 对 final 关键字 深度理解
基础理解 : 1.修饰类 当用final去修饰一个类的时候,表示这个类不能被继承.处于安全,在JDK中,被设计为final类的有String.System等,这些类不能被继承 .注意:被修饰的类的成员 ...
- 阿里巴巴Java开发手册摘要(一)
一命名风格 1.代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结尾. 反例:_name / $name / name_ / name$ 2.类名使用UpperCamelCase风格 ...
- 【划重点】Python遍历列表的四种方法
一.通过for循环直接遍历 user1 = ["宋江","林冲","卢俊义","吴用"] for user in use ...
- 车载以太网第二弹 | 测试之实锤-IOP测试实践
前言 上一期"物理层PMA测试实践",咱们从环境设备组成.被测对象组成再到测试过程和测试结果,将完整的PMA测试过程做了一个经验分享. 由下层开始逐层"披沙沥金" ...
- ciscn_2019_n_8 1
拿到题目老样子先判断是多少位的程序 可以看到是32位的程序,然后再查看开启的保护 然后将程序放入ida进行汇编 先shift+f12查看程序是否有system和binsh 可以看到有system和bi ...
- Blazor Webassembly多标签页实现非iframe的实现
前面用iframe实现了多标签页,这次是不用iframe实现的多标签页.参考了一下Ant Design Blazor. 基本功能已经都实现了不论是标签滚动.激活.左移.右移.关闭其他,还是在内容页跳转 ...