Concept Bottleneck Models (CBM)

本文介绍了一种名为概念瓶颈模型(CBM)的方法,通过在深度学习模型中引入概念预测层,提高模型的解释性和准确性。CBM允许在测试时干预模型的中间层概念预测,从而优化最终决策。文章探讨了CBM与相关方法的区别,展示了实验结果和潜在的应用前景。

本篇文章发表于ICML 2020。

文章链接:https://arxiv.org/abs/2007.04612

代码链接:https://github.com/yewsiang/ConceptBottleneck

        这篇文章的作者之一Been Kim也是TCAV的第一作者。


一、概述

       本文旨在寻找一种可以使用high-level concepts实现人与模型之间交互的方法。试想一个问题:如果一个X-ray图片中并没有骨刺,那么模型还会不会把它预测为严重的关节炎?目前大部分的SOTA方法都是采用端到端的网络,即直接从原始输入(例如像素)到输出(例如关节炎严重程度)。

        一个很直觉的想法是,在最终预测之前,先去预测人类可以理解的concepts,然后使用这些concepts再去预测得到最终输出;所谓的concept bottleneck由此得名,即,位于网络中间的、用来预测概念的一层;并且,一旦我们有了瓶颈层,在测试时就可以观察该层的输出并对其预测的概念进行干预;具体来说,就是编辑、修改、纠正模型瓶颈层预测的概念值,并由此对最终的预测进行修正,大大提高了准确率。

        这个想法是比较自然的。设想一个医生在诊断的时候,我们把一个端到端的网络输出甩在他的脸上,告诉他这个患者有病,那医生肯定会问:模型为什么做出这样的判断?依据是什么?但很遗憾,对于现有的大部分模型而言,这个问题将无法回答,因为我们也不知道模型为什么会给出这样的决策,这也正是可解释性的重要所在。而一旦我们有了对中间层的限制,即,在最终决策之前加入concept bottleneck对一些概念进行预测,并将这些概念作为最终决策的判断依据,我们就知道是因为“片子中有骨刺等概念”,因此综合分析得出“患者有病”的结论,增加模型的可信度、提高决策的透明度。

        这个问题可以表述为:提供一系列数据点 (x,c,y)​,其中 c​ 与 y​ 分别是 x​ 对应的概念标签与最终标签(比如类别),在该数据集上训练一个CBM,CBM首先会预测 c​ ,进而通过 c​ 预测 y​ 。在test的时候,观察由input x​ 产生的概念预测 \hat{c}​ ,再由 \hat{c}​ 得到最终预测 \hat{y}​ 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

exploreandconquer

谢谢老板,老板大气!

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

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

打赏作者

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

抵扣说明:

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

余额充值