一、什么是covariate shift?
在论文中经常碰到covariate shift这个词,网上相关的中文解释比较少。你可能会在介绍深度学习Batch Normalization方法的论文到中看到covariate shift这个词,并且所有看过这篇论文的或者实际做过工程的人,都知道BN这种归一化手段很好用,可以避免covariate shift

那么covariate shift到底是什么?
不用想得太复杂,covariate shift最早只是机器学习中的一个问题。同时迁移学习会经常涉及到这个概念。
假设x是属于特征空间的某一样本点,y是标签。covariate这个词,其实就是指这里的x,那么covariate shift可以直接根据字面意思去理解:样本点x的变化。
这么简单?没错就是这么简单!

我们讲的规范一点:
假设q1(x)是测试集中一个样本点的概率密度,q0(x)是训练集中一个样本点的概率密度。最终我们估计一个条件概率密度p(y|x,θ),它由x和一组参数θ={θ1,θ2......θm}所决定。对于一组参数来说,对应loss(θ)函数评估性能的好坏
综上,当我们找出在q0(x)分布上最优的一组θ'时,能否保证q1(x)上测试时也最好呢?
传统机器学习假设训练集和测试集是独立同分布的,即q0(x)=q1(x),所以可以推出最优θ'依然可以保证q1(x)最优。但现实当中这个假设往往不成立,伴随新数据产生,老数据会过时,当q0(x)不再等于q1(x)时,就被称作covariate shift

二、怎么解决covariate shift?
以上已经知道一个样本点分别在训练集和测试集上的概率密度q0(x)和q1(x),实际当中的解决方案是附加一个由x决定的权值

使得在训练过程当中对于q1(x)很大或者q0(x)很小的样本视作“重要”样本,这样的样本是有益于测试集预测的,我们应该尽量把它分类正确。而对于q1(x)很小或者q0(x)很大的样本,它只是被时代遗弃的“老数据”,这些样本对于模型训练的意义也是无关紧要了

举一个形象的例子:

现在我们要通过多项式回归预测某一个函数。数据产生通过下式,并且用正态分布产生噪声加在上面

通过一个其中产生q0(x)当作训练集,大小为n=100

假设模型的形式是,最终训练得到一根直线去尽可能拟合这些点。

实验结果如左图,最终得到一条线,对应图中OLS

根据其中生成测试集q1(x),如右图

最理想的情况,我们直接拟合测试集的点,得到右图中的实线,和左边的线完全不一样,看出covariate shift发生了。

但是我们需要测试集的辅助来解决covariate shift问题(如果直接训练测试集就毫无意义了),求得

通过附加权值的方法,最终训练得到左图中虚线WLS

可以看出最终得到的模型,是可以很好的适应测试集的。

从迁移学习的角度看,这也是一种用source domain的标签数据,结合target domain的无标签数据,指导进行知识的迁移的方法。
from: https://blog.csdn.net/mao_xiao_feng/article/details/54317852

covariate shift现象的解释相关推荐

  1. 【机器学习】covariate shift现象的解释

    一.什么是covariate shift? 在论文中经常碰到covariate shift这个词,网上相关的中文解释比较少.你可能会在介绍深度学习Batch Normalization方法的论文到中看 ...

  2. covariate shift现象以及解决方法

    最近在重读paper<Batch Normalization>的时候,发现它在文中反复提到了一个概念"covariate shift",而batch-Normaliza ...

  3. 【BN】《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》

    ICML-2015 在 CIFAR-10 上的小实验可以参考如下博客: [Keras-Inception v2]CIFAR-10 文章目录 1 Background and Motivation 2 ...

  4. Covariate Shift(协变量偏移)

    转载于https://zhuanlan.zhihu.com/p/205183444 此系列文章为笔者学习工作中的阶段性总结,难免有纰漏,如有不正之处,欢迎指正,大家共同成长. Covariate Sh ...

  5. Covariate Shift

    转载于https://zhuanlan.zhihu.com/p/205183444 此系列文章为笔者学习工作中的阶段性总结,难免有纰漏,如有不正之处,欢迎指正,大家共同成长. Covariate Sh ...

  6. 论文阅读Batch Normalization: Accelerating Deep Network Training byReducing Internal Covariate Shift

    论文阅读Batch Normalization: Accelerating Deep Network Training byReducing Internal Covariate Shift 全文翻译 ...

  7. 《Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shift》阅读笔记与实现

    今年过年之前,MSRA和Google相继在ImagenNet图像识别数据集上报告他们的效果超越了人类水平,下面将分两期介绍两者的算法细节. 这次先讲Google的这篇<Batch Normali ...

  8. 【翻译】Batch Normalization: Accelerating Deep Network Trainingby Reducing Internal Covariate Shift

    Batch Normalization: Accelerating Deep Network Trainingby Reducing Internal Covariate Shift Sergey I ...

  9. 【论文泛读】 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

    [论文泛读] Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift ...

最新文章

  1. Python+selenium 自动化高级应用篇:借助pyautogui实现web前端带轨迹拖拽功能,解决ActionChains拖拽失效问题
  2. win32汇编定时器简单Demo
  3. C++标准输出流对象
  4. 编译 PHP7.0为什么那么慢,CentOS 7编译安装php7.0.7以及可能遇到的问题的解决方案...
  5. python与或非位运算_python位运算
  6. 艰难时局下电子发现蓬勃发展
  7. 安卓系统车牌离线识别,优秀的车牌识别算法
  8. 个人永久性免费-Excel催化剂功能第29波-追加中国特色的中文相关自定义函数
  9. javafx 教程_Java验证(javafx)
  10. python安装报错:User installations are disabled via policy on the machine. 0x80070643
  11. Pr 复古胶片老电影回忆效果
  12. 如何设置无线路由连接无线wifi
  13. 浅析云存储技术的原理与架构
  14. 【原理】#01红外热成像仪的工作原理介绍
  15. 华为任正非:管理的灰度
  16. 贺利氏收购瑞士安格-贺利氏全部股份 成为全球最大贵金属公司
  17. laravel框架中实现定时任务
  18. Spring Boot 使用 Druid 连接池详解
  19. java txt数据导入excel,java导入excle文件《如何用java 将txt数据导入excel》
  20. AD不修改元件库直接修改PCB元件让丝印避开焊盘的方法

热门文章

  1. Ubuntu安装,配置全教程
  2. 用gcc生成静态库和动态库.pdf以及opencv的使用
  3. html input 禁止输入中文
  4. Redis 本身有持久化,为什么还要写进 MySQL?
  5. 大型工厂巡查耗时耗力?教你一招,轻松管理工厂
  6. iOS xib设置阴影
  7. ios xib 初始化高度_iOS xib自定义,高度减少64
  8. 计算机的这些基础知识,你未必全都知道,不信你看看?
  9. 在进入市场之前,电子产品需要准备这6个认证
  10. PCL1.12.1无效的宏定义BOOST_DEFINITIONS -DBOOST_ALL_NO_LIB