之前一篇是写在数据科学领域使用因果推断的案例,因果推断笔记——数据科学领域因果推断案例集锦(九)
主要应用的领域在:智能营销、一些机制干预的有效性、智能补贴等,那么可以看看在不常见领域的案例,拓宽一下视野。


文章目录

  • 1 自治代理和多代理系统
  • 2 因果表征学习在CV领域的应用
    • 2.1 Visual Commonsense R-CNN——改造Loss
    • 2.2 Causal Intervention for Weakly-Supervised Semantic Segmentation
    • 2.3 Two Causal Principles for Improving Visual Dialog
    • 2.4 Long-Tailed Classification by Keeping the Good and Removing the Bad Momentum Causal Effect
    • 2.5 Causal Imitation Learning with Unobserved Confounders
    • 2.6 机械臂操纵任务,旨在解决强泛化问题
  • 3 话题:多任务学习和持续学习
  • 4 话题:因果强化学习 - Causal RL

1 自治代理和多代理系统

参考文章:
因果推理实战(1)——借助因果关系从示教中学习任务规则
因果推理实战(3)——利用因果方法学习工具的可供性

非常有意思的一个研究,当人类演示一个来自于内心构想的运动时,他们不仅仅是想表达这一条单一轨迹的路径,更会潜在地表达一些内在的习惯和规则,这条单一的轨迹只是具有相同规则特征的一类轨迹中的一个样本而已

来简单看一下实验场景:

笔者标了一下,如何将机器人手里的瓶子放在另外一个瓶子旁边。
那么抽象成因果关系模型:

  • 轨迹信息Zθ
  • 环境信息Zi
  • 用户偏好类型s(仔细,粗心,正常)
  • o代表桌子上不同的物体(容器,盘子,碗,杯子)
  • V表示轨迹所属的可行性的聚类

    对于模型的因果分析,作者通过增加图片以涵盖特定新物体的方式进行干预,然后评价不同的用户类型会产生怎样不同的轨迹策略。
    选择三种不同的用户类型时,在某场景下执行某轨迹可行的概率的期望。所以越“仔细”的用户,可行的概率越小,越“粗心”的用户,可行的概率越大(最大期望值为1,表示无论什么轨迹在什么场景下都可行)。

    图7给出了三种不同的用户类型对应的轨迹及可行性聚类。
    可以看到,这三条相同的轨迹在不同的用户类型下,被聚类的结果是不同的。
  • “仔细”的情形下有两条都被聚类为不可行,
  • “正常”的情形下有一条被聚类为不可行,
  • “粗心”的情形下三条轨迹都被聚类为可行。

对于“仔细”的用户,无论增加什么新物品,都会让可行性降低,因为“仔细”的用户倾向于避开所有物品,所以只要增加了物品不管是什么,都会让可行空间变小。“正常”的用户则只倾向于避开玻璃杯,所以只有在增加了玻璃杯时才会对可行性有一个降低。“粗心”的用户心宽体胖,随便你加什么东西他都不在乎,任意轨迹都百分之百可行,所以最后一行全为1。

2 因果表征学习在CV领域的应用

参考:因果推断:因果表征学习的CV落地

这篇是一篇综述,会讲解几篇因果表征学习在 CV 领域的应用,各篇文章从动机、因果干预方法、具体实现方法三块介绍。
大致“套路”是:

  • 1)从数据和现象出发,分析基线模型的因果图假设和混杂因子;
  • 2)建立新的因果图(opt);
  • 3)因果干预;
  • 4)近似 do 算子网络计算;
  • 5)效果提升。
    话说回来,虽然脉络大致相同,但每个工作也都能给人新奇的感觉,尤其 [5] 想到从优化器的角度切入。

2.1 Visual Commonsense R-CNN——改造Loss

作者认为观察偏差(observational bias)导致模型会倾向于根据共现信息做任务预测,而忽略一些常识性的因果关系。因此本文希望通过因果干预训练一个蕴含常识的视觉特征,新的视觉表征可以方便应用于如 VQA、Caption 之类的下游任务。这里的视觉表征期望能学到一些知识,如“椅子可以坐”,而不是简单的根据观察得到的“桌子和椅子”的共现关系。

训练目标为预测指定 ROI 的类别,Loss 包括两部分任务,

  • 1)Self Predict:直接 ROI 特征 x 通过全连接层预测其 label
  • 2)Context Predict:基于待识别物体 y 的 ROI 以及其上下文物体 ROI 特征,预测 y 的 label,一张图片中 K 个上下文物体特征求和取评价。


另外一篇比较好的文章是:无监督的视觉常识特征学习——因果关系上的一点探索(CVPR 2020)

2.2 Causal Intervention for Weakly-Supervised Semantic Segmentation

