Pytorch 环境和分布偏移与错误使用机器学习例子

news2025/1/16 8:08:47

 假设我们训练了一个贷款申请人违约风险模型,用来预测谁将偿还贷款或违约。 这个模型发现申请人的鞋子与违约风险相关(穿牛津鞋申请人会偿还,穿运动鞋申请人会违约)。 此后,这个模型可能倾向于向所有穿着牛津鞋的申请人发放贷款,并拒绝所有穿着运动鞋的申请人。

这种情况可能会带来灾难性的后果。 首先,一旦模型开始根据鞋类做出决定,顾客就会理解并改变他们的行为。 不久,所有的申请者都会穿牛津鞋,而信用度却没有相应的提高。 总而言之,机器学习的许多应用中都存在类似的问题: 通过将基于模型的决策引入环境,我们可能会破坏模型

目录

1、协变量偏移

2、标签偏移

3、概念偏移

 4、一些引起问题的例子:


1、协变量偏移

在不同分布偏移中,协变量偏移可能是最为广泛研究的。 这里我们假设:虽然输入的分布可能随时间而改变, 但标签函数(即条件分布P(y∣x))没有改变。 统计学家称之为协变量偏移(covariate shift), 因为这个问题是由于协变量(特征)分布的变化而产生的。 虽然有时我们可以在不引用因果关系的情况下对分布偏移进行推断, 但在我们认为x导致y的情况下,协变量偏移是一种自然假设。

考虑一下区分猫和狗的问题:训练数据包括下图所示图像:

在测试时,使用下图所示图像:

训练集由真实照片组成,而测试集只包含卡通图片。 假设在一个与测试集的特征有着本质不同的数据集上进行训练, 如果没有方法来适应新的领域,可能会有麻烦。

2、标签偏移

标签偏移(label shift)描述了与协变量偏移相反的问题。 这里我们假设标签边缘概率P(y)可以改变, 但是类别条件分布P(x∣y)在不同的领域之间保持不变。 当我们认为y导致x时,标签偏移是一个合理的假设。 例如,预测患者的疾病,我们可能根据症状来判断, 即使疾病的相对流行率随着时间的推移而变化。 标签偏移在这里是恰当的假设,因为疾病会引起症状。 在另一些情况下,标签偏移和协变量偏移假设可以同时成立。 例如,当标签是确定的,即使y导致x,协变量偏移假设也会得到满足。 有趣的是,在这些情况下,使用基于标签偏移假设的方法通常是有利的。 这是因为这些方法倾向于包含看起来像标签(通常是低维)的对象, 而不是像输入(通常是高维的)对象。

3、概念偏移

我们也可能会遇到概念偏移(concept shift): 当标签的定义发生变化时,就会出现这种问题。 这听起来很奇怪——一只猫就是一只猫,不是吗? 然而,其他类别会随着不同时间的用法而发生变化。 精神疾病的诊断标准、所谓的时髦、以及工作头衔等等,都是概念偏移的日常映射。 事实证明,假如我们环游美国,根据所在的地理位置改变我们的数据来源, 我们会发现关于“软饮”名称的分布发生了相当大的概念偏移, 如下图所示:

 4、一些引起问题的例子:

①医学诊断

有一家医疗公司他们正在研究一种血液检测方法,主要针对一种影响老年男性的疾病, 并希望利用他们从病人身上采集的血液样本进行研究。 然而,从健康男性身上获取血样比从系统中已有的病人身上获取要困难得多。 作为补偿,这家初创公司向一所大学校园内的学生征集献血,作为开发测试的健康对照样本。

 

然而,这可能是因为受试者在年龄、激素水平、体力活动、 饮食、饮酒以及其他许多与疾病无关的因素上存在差异。 这对检测疾病的分类器可能并不适用。 这些抽样可能会遇到极端的协变量偏移。 此外,这种情况不太可能通过常规方法加以纠正。 简言之,他们浪费了一大笔钱。

②自动驾驶汽车

对于一家想利用机器学习来开发自动驾驶汽车的公司,一个关键部件是“路沿检测器”。 由于真实的注释数据获取成本很高,他们想出了一个“聪明”的想法: 将游戏渲染引擎中的合成数据用作额外的训练数据。 这对从渲染引擎中抽取的“测试数据”非常有效,但应用在一辆真正的汽车里真是一场灾难。 正如事实证明的那样,路沿被渲染成一种非常简单的纹理。 更重要的是,所有的路沿都被渲染成了相同的纹理,路沿检测器很快就学习到了这个“特征”。

 

