动手学深度学习笔记---4.6 环境与分布偏移

迁移学习:协变量偏移问题分析 迁移学习:协变量偏移问题分析 作者:禅与计算机程序设计艺术 1. 背景介绍 机器学习模型的性能很大程度上依赖于训练数据的质量和分布。但在实际应用中,训练数据和测试数据往往存在分布差异,这种现象被称为协变量偏移(Covariate Shift)问题。协变量偏移会导致模型在实际应用中 阅读详情

在实际应用场景中,导致模型预测异常的原因不仅仅来自模型参数或结构异常,还可能来自数据自身。神经网络不会理解数据,只会学习数据的特征。因此当数据出现分布异常时,很容易使得模型学到异常的特征,导致灾难性的预测结果.

协变量偏移:

协变量偏移可以说是分布偏移中最常遇到的一类,当输入分布改变时,若标签函数未改变,很容易导致将输入映射到异常标签中,导致错误结果。
以猫狗分类为例,当训练集中图像都来自真实到猫狗图像,而测试集图像均为卡通猫狗图像时,在这种训练集特征与测试集特征存在本质不同的数据集上训练模型,很容易因协变量偏移导致异常结果。

在这里插入图片描述


在这里插入图片描述

标签偏移

标签偏移实质上是一个与协变量偏移相反的问题,协变量偏移是标签分布未变,训练数据与测试数据的分布发生了变化,导致模型在训练集学习到的特征很难泛化到测试集,从而性能出现下降。

而标签偏移是在训练集与测试集中,数据的分布未变,但标签的分布发生了变化,例如训练集中猫的比列占90%,狗的比例占10%。而在测试集中,狗的比列占90%,猫的比列仅占10%。这种数据和标签的变化很容易导致模型出现过拟合或欠拟合的问题。

概念偏移

相较于常见的标签偏移和协变量偏移,概念偏移的现象往往在机器翻译任务中出现,例如不同地区的同一个词具有不同的概念解释。这种数据在输入到模型训练时,同一个词可能会因地区的不同获得不同的解释。

深度学习入门(十五)环境和分布偏移(了解) 环境和分布偏移 教材 分布偏移的类型 协变量偏移 标签偏移 概念偏移 分布偏移示例 医学诊断 自动驾驶汽车 非平稳分布 更多轶事 分布偏移纠正 经验风险与实际风险 协变量偏移纠正 标签偏移纠正 概念偏移纠正 学习问题的分类法 批量学习 在线学习 老虎机 控制 强化学习 考虑到环境 机器学习中的公平、责任和透明度 阅读详情

相关推荐

协变量偏移与归一化(Internal Covariate Shift & Normalization)

协变量偏移与归一化 深度学习(也可推广至所有机器学习)学习的是数据的分布。所以一旦分布出现了问题,学习的效率就会大打折扣。因为数据集的分布如果不能很好的体现整体的所有分布,比如人脸识别中训练集都是年轻的脸,但测试集中包含了老年人的脸;股票预测中的训练集数据来源于牛市但测试集中包含了熊市的数据等等。综合来说:测试集的数据标签分布可能和训练集是一样的,但是测试集的条件分布和训练集的条件分布是不同的。用数学语言来描述可以写成: 在这种情况下,我们在训练集上学习到的分布

wuhao1205的博客 828

Covariate Shift(协变量偏移)

转载于https://zhuanlan.zhihu.com/p/205183444 此系列文章为笔者学习工作中的阶段性总结,难免有纰漏,如有不正之处,欢迎指正,大家共同成长。Covariate Shift现象在机器学习的工业界应用中经常遇到,这个概念实际上属于Dataset Shift的一种。Dataset Shift概念在ML项目中,我们一般将采集到的真实场景的数据分成训练集和测试集(或验证集),并假设训练集和测试集符合独立同分布,这样才能保证在训练集上表现良好的模型同样适用于测试集(真实场景)。但是当因

lihe的博客 1万+

动手学深度学习4.9 环境和分布偏移-笔记&练习(PyTorch)

李沐老师《动手学深度学习(PyTorch版)》4.9 环境和分布偏移-笔记&练习详解

scdifsn的博客 3006

机器学习问题之一:协变量偏移(Covariate Shift)

例如,随着时间的推移,用户的偏好可能会发生变化,这会导致用户行为数据的协变量偏移。同理,在一个复杂的机器学习系统中,也会要求系统的各个子模块在训练过程中输入分布是稳定的,若是不满足这一条件,这会导致各个子模块数据的内部协变量偏移。协变量偏移(Covariate Shift)是机器学习和深度学习中的一个重要概念,指的是在模型训练和应用时,输入数据(特征)的分布发生了变化,但输出标签的分布保持不变。在机器学习中,一般假设模型输入数据的分布是稳定的,若是模型输入数据的分布发生变化,这种现象被称为协变量偏移。

