当前位置: 首页 > 编程日记 > 正文

Facebook开源模型可解释库Captum,这次改模型有依据了


作者 | Narine Kokhlikyan, Vivek Miglani, Edward Wang, Orion Reblitz-Richardson

译者 | Rachel

出品 | AI科技大本营(ID:rgznai100)

【导读】前脚 TF 2.0 刚发布,在 PyTorch 开发者大会首日也携 PyTorch1.3 版本而来。除此之外,还发布了隐私保护机器学习框架 CrypTen、模型可解释库 Captum 和下一代目标检测/目标分割研究平台 Detectron2。这篇文章介绍的是Facebook 在深度学习的可解释性问题上发布的新成果——Captum。

目前,机器学习模型已经在多个领域得到了广泛应用,并对数亿的人群产生影响。随着模型在工业领域的应用不断拓展,模型的结构也正在变得更加复杂。对于机器学习的开发者而言,深入理解模型的原理并具备对他人解释原理的能力非常重要。

而 Facebook 发布的 Captum 是一个基于 Pytorch 的一个模型解释库,其功能强大、灵活且易于使用。该库为所有最新的算法提供了解释性,帮助研究人员及开发者更好地理解对模型预测结果产生作用的具体特征、神经元及神经网络层。Captum 通过包括可视化和文本在内的多种形式提供模型解释,并为新算法的设计提供了可拓展性。通过使用 Captum ,研究者还能够以 Pytorch 库中的算法为基准,快速对自己的算法进行评估。

对模型开发者而言,通过使用 Captum 来识别模型中对结果产生较大影响的特征,开发者能够更快速地对模型效果进行提升,并对模型的不合理输出进行调试。在这一版本中,我们也提供了 Captum Insight 的试用版,该库基于 Captum 构建,提供了解释性的可视化功能。

Captum Insight 能够处理包括图片、文字等类型在内的多种特征,并帮助用户理解特征的属性。目前,该库实现了对 Integrated Gradients 算法的支持,在未来我们还将加入对更多算法的支持。更多信息参见 captum.ai 。

地址:

https://www.captum.ai/

640?wx_fmt=png

Captum 实现了对最新的解释性算法的支持,包括 Integrated Gradients, DeepLIFT 和 Conductance。通过使用 Captum ,开发者可以理解特征的重要性,并对神经网络的神经元和网络层的属性进行更加深入的了解。

Captum 提供了对 Pytorch 生态系统中多种类型数据的无差别解释能力,能够帮助用户开发更好的模型,并进行相关研究。

包括 Captum 在内的模型解释库能够帮助工程师开发更加可信赖、可预测、效果更优的人工智能系统。通过对系统工作原理进行解释,工程师也能够为决策过程提供信息,并与他人建立可信赖的联系。另外,随着多模态模型的不断出现,模型解释库对多种类型的信息提供无差别解释和可视化的能力将变得更加重要。

Captum 的 Github 地址:

https://github.com/pytorch/captum

640?wx_fmt=png

原文链接:

https://ai.facebook.com/blog/open-sourcing-captum-a-model-interpretability-library-for-pytorch