③美军预测森林是否有坦克

他们在没有坦克的情况下拍摄了森林的航拍照片,然后把坦克开进森林,拍摄了另一组照片。 使用这两组数据训练的分类器似乎工作得很好。 不幸的是,分类器仅仅学会了如何区分有阴影的树和没有阴影的树: 第一组照片是在清晨拍摄的,而第二组是在中午拍摄的。

 

④非平稳性分布发生的问题

当分布变化缓慢并且模型没有得到充分更新时,就会出现更微妙的情况: 非平稳分布

  • 训练一个计算广告模型,但却没有经常更新(例如,一个2009年训练的模型不知道一个叫iPad的不知名新设备刚刚上市);

  • 建立一个垃圾邮件过滤器,它能很好地检测到所有垃圾邮件。但是,垃圾邮件发送者们变得聪明起来,制造出新的信息,看起来不像我们以前见过的任何垃圾邮件;

  • 建立一个产品推荐系统,它在整个冬天都有效,但圣诞节过后很久还会继续推荐圣诞帽。

⑤其他例子

  • 建立一个人脸检测器,它在所有基准测试中都能很好地工作,但是它在测试数据上失败了:有问题的例子是人脸充满了整个图像的特写镜头(训练集中没有这样的数据)。

  • 为美国市场建立了一个网络搜索引擎,并希望将其部署到英国。

  • 通过在一个大的数据集来训练图像分类器,其中每一个大类的数量在数据集近乎是平均的,比如1000个类别,每个类别由1000个图像表示。但是将该系统部署到真实世界中,照片的实际标签分布显然是不均匀的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/159017.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录算法训练营第十六天二叉树 java : 104.二叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数

文章目录前言深度是个啥,高度又是啥Leetcode 104.二叉树的最大深度题目讲解Leetcode 111.二叉树的最小深度题目讲解Leetcode 222.完全二叉树的节点个数(优先掌握递归题目讲解总结前言 今天将主要围绕 深度和高度 来展开 复习一下递归三部曲 确定递归函…

已解决微软Office2016 Excel卡顿\缓慢、打开第二个文件加载很慢问题(亲测有效)

已解决微软Office2016 Excel卡顿\缓慢、打开第二个文件加载很慢问题(亲测有效) 文章目录问题描述问题分析解决方法1解决方法2解决方法31) 修改基本设置2)修改配置文件问题描述 我的电脑环境是:Windows 10 Excel 2016版本。 文件…

【前端之旅】Nginx快速入门

一名软件工程专业学生的前端之旅,记录自己对三件套(HTML、CSS、JavaScript)、Jquery、Ajax、Axios、Bootstrap、Node.js、Vue、小程序开发(Uniapp)以及各种UI组件库、前端框架的学习。 【前端之旅】Web基础与开发工具 【前端之旅】手把手教你安装VS Code并附上超实用插件…

【Blender UV映射02】智能UV映射 创建和应用法线纹理

写在前面 前面的学习记录: 【Blende UV映射01】创建UV 使用UV贴图处理纹理 依旧是跟着Blender 2.8 UV Mapping教程,本文是教程的P8-P12的过程记录。 1 一些操作记录 调整滚轮缩放 如果发现Blender缩放过快, 键盘的"/"数字键…

Java并发编程实战 学习笔记 Day7

并发编程是比较进阶的知识,涉及到很多底层的东西,学习起来是比较困难的。并发编程的bug更多的是偶发性的,很难复现,排查起来也很困难,要想快速解决问题,就要理解并发编程的本质,追本溯源&#x…

Android ANR bugreport log分析

最近工作中频繁遇到设备ANR问题,而且是概率性的那种,于是决定花点时间找找规律复现分析下 说道这里,抓日志是问题解决的最有效途径,这里不得不说一下 bugreport log,其实网上关于它的分析方法有很多,在此仅仅是为了记录…

小型水库在线监测解决方案

一、方案背景水利部全国水利普查显示我国共有水库98002座,其中小型水库93308座。水库对防汛减灾、供水保障和农业灌溉等至关重要,水库的稳定运行关系到下游人民群众的生命财产安全,关系到当地经济发展和社会稳定。在2020年11月18日国务院常务…

EasyVim:简单强大的VIM配置

EasyVim 简单强大的vim配置,熟练后可大大提高开发效率(VS Code的两倍以上)。 安装 安装过程需要从github下载很多插件,国内尽量挂VPN git clone https://github.com/yuesong-feng/EasyVim cd EasyVim/ sh ./install.sh vim :P…