文章通过通过 image classification 模型进行 CAM 种子扩张的方法存在明显的问题,得到的伪标签各物体边界并不清晰,影响分割模型的训练效果。文章认为这里的上下文(其他物体、背景)是混杂因子,误导图像级别的分类模型学到了像素与 label 之间的伪相关关系。举例来说,图像分类模型预测“沙发”的时候也会考虑与“沙发”经常一起出现的“地板”特征,并将“地板”的特征也作为预测“沙发”的相关依据。因此本文的目标则通过因果干预的方法消除混杂因子(上下文特征)对模型的影响。

下图(a)是文章“设计“的结构化因果关系图:

C:上下文先验,这里为数据集所有的类别特征表示的集合,各类别特征表示为数据集中各类别所有特征的平均。
X:输入图像。
M:输入图像 X 在 C 下的具体表示,可以理解为以 C 集合中的类别特征表示为基表示 X,如 X=0.12“bird” + 0.13“bottle” + … + 0.29“person”。
Y:图像对应的标签。

具体实现是一个循环的过程:

  • 首先,通过初始化弱监督语义分割模型获取图像的 mask 信息;
  • 然后,构建 Confounder set 并去除 confounder;
  • 最后将去除 confounder 后的 M 拼接到下一轮的分类模型的 backbone 中以产生更高质量的CAM。

产生的 CAM 又可以用来产生更高质量的 M,以此形成一个良性循环。
如下图,P© 为先验的 1/n,T+1 时刻的 M 可以看作是一个 Confounder set 对 T 时刻 image Mask 的一个 Attention 表示。

题外CAM是什么?
CAM(类激活映射),CAM是一个帮助我们可视化CNN的工具。使用CAM,我们可以清楚的观察到,网络关注图片的哪块区域。比如,我们的网络识别出这两幅图片,一个是在刷牙,一个是在砍树。通过CAM这个工具,我们可以清楚的看到网络关注图片的哪一部分,根据哪一部分得到的这个结果。

2.3 Two Causal Principles for Improving Visual Dialog

主流的 VQA、VisDial 领域主流模型一般采用 Encoder-Decoder 结构,以 VisDial模 型为例:先是 Encoder 将 <I,Q, H> 编码为向量,然后利用 Decoder 解码得到 A(答案),Baseline 因果图如下:

其中 H 为历史问答、I 为图像、Q 为当前问题、V 是视觉知识表征、A 为答案。这样 VisDial 很像是带 History 的 VQA,而本文作者强调:VisDial 本质上并非带有 History 的 VQA,并提出两个因果原则给予修正:

  • P1: 删除链接 H—>A:直接使用 History 作为输入建模 A 时,模型会过度关注历史问答的词汇和句式,二者不应该直接链接。
  • P2:添加一个新的节点 U(标注偏好)和三条新的链接:U<—H, U—>Q, U—>A,答案标注者基于 History 进行标注会有一定偏好,倾向于标注历史问答中出现过的表达,是因果图中的混杂因子,且不可观测。

2.4 Long-Tailed Classification by Keeping the Good and Removing the Bad Momentum Causal Effect

如题,本文将因果推断应用于数据不均衡的长尾分类问题。文章先介绍了样本不均衡带来的预测偏置问题,而后分析了常用解决长尾问题的方法,如 re-sampling、re-weighting 以及目前比较优秀的 2-stage 模式的 Decoupling 方法(原始数据的长尾分布用 backbone 学,分类器用 re-balancing 后的数据学)。


作者希望用更简单的方法 end2end 地实现长尾问题的优化,指出优化器的动量项在训练数据时会引入数据分布(混杂因子),是模型对头部类目偏好的一大原因。
但直接去除动量项,又会使模型收敛难度增加。因为动量可以大大提升训练的稳定性,其带来的好处要高于其带来的损失。
由此,文章另辟蹊径,提出用因果推断中的技术,尝试在保持动量项的同时,训练阶段引入因果干预,并在测试阶段进一步剔除预测偏置,做到取其精华,去其糟粕。

其中 M 就是优化器的动量,X 是模型提取的特征,Y 是预测值。
D 是 X 在动量特征下的带偏置的表示(基于 M 和 X 的特性 D 更偏好头部类别)。优化器的动量 M 包含了数据集的分布信息,他的动态平均会显著地将优化方向倾向于多数类,这也就造成了模型中的参数会有生成头部类特征的倾向,该部分偏好则体现在 D 中。

类似的,消除混淆因子 M 带来的头部类别偏置的方法也比较明确,即通过后门调整进行因果干预

2.5 Causal Imitation Learning with Unobserved Confounders

文章链接:https://causalai.net/r66.pdf

因果推断与模仿学习结合。

