社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

前沿算法:如何利用群论进行深度学习下的因果特征解耦

集智俱乐部 • 3 年前 • 346 次点击  


导语


因果关系追求的是亘古不变的道理。而想要从繁复的自然观察中获取不变性,至少要先能拆分(disentangle)出来“变”与“不变”。如果不能拆分,因果推理就只是空中楼阁。传统金融乃至社会学领域中,变量(人口、年龄、性别等)本身就是互相解耦(disentangle)的,因此并不存在这一问题;但是在深度学习领域,常用的特征(representation)中各个语义信息却是混杂在一起的,使得因果理论并不能得到完全的应用。在集智俱乐部因果读书会第三期中,来自南洋理工大学的王谭博士介绍了他们最新的基于群论的自监督特征解耦框架IP-IRM,并讲述了群论如何作为一种对因果理论的深层解释与下游的因果推理任务相结合。本文是对分享的文字整理。


研究领域:因果关系,群论,算法,深度学习

张含望、王谭 | 讲者

郑瑞 | 整理

邓一雪 | 编辑





1. 特征和特征解耦




特征就是我们用来观察表征世界的一种手段,比如照相机照的照片就是对世界的一种像素的表征,写的日记就是一种对生活的表征。在深度学习的社区里面,表征是一种从图片到特征向量的表征,是为了让机器去理解这个世界。

图1. 解耦因果机制[1]

在探讨什么是特征解耦之前,我们先要从因果的角度去理解这个世界。上图是用因果的框架对我们的世界进行构建的结果。图中U1到Um指的是一些独立的相互分隔的语义,比如颜色、形状或者物种等等,这些基本语义构建出了我们所见到的图片I,并且图片I是由这些语义通过Independent Causal Mechanisms生成的。这些机制互相不干扰,比如说改变颜色并不会影响到形状。但是实际上我们可以观察到很多关联(correlation),也就是图中的C,比如说鸟大部分都是流线型的,这就是一种selection  bias,把本来互不相关的形状和物种关联在了一起。

图2. 语义因子U与特征X一一对应[1]

然后我们在图1的基础上向下画些箭头,代表了得到特征的步骤。我们希望学习到这样的一个特征抽取器,可以从一个给定的观测图片得到特征空间中的X。X可以被分解为X1到Xm,并恰好分别对应上面的语义U1到UM。如果特征X1到Xm是解耦的,那么当我们干预某一个特定的语义Ui时,仅仅会影响到对应的特征的Xi,而不会影响到其他的部分。




2. 特征解耦的好处

(非因果角度,因果角度)




从非因果角度,即直接从解耦本身来看就有很多好处。

图3. 分布外泛化数据集(Out-of-Distribution Generalization)样例

第一个好处就是鲁棒性,这可以在Out-of-Distribution Generalization 的问题中体现出来,也就是我们常说的预泛化问题。比如说训练的目的是要去识别一头牛,训练集中的牛主要是在草地和泥地上。但是如果测试集中的牛是在海上或者水里的,机器就会困惑,因为它之前学习的时候会把context一起关联着学进去,所以当机器在一个完全新的环境中时,机器可能不会识别为牛。这个问题会随着类越来越多而越来越明显。特征解耦的好处就是在训练的时候,解耦特征抽取器已经帮你把前景(牛)和背景给分开了。这样在训练的时候,为了使loss更小,模型会去计算物体特征的loss并忽略context特征。这样在测试集上,模型也会更加关注物体的特征而不是context的特征,是非常有利于预泛化的。

图4. Zero-Shot Learning数据集样例

第二个好处体现在Zero-Shot Learning中。在这个任务里,测试集中会出现训练集中没见过的新种类。但是如果能做到特征解耦,新的种类也能用已学过的特征进行排列组合。也就是说虽然这种组合没有见过,但是仍然能想象出这种组合,这是泛化很重要的一个特点。

图5. 深度学习中的因果推理

从因果角度来看,当今深度学习社区的一大问题就是从图片中提取到的特征都是混杂在一起的,使得因果关系可能成为空中楼阁,阻碍因果关系的发展。如图5中的一开始得到的猫和狗的特征是混杂的。但是如果能做到特征解耦,那么我们可以得到各个物体分别的特征,并且在特征层面上进行intervention和counterfactual的操作,不用再去修改图片。




3. 得到解耦特征的方法




图6. 多角度人脸数据集[2]

第一个是Labelled intervention。这早在NIPS.2014年的时候就被提出[2],这种方法就是直接把因素都标出来。比如给出人脸的身份信息和角度信息,再把人脸的身份和角度在特征层面上解耦出来。传统的解耦方法是使用VAE的encoder、decoder的框架,也就是说给定一块图片,先通过encoder得到一些特征,并且特征里身份信息和视角信息是互相解耦的,然后再通过decoder把图片恢复出来。