JavaScript基础(16)_数组方法、数组遍历、foreach

数组方法unshift():向数组开头添加一个或多个元素,并返回新的数组长度。向前边插入元素以后,其他的元素索引会依次调整。push():向数组的末尾添加一个或多个元素,并返回数组新的长度。该方法会将数组新的长度作为返回值返回。shift():删除数组…

【工具推荐】 Obsidian 插件 Obsidian to Flomo 一键同步内容到 Flomo 插件

目录一、Obsidian、Flomo、Obsidian to Flomo 他们都是什么?1. 什么是 Obsidian ?2. 什么是Flomo ?3. 什么是Obsidian to Flomo ?二、如何安装 Obsidian to Flomo ?三、插件使用方法1. 启用插件并配置API四、如何使用插…

《2022大数据产业年度创新技术突破》榜重磅发布丨金猿奖

‍年度金猿榜单/奖项本届“数据猿年度金猿策划活动——2022大数据产业创新技术突破榜单/奖项”由金猿&数据猿共同推出。‍数据智能产业创新服务媒体——聚焦数智 改变商业2022年下半年度,由数据猿、金猿组委会共同推出的第五届 “年度金猿季大型主题策划活动”…

Unity Netcode for GameObjects多人联机(源文件)

一、安装Netcode for Gameobjects Netcode for Gameobjects是Unity新推出的联机解决方案,该解决方案目前处于初期,相关功能不是很完善,但是用起来还不错。下面介绍一下相关用法。 首先下载安装Netcode for Gameobjects,其官方网站…

Elasticsearch入门介绍及Linux安装

前言Elasticsearch是一款分布式高性能的全文搜索引擎,为什么会需要这个呢,像我们平常使用的最多的存储工具就是Mysql,在业界也是非常有名的,我们大部分结构化数据都是用它来存储的,sql语言的操作也是非常方便&#xff…

助力“智慧港口”建设,北部湾港联合美创打造的主数据管理系统上线!

数字化浪潮下,港口企业发展将致力于以数据价值提升和数据价值创造为目标,打造新型“智慧港口”,实现更加经济的港口资源统筹高效利用并降低各类成本,企业通过逐步转变信息资源管理工作模式和利用方式,深度应用新一代信…

在GCP上创建Cloud SQL的三种方式(Console,gcloud,Terraform)

1 简介 Cloud SQL 是GCP上的关系型数据库,常用的有三种方式来创建: (1) 界面操作 (2) 命令行 gcloud (3) Terraform 在开始之前,可以查看:《初始化一个GCP项目并用gcloud访问操作》。 2 GCP 操作界面 登陆GCP,选…

Chevereto V4 首页显示图片托管数量的实现方法

博主最近一直想在Chevereto V4 首页显示图片托管数量,但是网上的方法只针对于Chevereto V3,V4却没有相关教程,查询谷歌也无结果,经博主查询大量案例今天为大家分享一下 Chevereto V4 首页显示图片托管数量的实现方法。1. 修改后台…

70.语义分割和数据集

在 之前讨论的目标检测问题中,我们一直使用方形边界框来标注和预测图像中的目标。 本节将探讨语义分割(semantic segmentation)问题,它重点关注于如何将图像分割成属于不同语义类别的区域。 与目标检测不同,语义分割可…

20230112编译AIO-3568J的Buildroot(rk356x_linux_release_v1.3.0b_20221213)

20230112编译AIO-3568J的Buildroot(rk356x_linux_release_v1.3.0b_20221213) 2023/1/12 20:40 当前可以拿到的Buildroot的SDK; rk356x_linux_release_v1.0.0_20210511_split_dir rk356x_linux_release_v1.2.0_20211019_split_dir rk356x_linu…

Ventoy主题美化,以及自行制作方法

Ventoy是基于grub2 所制作的,所以可以自行制作或者将现成的主题套用到Ventoy 方法一: 主题下载地址 上面是两个可以直接使用的Ventoy主题地址,然后下载下来解压文件,我们可以得到 接着往下走,我们可以的得到 现在我们…

Oracle Apex低码平台-定制验证方案

Oracle Apex低码平台-定制验证方案 0 APEX简介: Oracle APEX 是一个低代码开发平台,您可以在该平台上构建可扩展的安全企业应用程序。这些应用程序具有先进的功能,而且可以在任何地方部署。 构建企业应用速度提高 20 倍,代码减…