以深度学习为代表的表示机器学习取得了巨大的成功,尤其是在特征提取的能力方面。但是与此同时,一个巨大的问题是深度神经网络的黑箱问题和不稳定性问题。其中的一个根本原因,是基于相关性的统计模型容易学习到数据中的“伪关系(spurious relation)”,而非因果关系,从而降低了泛化能力和对抗攻击的能力。

一个潜在的方向,就是采用从90年代以来以Judea Pearl为代表的研究者们提出的因果推断理论来改进现有的表示学习技术。然而,因果分析框架和表示学习并非天生相容。因果分析通常是基于抽象的、高层次的统计特征来构建结构因果图;而表示学习则基于海量数据提取具体的、低层次的表示特征来辅助下游任务。为了结合这两者,MILA的Yoshua Bengio提出了System 2框架,Max Planck Institute的Bernhard Schölkopf提出的因果表示学习框架。这两者实际上的思考是一致的。

在本文中,我们将会讨论ICLR 2020上因果表示学习的2项有代表性的工作:如何利用因果理论中的反事实(counterfactual)框架来提高算法的稳定性和可解释性。

Learning the Difference That Makes A Difference with Counterfactually-Augmented Data

近年来,深度学习在自然语言处理领域获得了巨大的成功。但是,质疑声也一直不绝于耳,尤其是关于深度学习容易学习到语言数据集上的伪关系(spurious relation)的问题一直没有得到解决。因果推断理论告诉我们,这是由于混杂因子(confounding)造成的。

然而,将因果推断方法应用到自然语言处理面临着巨大的困难:什么是自然语言当中的随机变量?如何从表示中找出混杂因子?如何让学习结果更加稳定,避免受训练集中的伪关系影响?其中最大的困难,在于如何定义自然语言中的因果关系。

在本文中,作者设计了一种巧妙的方法,绕开了随机变量的定义问题,转而采用因果理论中的另一个重要概念——反事实——来进行human in the loop的数据增强以避免伪关系的干扰。

本文在情感分析的一个3分类数据集上,利用Amazon’s Mechanical Turk众包平台,要求人类对句子做轻微的修改。这些修改包括:

* 将事实变为希望:比如加入supposed to be表示虚拟语气

* 反讽语气:如加入引号修饰、改为反问句表示反讽

* 插入/替换修饰词:将interesting替换为boring

* 插入短语,修改评分等

使评论的情感分类发生变化(如从正面变为负面)来进行数据增强。实验证明,对于支持向量机,朴素贝叶斯,随机森林,Bi-LSTM和BERT:

a) 在原有数据集上训练后,相比原测试集,反事实数据集上的测试结果要差许多。反之亦然。

b) 在结合了反事实增强过的训练集上训练,模型性能相比原来有着巨大的提升。

c) BERT不但在通常情况下表现最好,而且在反事实干扰的数据集上表现也降低得最少

在案例分析中,研究者们也表明增强后模型排除了原来模型学习到的一些伪关键特征。

Counterfactuals Uncover the Modular Structure of Deep Generative Models

有监督的视觉模型很容易会被伪关系干扰从而学出带有偏见的结果。比如,一个典型的例子是有监督CNN模型在识别狼和狗的图片时,实际上使用的统计特征是狼一般在雪中而狗在草地上。也就是说,模型认为“背景(草或雪)”与“目标(狗和狼)”之间存在某种关系。而实际上,这两种特征是解耦合的。我们希望能找到某些能学会解耦合的特征表示的模型。

一个自然地验证模型解耦合能力的想法,是检验模型能否推理反事实情况(比如狗在雪中,狼崽草上)。这样的反事实推理能力也是人类智能的一个重要标志,即推理未发生事件的结果的能力,属于因果学习的一个重要分支。反事实理论在计量经济学和公共卫生领域得到了广泛的应用,然而对于机器学习,这套理论的应用方法仍然是一片空白。

将因果学习应用在表示学习上的一个重要改进的方向,就是来自Max Planck Institute的Scho ̈lkopf和MILA的Bengio目前倡议的causal representation learning. 本文即是Scho ̈lkopf在ICLR2020上的一篇尝试性的工作:通过验证模型推断反事实的能力,来验证生成式模型(BigGAN)可以学习到解耦合的模块化结构。

这篇工作基于一个重要假设:负责生成不同内容的因果机制,对最终生成结果的贡献是相互独立的。因此,如果我们能学到具有解耦合能力的表示模型,则各个模块在被干预(intervene)的结果应该是互不影响的。在此基础上,他们提出了因果生成模型(Causal Generative Model)的分析框架来解耦合生成式模型的模块化结构,如下图所示。

a)表述了生成映射和分离变换T(表示对某个特征z_2的干预,不会对其他特征在任一表示空间的值产生影响)

b) CGM模型的因果图,V_1, V_2表示不同的模块是独立的

c)稀疏变换在latent space上的机理

d)内在分离变换的表示

文章使用了很多因果理论的公式来分析,并且定义了一套理论性的语言。但是核心的思想就是一条:通过对CNN的某些channel进行值的调整,从而实现因果学习中的“干预”(加强、削弱或者替换某些特征),根据反事实结果来检验这些channel是否是解耦合的。

为了实现这个目标,要做几件事情:

* 如何找到这些channel(作者称为内部表示):有许多已有的方法,可以通过分析CNN的激活层的热力图来判定某个channel负责生成什么内容。若干channel如果负责生成同一内容,则可以通过clustering的方法来判定。

* 如何衡量这种因果效应:作者通过在潜在空间,对不同特征进行独立的采样,并且在输出的图像上的变化作为验证,构造了一个“平均绝对效应”来衡量