论文主要描述了在示教者和模仿者能够获得的观测信息不一致的条件下的模仿学习。
在Oracle-type的模仿学习中,示教者常常不是人,而是能够获得更得传感器信息的同类agent,示教者比模仿者多获得的传感信息作为混杂因子,同时影响示教者的行动和奖励。因此,即使是完美的模仿者,即使拥有无限量的示教数据,模仿者仍然无法达到示教者同样性能。这篇论文描述了存在混在因子的条件下的imitability——模仿可行性判别准则以及潜在的奖励的可识别性identifiability,而且给出了当模仿不可行时的解决方案。

2.6 机械臂操纵任务,旨在解决强泛化问题

文章:CausalWorld: A Robotic Manipulation Benchmark for Causal Structure and Transfer Learning
结合机械臂操纵任务,旨在解决强泛化问题,提供了开源github代码。

论文描述了通过干预不同因素(如块位置、目标位置、摩擦力、尺寸、位姿)等,结合课程学习实现泛化能力。实验分析了不同等级的随机化课程学习引起泛化能力的不同。
CausalWorld给出了一个可以干预多个不同因变量/因果因子的模拟实验框架,适合测试算法的各种泛化性能。

论文主要从强化学习领域出发,基本没有涉及到具体因果推断公式,对于强化学习研究者来说比较清晰易懂,提供的开源代码也方便实操,提供了一种便于研究泛化能力/隐变量RL的实验环境。

3 话题:多任务学习和持续学习

这个话题只是抛出来,是一个非常热门的趋势,但目前还没有特别好的应用。

我们已经在不考虑因果的情况下处理多任务问题很久了,并且取得了很多成果。于是一个关键的问题提出:“为什么我们不能训练一个巨大模型来学习环境的动力学,并且包含所有可能的干预呢?毕竟如果我们训练了大量的干预且我们期望神经网络可以在他们中泛化的话,分布式表征就可以泛化到没有见过的例子中”。
对此,有以下几点需要考虑。

  • 首先,如果数据不够多样,最差情形误差总是会任意的高。尽管在短期内可以通过更大的模型和数据集来通过非OOD的基准测试,因果总是提供了一个重要的补充。
  • 模型的泛化性能是和它的假设(结构及如何训练)紧密相关的,而因果提供了更明确以及符合物理和人类认知的假设,例如ICM原则。如果这些假设是有效的,使用这些假设模型理应比没有使用的要好。
  • 更进一步,如果我们有一个对特定环境的所有干预都有效的模型,我们自然想要将它运用在动力学相似大不完全相同其他环境中。
    因果方法恰好指出了,这样组需要将知识分解为独立可重组的机制。所以我们应该在模块化机器学习或者其他遵循ICM原则的机器学习方法上做更多的工作。

4 话题:因果强化学习 - Causal RL

参考:

  • 因果强化学习入门
  • 因果强化学习调研

Causal RL的基本setting
大致分为3种任务:

  • online learning:主动去干预(do)来学习干预后分布p(y|do(x))
  • off policy learning:看别人干预的数据来学习干预后分布p(y|do(x))
  • Do-calculus learning:观测数据,不主动干预,但需要从观测数据中学习干预后分布p(y|do(x))

几个特别任务:

任务1:我们能不能借助观测数据来加速强化学习的过程呢?

毕竟观测数据是很容易得到的,但是干预的数据是非常少的。显然,如果你知道因果结构,并且该因果结构满足一定假设(X变量不存在confounder连接其直接孩子),那么从观测数据中计算出干预后的分布是可以实现的
然而,当因果结构不满足这样的假设时就不行了。如下图右边是真实结构,U是一个观测不到的confounder,此时我们没有办法计算干预后的分布的


虽然我们无法具体算出干预后分布的值,但是根据观测变量,我们是可以计算出干预后分布的bound的,换句话说,我们可以根据这个bound,来做一个类似reject的操作,如果落在外面就可以reject掉:

任务2:我们应该如何去干预?

我们需要对所有policy中的action同时进行干预吗?到底该如何去干预呢?是否有一个合适干预的时机呢?对于第一个问题,实际上很多工作都是这样做的,但从因果的角度来讲,同时干预是不需要的,并且同时干预会反而会使得最优的结果无法出现。

任务3:通过反事实来进行决策

我们不能仅仅去简单的干预,还要进一步考虑agent的真实意图,并利用这些意图来推导出conterfactural,并基于counterfactural的结果来给出最优的行为决策。