搏博的专栏 3653

动手深度学习笔记(二十三)4.9. 环境和分布偏移

动手深度学习笔记(二十三)4.9. 环境和分布偏移4. 多层感知机4.9. 环境和分布偏移4.9.1. 分布偏移的类型4.9.1.1. 协变量偏移 4. 多层感知机 4.9. 环境和分布偏移 前面我们学习了许多机器学习的实际应用,将模型拟合各种数据集。 然而,我们从来没有想过数据最初从哪里来?以及我们计划最终如何处理模型的输出? 通常情况下,开发人员会拥有一些数据且急于开发模型,而不关注这些基本问题。 许多失败的机器学习部署(即实际应用)都可以追究到这种方式。 有时,根据测试集的精度衡量,模型表现得非常出色

juluwangriyue的博客 1063

山东大学软件工程应用与实践——GMSSL开源库(六)——SM9密钥交换协议

2021SC@SDUSC 文章目录基本概念符号及辅助算法SM9密钥交换协议 基本概念 1976年,Diffie和Hellman在其题为《密码学的新方向》的论文中首次给出了公钥密码学的定义,并提出了Diffie-Hellman密钥交换算法。该算法解决了对称密码体制中的密钥分发问题,使得通信双方可以通过公开信道安全地交换共享密钥。 使用SM9通信的双方通过对方的标识和自身的私钥,经过两次或者可选的三次信息传递过程,计算获取一个由双方共同决定的共享秘密密钥。该密钥可以作为对称密码算法的会话密钥,其中可选步骤用来实

m0_51588039的博客 1988

【动手学深度学习】4.9. 环境和分布偏移

.机器学习应用常被忽视数据来源和模型输出处理。许多模型在测试集上表现好,但数据分布改变时会部署失败,甚至模型决策本身可能破坏数据分布(如贷款模型基于“穿牛津鞋就会还款”决策,导致所有人都穿牛津鞋但信用未提升)。解决这些问题需多方面的思考和方法,如优化数据、强化学习、考虑算法伦理等,以提升机器学习系统的可靠性和适应性。.分布偏移指训练与测试数据分布不同,如训练数据来自分布 pS(x,y)p_S(\mathbf{x}, y)pS​(x,y),测试数据来自 pT(x,y)p_T(\mathbf{x}, y)pT​

-- 1211

CodeBlocks如何将英文环境改为中文

一、下载汉化包(链接如下) 链接:https://pan.baidu.com/s/166U9WGPbJXu2hyD7q9EiJQ 提取码:2333 二、选择路径 将汉化包中的文件(CodeBlocks.mo、zh_CN.mo、zh_CN.po)放到CodeBlocks安装路径下的​​​​​​CodeBlocks/share/CodeBlocks/locale/zh_CN文件夹中,路径中的文件夹没有就新建。 注:此处需严格按照要求来,切勿自定义文件夹名 三、内部调试 打开CodeBlocks,..

云隐雾匿的博客 2万+

【动手学深度学习PyTorch】环境和分布偏移

RfExy∼PℓfxyRfExy∼P​ℓfxy)](f):模型ℓ\ellℓ):损失函数§:真实的联合分布这个 (R(f)) 就叫做实际风险 (True Risk)。它衡量的是:模型在真实世界分布下,长期平均会犯多大错误。模型在训练阶段一次性拿到一个固定的数据集xiyii1nxi​yi​i1n​,在此数据上进行训练。训练完成后,模型固定下来,在测试阶段直接用于预测。数据不是一次性给出,而是顺序到达xt。

feizuiku0116的博客 494

离线路径规划服务Graphhopper

离线路径规划服务Graphhopper 本文主要探索使用Graphhopper搭建离线路径规划服务,需要掌握一定的JAVA基础环境配置的知识 文章目录离线路径规划服务Graphhopper前言一、Graphhopper是什么?二、使用步骤1.下载Graphhopper2.从OpenStreetMap下载路图数据3.安装Graphhopper所需环境4.修改配置5.启动Graphhopper总结 前言 在外网环境中可以使用百度、高德等第三方的sdk用以实现路径规划的功能,由于项目的需要,在离线环境中需要使

Sysdark的博客 7557

电压电流双闭环PFC单相PWM整流

电压电流双闭环PFC单相整流。仿真及代码

xht2403267701的博客 6051

零基础-动手学深度学习-4.9. 环境和分布偏移

通过将基于模型的决策引入环境,我们可能会破坏模型(因为模型决策在于穿皮鞋的人更不会欠款,导致了所有人开始穿皮鞋,这也让我们的决策失去了原本的意义)

Nicholas_PFD的博客 926

pwscf与wannier90 Hands-On实战训练(一)——费米面计算为例