(*本文为 AI科技大本营编译文章,载请微信联系 1092722531



精彩推荐



2019 中国大数据技术大会(BDTC)再度来袭!豪华主席阵容及百位技术专家齐聚,15 场精选专题技术和行业论坛,超强干货+技术剖析+行业实践立体解读,深入解析热门技术在行业中的实践落地。

即日起,限量 5 折票开售,数量有限,扫码购买,先到先得!

640?wx_fmt=png

推荐阅读

  • 刘群:华为诺亚方舟NLP预训练模型工作的研究与应用 | AI ProCon 2019

  • 估值被砍700亿美元后,Waymo发重磅公开信:即将推出全自动驾驶打车服务

  • 首届中文NL2SQL挑战赛:千支队伍参赛,国防科大夺冠

  • 图灵奖得主Bengio再次警示:可解释因果关系是深度学习发展的当务之急

  • 技术领域有哪些接地气又好玩的应用?

  • Python新工具:用三行代码提取PDF表格数据

  • 国产嵌入式操作系统发展思考

  • 2019 年诺贝尔物理学奖揭晓!三得主让宇宙“彻底改观”

  • 公链故事难再续?

640?wx_fmt=png

你点的每个“在看”,我都认真当成了AI

相关文章:

K-最近邻法(KNN)简介

K-最近邻法(K-Nearest Neighbor, KNN)最初由Cover和Hart于1968年提出,是一个在理论上比较成熟的分类算法。KNN是一类可用于分类或回归的技术。作为一个非参数学习算法,K-最近邻并不局限于固定数目的参数。我们通常认为K-最近邻算法没有任何参数&#xff…

demo17 clean-webpack-plugin (清除模式)

1.为什么需要自动清除 dist 文件夹 在之前的 demo 中,webpack 打包后会在根目录下自动创建 dist 目录,并且把生成的文件输出到 dist 下。 当配置的输出包名含有 [hash] 时,hash值会随着文件内容的改变而改变。 因此,我们需要在下一…

c语言-01背包问题

01背包问题 问题:有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 分析: 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。…

OpenCV3.3中 K-最近邻法(KNN)接口简介及使用

OpenCV 3.3中给出了K-最近邻(KNN)算法的实现,即cv::ml::Knearest类,此类的声明在include/opecv2/ml.hpp文件中,实现在modules/ml/src/knearest.cpp文件中。其中:(1)、cv::ml::Knearest类:继承自cv::ml::StateModel&…

华为于璠:新一代AI开源计算框架MindSpore的前世与今生 | AI ProCon 2019

演讲嘉宾 | 于璠(华为MindSpore资深架构师)编辑 | 刘静出品 | AI科技大本营(ID:rgznai100)9月,2019中国AI开发者大会(AI ProCon 2019)在北京举行。在AI开源技术专题中,华为MindSpore…

TCC分布式事务的实现原理

目录 一、写在前面 二、业务场景介绍 三、进一步思考 四、落地实现TCC分布式事务 (1)TCC实现阶段一:Try (2)TCC实现阶段二:Confirm (3)TCC实现阶段三:Cancel 五、总结与思考 一、写在前面 之前网上看到很多写分布式事务的文章,不过…

Brute Force算法介绍及C++实现

字符串的模式匹配操作可以通过Brute Force算法来实现。字符串匹配操作即是查看S串(目标串或主串)中是否含有T串(模式串或子串),如果在主串中查找到了子串,则模式匹配成功,返回模式串中的第一个字符在主串中的位置;如果未找到&…

使用Go内置库实现简易httpbin功能

简介 通过学习「Go语言圣经」的入门部分,了解到 go 内置库里提供了一个简单的 http 功能。于是想模拟下httpbin[1]的 get 方法显示 header 头信息的功能来练手。 本人 Go 初学小白,为了练习只是简单的实现了请求 header 的 JSON 格式展示,跟 …

Google图嵌入工业界最新大招,高效解决训练大规模深度图卷积神经网络问题

导读:本文主要介绍Google发表在KDD 2019的图嵌入工业界最新论文,提出Cluster-GCN,高效解决工业界训练大规模深度图卷积神经网络问题,性能大幅提升基础上依靠可训练更深层网络达到SOTA效果,并开源了源代码。作者 | yyl4…

经典树型表结构之SORT_NO

为什么80%的码农都做不了架构师?>>> 在以下情况需要对经典树型表的sort_no进行重排序:1、插入节点(插入子树),需调整节点后所有sort_no;2、删除节点(删除子树),需调整节…

Ubuntu14.04上安装TensorRT 2.1操作步骤

在Ubuntu14.04 上安装TensorRT2.1有两种方法:(1)、通过.deb直接安装;(2)、通过Tar文件安装。这里通过Tar文件安装。安装步骤:1. 安装CUDA 8.0,可参考: http://blog.csdn.net/fengbingchun/article/details/53840684 ;…

学会这门编程知识,可能决定你能进什么样的企业

对于程序员来讲,很多技术真正掌握之后,都能影响甚至说改变一个人的命运,比如:python、AI、DL、算法等等,但是如果只让你选择其中的一项基础知识,你会选择哪个呢?如果是我, 我会选——…

雷林鹏分享:MySQL 及 SQL 注入

MySQL 及 SQL 注入 如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题。 本章节将为大家介绍如何防止SQL注入,并通过脚本来过滤SQL中注入的字符。 所谓SQL注入,就是通过把SQL命令插入到Web表单递…

dedecms网站文章内容按自定义排序的方法

标签dede:arclist的排序是通过orderby来指定的,如下: {dede:arclist orderby’排序字段’ } {/dede:arclist} orderby’sortrank’ 文档排序方式 orderby’hot’ 或 orderby’click’ 表示按点击数排列 orderby’sortrank’ 或 orderby’pubdate’ 按…

有了这套模板,再不担心刷不动LeetCode了

(图片下载自视觉中国)作者 | 李威来源 | https://www.liwei.party/整理 | 五分钟学算法(ID: CXYxiaowu)正文下面的动画以 「力扣」第 704 题:二分查找 为例,展示了使用这个模板编写二分查找法的一般流程。b…

一线互联网技术:Java工程师架构知识系统化汇总,面完45K!

根据高端招聘平台100 offer发布的Java人才盘点报告,在过去的2018年,Java仍然是最流行、招聘供需量最大的技术语言。在此基础上,互联网行业针对 Java 开发的招聘需求,也是近年技术类岗位供需量最大,且变化最稳定的。企业…

C++中局部类的使用

类可以定义在某个函数的内部,我们称这样的类为局部类(local class)。局部类定义的类型只在定义它的作用域内可见。和嵌套类不同,局部类的成员受到严格控制。局部类的所有成员(包括函数在内)都必须完整定义在类的内部。因此,局部类的作用与嵌套…

按键驱动的恩恩怨怨之概述

转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/23946487 研究按键驱动已经有几天了,尽管是0基础的驱动,可是当中包括的知识确实不少。接下来的几篇文章我会分别从浅入深的分析按键驱动。希望能对大家有所帮助。因为屌…

C++中嵌套类的使用

一个类可以定义在另一个类的内部,前者称为嵌套类(nested class)或嵌套类型(nested type)。嵌套类常用于定义作为实现部分的类。嵌套类可用于隐藏实现细节。嵌套类是一个独立的类,与外层类基本没什么关系。特别是,外层类的对象和嵌套类的对象是…

挑战弱监督学习的三大热门问题 AutoWSL2019挑战赛正式开赛

AutoWSL2019作为11月17-19日亚洲机器学习大会(ACML)主会议竞赛单元之一,由第四范式、ChaLearn、RIKEN和微软联合举办,其中竞赛分享和颁奖将与大会WSL-Workshop共同举办。据悉,AutoWSL是继AutoCV、AutoCV2、AutoNLP、Au…

数据连接池的工作机制是什么?

以典型的数据库连接池为例: 首先普通的数据库访问是这样的:程序和数据库建立连接,发送数据操作的指令,完成后断开连接。等下一次请求的时候重复这个过程,即每个请求都需要和数据库建立连接和断开连接,这样当…

apkplug插件托管服务简化与简介-05

2019独角兽企业重金招聘Python工程师标准>>> 本文基于TuoClondService1.1.0讲解 apkplug插件托管服务是提供给开发者一个远程发布插件的管理平台,但v1.0.0版本接口调用有些复杂我们在v1.1.0版本中着重对其进行了简化 与封装,使开发者能更简…

SpringBoot-JPA入门

SpringBoot-JPA入门 JPA就是Spring集成了hibernate感觉。 注解,方法仓库(顾名思义的方法,封装好了,还有自定义的方法)。 案例: spring:datasource:url: jdbc:mysql://localhost:3306/springboot?useUnicodetrue&c…

PCA、LDA、MDS、LLE、TSNE等降维算法的Python实现

整理 | 夕颜出品 | AI科技大本营(ID:rgznai100)【导读】网上关于各种降维算法的资料参差不齐,但大部分不提供源代码。近日,有人在 GitHub 上整理了一些经典降维算法的 Demo(Python)集合,同时给出了参考资料的链接。PCA…

C++11中enum class的使用

枚举类型(enumeration)使我们可以将一组整型常量组织在一起。和类一样,每个枚举类型定义了一种新的类型。枚举属于字面值常量类型。 C包含两种枚举:限定作用域的和不限定作用域的。这里主要介绍限定作用域的。不限定作用域的使用可以参考: ht…

Windows下Mysql主从配置(Mysql5.5)

主数据库IP:192.168.3.169从数据库IP:192.168.3.34主数据库配置my.inin:在[mysqld]下添加配置数据:server-id1 #配一个唯一的ID编号,1至32。log-binmysql-bin #二进制文件存放路径#设置要进行或不要进行主从复制的数据库名,同…

K-最近邻法(KNN) C++实现

关于KNN的介绍可以参考: http://blog.csdn.net/fengbingchun/article/details/78464169 这里给出KNN的C实现,用于分类。训练数据和测试数据均来自MNIST,关于MNIST的介绍可以参考: http://blog.csdn.net/fengbingchun/article/deta…

AI大佬“互怼”:Bengio和Gary Marcus隔空对谈深度学习发展现状

编译 | AI科技大本营编辑部出品 | AI科技大本营(ID:rgznai100)去年以来,由于纽约大学教授 Gary Marcus 对深度学习批评,导致他在社交媒体上与许多知名的 AI 研究人员如 Facebook 首席 AI 科学家 Yann LeCun 进行了一场论战。不止 …

Centos7多内核情况下修改默认启动内核方法

1.1 进入grub.cfg配置文件存放目录/boot/grub2/并备份grub.cfg配置文件 [rootlinux-node1 ~]# cd /boot/grub2/ [rootlinux-node1 grub2]# cp -p grub.cfg grub.cfg.bak [rootlinux-node1 grub2]# ls -ld grub.cfg* -rw-r--r--. 1 root root 5162 Aug 11 2018 grub.cfg -rw-r…

TensorRT Samples: MNIST

关于TensorRT的介绍可以参考: http://blog.csdn.net/fengbingchun/article/details/78469551以下是参考TensorRT 2.1.2中的sampleMNIST.cpp文件改写的实现对手写数字0-9识别的测试代码,各个文件内容如下:common.hpp:#ifndef FBC_TENSORRT_TE…