因果推断笔记——CV、机器人领域因果推断案例集锦(十)相关推荐

  1. 因果推断笔记——数据科学领域因果推断案例集锦(九)

    文章目录 1 腾讯看点:启动重置问题 1.1 观测数据 . 实验数据的理论介绍 2.2 启动重置问题阐述:短期.长期.异质 2.3 短期影响的解决 2.4 长期影响构造准实验 2.5 异质性用户 1. ...

  2. 因果推断笔记——DR :Doubly Robust学习笔记(二十)

    文章目录 0 观测数据的估计方法 0.1 Matching 0.2 Propensity Score Based Methods 0.2.1 PSM 0.2.2 IPW 0.2.3 Doubly Ro ...

  3. 因果推断笔记——因果图建模之微软开源的EconML(五)

    文章目录 1 EconML介绍 1.1 EconML介绍 1.2 一些理论解答 1.3 常规CATE的估计器 1.4 IV工具变量 + CATE的估计器 1.5 动态处理效应的估计器 2 智能营销案例 ...

  4. 远东传动收购机器人_一张图为你总结最近5年在机器人领域收购案例

    原标题:一张图为你总结最近5年在机器人领域收购案例 随着工业自动化需求的不断增长,机器人行业又一次被推到聚光灯下.CB Insight 总结了自 2011年以来在机器人领域的收购案例. 2012年,亚 ...

  5. 因果推断笔记——自整理因果推断理论解读(七)

    之前有整理过一篇:因果推断笔记-- 相关理论:Rubin Potential.Pearl.倾向性得分.与机器学习异同(二) 不过,那时候刚刚开始学,只能慢慢理解,所以这边通过一轮的学习再次整理一下手里 ...

  6. 因果推断笔记——python 倾向性匹配PSM实现示例(三)

    因果推断笔记-- 相关理论:Rubin Potential.Pearl.倾向性得分.与机器学习异同(二) 因果推断笔记--因果图建模之微软开源的dowhy(一) 文章目录 0 观测数据的估计方法 0. ...

  7. 因果推断笔记——因果图建模之Uber开源的CausalML(十二)

    它提供了一个标准框架,允许用户从实验或观察数据估计条件平均治疗效果(CATE)或个人治疗效果(ITE).本质上,它估计了干预T对具有观察到的特征X的用户结果Y的因果影响,而没有对模型形式有很强的假设. ...

  8. 因果推断笔记——工具变量、内生性以及DeepIV(六)

    文章目录 1 理论介绍 1.1 工具变量的三个条件 1.2 工具变量的效应估计 1.3 工具变量第四类条件:同质性 1.4 工具变量第四类条件:单调性 1.5 工具变量三个条件的剖析 1.6 一些对和 ...

  9. 因果推断笔记——双重差分理论、假设、实践(四)

    文章目录 1 双重差分 - difference-in-difference -DID 理论与假设 1.1 DID介绍 1.2 使用时需要满足的假设 2 DID + PSM 差异与联用 2.1 DID ...

最新文章

  1. opencv-python实现马赛克油画漫画风格的图片
  2. __FUNCTION__, __LINE__ 有助于debug的宏定义
  3. java字符常量括_Java常量 变量 数据类型
  4. window系统JAVA开发环境的搭建
  5. Eclipse Neon 配置C/C++开发环境
  6. 图像分割 2020 最新进展
  7. 怎么取消苹果手机自动续费_手机 App 自动续费套路多?我们要如何取消?
  8. python的线性链表_Python线性表——单链表-阿里云开发者社区
  9. ZZULI 1876: 蛤玮的项链 Hash + 二分
  10. python单元测试mock_python3的单元测试模块mock与性能测试模块cProfile
  11. 入门科普:什么时候要用Python?用哪个版本?什么时候不能用?
  12. (40)FPGA四种常用逻辑门(或非门)
  13. multisim秒信号发生器_频谱中射频干扰信号流化、分析与回放
  14. Django(ORM常用字段)
  15. 在SUM()行数中使用SQL变量导致不可预测结果
  16. 如何为Kalman Studio编写T4模板
  17. 论文阅读 || 图像分类系列 —— DenseNet(很详细)
  18. 阿里巴巴最新开源软件列表(建议收藏系列)
  19. 计算机中b代表的含义是什么意思,表示文件大小的MB,KB,B等是什么意思?
  20. Windows环境下安装Ruby教程

热门文章

  1. 汇编电话本 15pb
  2. 机器人潘森护盾_[翻译团]10.21版本五大强势辅助:潘森、蕾欧娜、机器人、巴德、璐璐...
  3. Java编程思想第五版(On Java8)(四)-运算符
  4. C语言switch 语句
  5. 50个直击灵魂的问题_质量管理50个常见问题详解
  6. 洛谷 P1095 守望者的逃离
  7. 【免费外国云服务器】亚马逊AWS创建EC2实例搭建个人服务器
  8. ​《Python知识手册》更新到V4.1版
  9. H.264 高度压缩数字视频编解码器标准
  10. mysql怎么删除重复数据并且保留其中一条