covariate shift现象的解释
一、什么是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现象的解释相关推荐
- 【机器学习】covariate shift现象的解释
一.什么是covariate shift? 在论文中经常碰到covariate shift这个词,网上相关的中文解释比较少.你可能会在介绍深度学习Batch Normalization方法的论文到中看 ...
- covariate shift现象以及解决方法
最近在重读paper<Batch Normalization>的时候,发现它在文中反复提到了一个概念"covariate shift",而batch-Normaliza ...
- 【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 ...
- Covariate Shift(协变量偏移)
转载于https://zhuanlan.zhihu.com/p/205183444 此系列文章为笔者学习工作中的阶段性总结,难免有纰漏,如有不正之处,欢迎指正,大家共同成长. Covariate Sh ...
- Covariate Shift
转载于https://zhuanlan.zhihu.com/p/205183444 此系列文章为笔者学习工作中的阶段性总结,难免有纰漏,如有不正之处,欢迎指正,大家共同成长. Covariate Sh ...
- 论文阅读Batch Normalization: Accelerating Deep Network Training byReducing Internal Covariate Shift
论文阅读Batch Normalization: Accelerating Deep Network Training byReducing Internal Covariate Shift 全文翻译 ...
- 《Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shift》阅读笔记与实现
今年过年之前,MSRA和Google相继在ImagenNet图像识别数据集上报告他们的效果超越了人类水平,下面将分两期介绍两者的算法细节. 这次先讲Google的这篇<Batch Normali ...
- 【翻译】Batch Normalization: Accelerating Deep Network Trainingby Reducing Internal Covariate Shift
Batch Normalization: Accelerating Deep Network Trainingby Reducing Internal Covariate Shift Sergey I ...
- 【论文泛读】 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
[论文泛读] Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift ...
最新文章
- Python+selenium 自动化高级应用篇:借助pyautogui实现web前端带轨迹拖拽功能,解决ActionChains拖拽失效问题
- win32汇编定时器简单Demo
- C++标准输出流对象
- 编译 PHP7.0为什么那么慢,CentOS 7编译安装php7.0.7以及可能遇到的问题的解决方案...
- python与或非位运算_python位运算
- 艰难时局下电子发现蓬勃发展
- 安卓系统车牌离线识别,优秀的车牌识别算法
- 个人永久性免费-Excel催化剂功能第29波-追加中国特色的中文相关自定义函数
- javafx 教程_Java验证(javafx)
- python安装报错:User installations are disabled via policy on the machine. 0x80070643
- Pr 复古胶片老电影回忆效果
- 如何设置无线路由连接无线wifi
- 浅析云存储技术的原理与架构
- 【原理】#01红外热成像仪的工作原理介绍
- 华为任正非:管理的灰度
- 贺利氏收购瑞士安格-贺利氏全部股份 成为全球最大贵金属公司
- laravel框架中实现定时任务
- Spring Boot 使用 Druid 连接池详解
- java txt数据导入excel,java导入excle文件《如何用java 将txt数据导入excel》
- AD不修改元件库直接修改PCB元件让丝印避开焊盘的方法
热门文章
- Ubuntu安装,配置全教程
- 用gcc生成静态库和动态库.pdf以及opencv的使用
- html input 禁止输入中文
- Redis 本身有持久化,为什么还要写进 MySQL?
- 大型工厂巡查耗时耗力?教你一招,轻松管理工厂
- iOS xib设置阴影
- ios xib 初始化高度_iOS xib自定义,高度减少64
- 计算机的这些基础知识,你未必全都知道,不信你看看?
- 在进入市场之前,电子产品需要准备这6个认证
- PCL1.12.1无效的宏定义BOOST_DEFINITIONS -DBOOST_ALL_NO_LIB