图7. 分类任务数据集样例

第二个是Labelled data(Supervised Learning)。比如说分类任务是能达到部分解耦的作用的。如图7中,横向的一行都是固定的类别,纵向的每一列都代表了不同的属性的那一类。

图8. 数据增强样例

第三个是Augmentations(Self-Supervised Learning)。自监督的学习和监督学习最大的不同就在于自监督学习是没有标签的。如图8,自监督学习中把每一张图片当做一行,每一列是每一个图片不同的augmentations,如裁切,颜色变换等。

图9. 总结以上的三个方法可以发现,它们都是想把数据中的行属性和列属性分开。行属性往往是我们想得到的如物体类别信息,而列属性往往是我们希望忽略的特征如角度。





4. 群论视角下的解耦特征




首先介绍一下群轨道的理论。群就是一种action,是一种作用,比如群G的作用可以是把图片顺时针旋转30度。群重复作用在图片上形成的一系列图片组成的集合就叫群轨道。

图10. 数据分组(Data Partition)

图11. 多个数据分组构成的轨道

可以把数据集按行属性分成多个组,每个组形成了一个群轨道。如图10中就是按行属性物体类别分组,形成了图11中的群轨道。而事实上每一种Data Partition都是对应一个特定的语义的,如物体类别。所以如果给定一个特定的一个Data Partition,就可以把对应的特定语义解耦出来。

图12

那么如何去解耦出这个特定的语义呢?这要求contractive loss对不同的组(轨道)是具有不变性的。图12举了一个很直观的例子帮助大家理解。图中有两个轨道,一个全都是绿色的数字,另一个全是红色的数字。两个轨道之间的差别仅仅只有绿色和红色颜色之分,其他的语义都是相同的。想要contractive loss对两个轨道保持不变,这意味着需要把改变的东西映射到固定的维度上然后去除,这样才能忽略变化带来的影响。所以在这个例子中一定要把颜色移到特定的维度上,这样才能去除颜色不同带来的影响。实际上,这就是把颜色语义提取出来的过程。

在成功提取一个新的语义之后,我们可以解耦出来更多的其他语义。因为当提取的特征不能对某一个分组保持不变性时,我们就发现了新的分组,可以找到新的语义。这也就是接下来要讲的IP-IRM算法。




5. IP-IRM算法




算法分成两步,第一步就是解耦某一个特定的语义,第二步是在这个语义的基础上发现一些新的语义。

图13. 更新Feature Backbone

第一布相当于给定一个固定不变的特定的分组,然后通过如图13的loss去学习,不断更新backbone,希望backbone可以学到把特定的语义提取出来。

图14. 更新Data Partition

第二步我们要固定住学到的backbone,因为这时候特征其实相当于已经保持不变了,我们只是想去寻找到目前特征里面还有哪些语义没有被揭露出来,所以这时候我们要用特征去反向增大loss,从而找到还达不到优化目标的分组,然后相当于找到了一个新的语义。所以我们在这一步是要更新partition并固定feature backbone。

下面简单地列举了一些有趣的实验结果。

图15. SimCLR与IP-IRM在CMNIST上取得的特征空间对比,IP-IRM获取的特征是中心对称的,体现了语义特征是解耦的


图16. 对每个特征维度的可视化,IP-IRM得到的不同维度代表了不同的语义

图17. 数据分组的可视化,分组3为按倾斜角度进行分组的新的分组

图18. 加长训练时间后,结果堪比监督学习

参考文献

1. Suter,Raphael,et al.“Robostly disentangled causal mechanisms:Validating deep representations for interventional robustness.”ICML’19

2. Zhu,Zhenyao,et al.“Multi-view perceptron:a deep model for learning face identity and view representations.”NIPS.2014.



因果科学读书会第三季启动


由智源社区、集智俱乐部联合举办的因果科学与Causal AI读书会第三季将主要面向两类人群:如果你从事计算机相关方向研究,希望为不同领域引入新的计算方法,通过大数据、新算法得到新成果,可以通过读书会各个领域的核心因果问题介绍和论文推荐快速入手;如果你从事其他理工科或人文社科领域研究,也可以通过所属领域的因果研究综述介绍和研讨已有工作的示例代码,在自己的研究中快速开始尝试部署结合因果的算法。读书自2021年10月24日开始,每周日上午 10:00-12:00举办,持续时间预计 2-3 个月。



详情请见:

因果+X:解决多学科领域的因果问题 | 因果科学读书会第三季启动



推荐阅读



点击“阅读原文”,即可报名读书会

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/127680
 
346 次点击