实验结果表明,BigGAN能够做到混合不同的特征,进而表明以GAN为代表的一系列无监督与自监督学习方法能学到比有监督学习方法更解耦合的、更稳定的特征。

往期回顾:

ICLR 2020| 两篇互信息相关论文解读

ICLR 2020 | 浅谈GNN:能力与局限

ICLR 2020 | 一种高效、表达能力强的可微分归纳逻辑推理模型

ICLR 2020 | 基于谱方法的高效多级图嵌入框架

ICLR 2020 满分论文解读| 一种镜像生成式机器翻译模型:MGNMT

原文链接:https://www.aminer.cn/research_report/5ea6a284ab6e30e67b2c9311

机器学习hierarchical clustering_ICLR 2020 | 反事实因果理论如何帮助深度学习?相关推荐

  1. 机器学习原来这么有趣!第四章:用深度学习识别人脸

    第一章:全世界最简单的机器学习入门指南 https://blog.csdn.net/wskzgz/article/details/89917343 第二章:用机器学习制作超级马里奥的关卡 https: ...

  2. [机器学习入门] 李弘毅机器学习笔记-7 (Brief Introduction of Deep Learning;深度学习简介)

    [机器学习入门] 李弘毅机器学习笔记-7 (Brief Introduction of Deep Learning:深度学习简介) PDF VIDEO Ups and downs of Deep Le ...

  3. 视觉机器学习20讲-MATLAB源码示例(18)-深度学习算法

    视觉机器学习20讲-MATLAB源码示例(18)-深度学习算法 1. 深度学习算法 2. Matlab仿真 3. 仿真结果 4. 小结 1. 深度学习算法 深度学习(DL, Deep Learning ...

  4. 第一讲:反事实因果分析框架(2)

    1. 承前启后     上一讲以土财主小明打佣人致死的案例引入了因果推断中的反事实概念和一系列常用统计量,本讲介绍下因果推断中常用的4个假设前提. 2. 因果推断的前提假设? 特定的因果关系的成立需要 ...

  5. 第一讲:反事实因果分析框架(1)

    1.因果关系的定义? 举个栗子: 背景:小明是个土财主,有一天他打了佣人一棍子,第二天佣人死了. 问题:打的那棍子是造成佣人死亡的原因么?    在因果推断中,是否打人是处理变量,是否死亡是响应变量, ...

  6. 【转】机器学习和神经科学:你的大脑也在进行深度学习吗?

    ps:这三个假说和人生风险投资结合其联想 假说一:大脑优化成本函数 The Brain Optimizes Cost Functions 假说二:不同脑区在发展的不同时期使用多样化的成本函数 Cost ...

  7. 2020人工智能课程超级大列表:深度学习-强化学习-图神经网络-自然语言处理等...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 本篇博文主要为大家介绍一个课程网站,汇集了机器学习,深度学习.强化学习的各个方面, ...

  8. 2020年需要牢记的10个深度学习Best Practices

    2020年需要牢记的十个深度学习最佳实践 引言 定义业务问题 计算投资回报比 关注数据数量和质量 解决图像标注 组建团队 编写生产就绪代码 模型跟踪实验 本地v/s云基础设施 使用分布式训练 在实际部 ...

  9. 机器学习实战 | emojify 使用Python创建自己的表情符号(深度学习初级)

    目录 简介 技术流程 1. 加载依赖包 2. 初始化训练和验证生成器 3. 建立网络结构 4. 编译和训练模型 5. 保存模型权重 6. 输出预测结果 完整程序 1. train.py程序 2. gu ...

最新文章

  1. 计算机应用论文2500字,计算机应用论文2500字:计算机基础.doc
  2. 5.3.6 虚拟地址、线性地址和物理地址之间的关系
  3. 移动前端开发之viewport,devicePixelRatio的深入理解
  4. mysql 用户命令_MySQL命令行新建用户
  5. 【2014-11-22】《The Hardware/Software Interface》– Section 5
  6. win7 64位Apache http server+PHP配置
  7. 进化论是个假说,目前解释生物现象最合理
  8. VC++ 源码实现通达信公式管理器
  9. 书店购物车--增删改
  10. ldap 统一认证 java_基于LDAP的统一身份认证系统的设计与实现
  11. ActiveMQ消息队列介绍
  12. 【2023秋招】10月8日美团校招两道题
  13. 防止刷新或后退页面重复提交表单
  14. protect权限解析
  15. 关于splay的一些说明
  16. 商品条码三大编码原则,您知道吗?
  17. 贸然用string比较的后果
  18. 训练时评估指标无变化,且预测值都一样
  19. 音质悦耳的主动降噪耳机,还有国潮风设计加持,SO魔浪S耳机体验
  20. 数据结构C语言描述2(专插本/专升本)

热门文章

  1. oracle数据库登录失败触发器,oracle数据库登录、DDL触发器的应用
  2. 字节又莫名其妙发奖金了!网友:突然到账五万,吓得我差点报警...
  3. 没了解过条件注解@ConditionalOn..?Spring Boot白学了!
  4. 如何从三流程序员成长为一名年薪50W的架构师(文末附送学习资料)
  5. matlab第一类修正贝塞尔函数,bessel(第一类修正贝塞尔函数)
  6. java timezone 107_java - Java使用TimeZone - 堆栈内存溢出
  7. yolov5 simplepose人体姿态
  8. Unknown: Failed to get convolution algorithm. This is probably because cuDNN
  9. nginx.pid failed (2: The system cannot find the file specified
  10. Windows下C 用 Socket 发送图片--基础