系列文章目录 Quantum Espresso Hands-On实战训练(三)——DOS计算 文章目录系列文章目录计算过程pwscf直接得到等能面pwscf和wannier90得到等能面pwscf直接得到等能面1. scf2. nscf3. 后处理pwscf和wannier90得到等能面1. Kpoints2. scf3. nscf4. pw2wan及wannier90.x5. XCrySDen可视化 计算过程 pwscf直接得到等能面 pwscf和wannier90得到等能面 pwscf直接得到等能面

weixin_45973682的博客 5070

李沐动手学深度学习第四章-4.9.环境和分布偏移

无

nousefully的博客 1412

​​瑞芯微RK系列 vs 全志系列芯片:终极选型指南(2025版)​

​。

jinxi996611的博客 1万+

【1】Java 部分笔试题解析

解析A.abstract关键字应该放在class关键字之前。C.抽象方法不能有方法体。D缺少了class关键字。

博客 3941

【动手学深度学习】环境和分布偏移

【动手学深度学习】环境和分布偏移

weixin_45057858的博客 998

【单智能体】AI 数据分析智能体案例讲解(附完整源码)

本案例将引导您构建一个基于 AI 的数据分析智能体,让用户能够通过自然语言查询来分析 CSV 和 Excel 文件中的数据,无需掌握 SQL 知识。该智能体使用 Agno Agent 框架集成 OpenAI GPT-4o 模型,并利用 DuckDB 提供高效的数据处理能力。

rengang66的博客 238

《动手学深度学习(PyTorch版)》笔记4.9

在一个经典的情景中,假设训练数据是从某个分布pS​xy中采样的,但是测试数据将包含从不同分布pT​xy中抽取的未标记样本。如果没有任何关于pS​和pT​之间相互关系的假设,学习到一个分类器是不可能的。

weixin_73004416的博客 1286

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

深度学习笔记(一)——线性回归、Softmax回归、多层感知机、环境和分布偏移

写本系列的目的是回顾已经学过的知识、记录新学习的知识或是记录心得理解,方便自己以后快速复习,减少遗忘。深度学习主要看的是的视频,书是李沐老师的。笔记也基本来于此。

qq_65078669的博客 1033

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

《动手学深度学习 Pytorch版》 4.9 环境和分布偏移

整节理论,详见书本。

AncilunKiang的博客 230

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

动手学深度学习|notebook教程

含 PyTorch、NumPy/MXNet、TensorFlow 和 PaddlePaddle 实现。被全球 70 多个国家 500 多所大学用于教学。下面是整理好的,可以直接运行的notebook。面向中文读者的能运行、可讨论的深度学习教科书。

weixin_43262264的博客 2073

【动手学深度学习】#3 多层感知机

多层感知机;权重衰减;暂退法;梯度消失与梯度爆炸;Xavier初始化;分布偏移纠正

mojin2005的博客 987

《动手学深度学习》参考答案(第二版)-第四章

  最近在学习《动手学深度学习》,结合百度和课后的大家的讨论(侵删),整理出这一份可能并不完全正确的参考答案(菜鸡的做题记录),因为个人水平有限,有错误的地方欢迎在 公众号 联系我,后面我对错误进行更正时候,会在文章末尾鸣谢,在这里先感谢大家了。   在我的 公众号 中会有 清晰的pdf版本 给到大家,pdf中 代码 可以直接复制实践 ,欢迎大家关注我的 公众号 ,发送神秘代码:d2l4,即可获得本章的pdf版本。(求大佬们关注下吧,公众号关注者人丁稀少,嘤嘤嘤)   求求关注下我的优快云吧,后面会继续

平平无奇小天才的博客 4965

动手学深度学习04-多层感知机

动手学深度学习04-多层感知机

感谢所有乐于奉献的人,在此不一一具名 474

《动手学深度学习》之多层感知机

文章目录多层感知机从线性到非线性激活函数ReLU函数sigmoid函数tanh函数模型选择、欠拟合和过拟合训练误差和泛化误差统计学习理论模型复杂性模型选择验证集KKK折交叉验证权重衰减范数与权重衰减Dropout正向传播、反向传播和计算图数值稳定性和模型初始化梯度消失和梯度爆炸参数初始化默认初始化Xavier初始化环境和分布偏移分布偏移的类型协变量偏移标签偏移概念偏移分布偏移示例医学诊断自动驾驶汽车非平稳分布更多轶事分布偏移纠正经验风险与真实风险协变量偏移纠正标签偏移纠正概念偏移纠正总结 多层感知机 我们可

陌若安生的博客 1328
上一篇: 动手学深度学习笔记---4.5 数值稳定性与模型初始化
下一篇: Task03-大模型的有害性
Aaaaaki
博客等级 码龄9年 884粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aaaaaki

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值