SHAP

你的模型需要解释(一)

北战南征 提交于 2020-11-24 02:53:36
导读: 模型可解释性方面的研究,在近两年的科研会议上成为关注热点,因为大家不仅仅满足于模型的效果,更对模型效果的原因产生更多的思考,这样的思考有助于模型和特征的优化,更能够帮助更好的理解模型本身和提升模型服务质量。本文对机器学习模型可解释性相关资料汇总 survey。 ——综述—— 机器学习业务应用以输出决策判断为目标。可解释性是指人类能够理解决策原因的程度。机器学习模型的可解释性越高,人们就越容易理解为什么做出某些决定或预测。模型可解释性指对模型内部机制的理解以及对模型结果的理解。其重要性体现在:建模阶段,辅助开发人员理解模型,进行模型的对比选择,必要时优化调整模型;在投入运行阶段,向业务方解释模型的内部机制,对模型结果进行解释。比如基金推荐模型,需要解释:为何为这个用户推荐某支基金。 机器学习流程步骤:收集数据、清洗数据、训练模型、基于验证或测试错误或其他评价指标选择最好的模型。第一步,选择比较小的错误率和比较高的准确率的高精度的模型。第二步,面临准确率和模型复杂度之间的权衡,但一个模型越复杂就越难以解释。一个简单的线性回归非常好解释,因为它只考虑了自变量与因变量之间的线性相关关系,但是也正因为如此,它无法处理更复杂的关系,模型在测试集上的预测精度也更有可能比较低。而深度神经网络处于另一个极端,因为它们能够在多个层次进行抽象推断,所以他们可以处理因变量与自变量之间非常复杂的关系

如何解释一个模型

核能气质少年 提交于 2020-11-24 02:36:49
如何解释一个模型 今天早上和同事聊天,因为宅在家里,业余时间无事可干,大家各自发挥学习特长各种学习。然后再次感悟机器学习这个领域太大,每个看似小问题展开都是大学问。有些知识无法一时get到点,只能通过不停看参加讨论,耳濡目染,终于有一天顿悟。不知道我顿悟了没,但是想把自己get的到的关于解释机器模型的知识到和大家分享一下。 之前讨论过如何给一个模型打分。打分很好理解,根据分数能够一眼看出哪个模型更好一点。吴恩达在Machine Learning Yearning一书中强调了很多次,选择一个metric有多重要。那么解释模型又是什么鬼。 解释模型就像介绍软件功能一样,解释你的模型是怎么工作的。 比如说一个预测房价的模型,解释模型就是必须要解释,在模型中是房子的位置,大小还是房型起的作用更大。 线性模型很好解释: y = 2 x 2 + 1 x 1 + 0 训练好的模型中的 2 , 1 就是feature的权重。 那么复杂的模型该怎么办呢。是不是所有的模型都是可以解释的呢? 有人大概要质疑了,深度学习模型不是黑盒模型吗,需要关心这个吗? 这是一个很值得讨论的问题,为什么需要解析深度学习的模型。 首先万物当中,人类是最为矛盾的物种。人类思维不可能一夜之间从因果思维转换成相关思维。即使因果思维已经存在了几个世纪,为什么人类还是有很大一部分的有神论者。为什么热学有了第一定律后有了第二定律

机器学习中的 Shapley 值怎么理解?

爱⌒轻易说出口 提交于 2020-11-18 10:43:37
我第一次听说 Shapley 值是在学习模型可解释性的时候。我知道了 SHAP,它是一个框架,可以更好地理解为什么机器学习模型会那样运行。事实证明,Shapley 值已经存在了一段时间,它们最早起源于 1953 年的博弈论领域,目的是解决以下情况: 一群拥有不同技能的参与者为了集体奖励而相互合作。那么,如何在小组中公平分配奖励? 当一个「旧」概念被应用到另一个领域,如机器学习,关于它是如何获得新的应用是非常有趣的。在机器学习中,参与者是你输入的特征,而集体支出是模型预测。在这种情况中,Shapley 值用于计算每个单独的特征对模型输出的贡献。 如何计算 Shapley 值?大多数时候,你倾向于在文献中看到这个等式: 让我们把它分解一下。在一个联盟游戏(前面描述的场景)中,我们有一组 N 个玩家。我们还有一个函数 v,它给出了这些参与者的任何子集的值,也就是说,S 是 N 的子集,然后 v(S)给出了该子集的值。因此,对于一个联合博弈(N,v),我们可以使用这个方程来计算玩家 i 的贡献,即 Shapley 值。 现在我不知道你会怎么想,但当我第一次遇到这个等式时,我的第一反应如下图: 我很难理解为什么它看起来是这样的。我花了一些时间研究之后,终于开始有了一些理解。所以,我们开始吧! 好吧,我们要做的第一件事是重写初始方程: 乍一看,这个公式似乎并没有变容易,但请不要着急。很快

学术分享丨模块化肌腱驱动假肢手

*爱你&永不变心* 提交于 2020-10-24 09:30:40
  近些年假肢手虽然取得了显著进步,但其可修复性通常有限,尤其是用户自己很难进行修复。曾有学者提出了几种模块化的手来解决这个问题,但是这些解决方案需要处理复杂的部件,或者由于增加了机械的复杂性而导致体积和重量过大,因此不适合用于假肢。近期,IEEE ROBOTICS AND AUTOMATION LETTERS发表了“OLYMPIC:A Modular, Tendon-Driven Prosthetic Hand With Novel Finger and Wrist CouplingMechanisms”,研究者提出了一个完全模块化的假肢手设计,其手指和手腕设计具备模块化,可以随时拆卸或装配来移除或连接肌腱。他们的创新设计能够将电机置于手后,用于驱动肌腱,肌腱仅包含在手指内。实现了这一新型的耦合传输机制,还计算了手指的模块分离扭矩,以分析有意拆卸与承受外部负载能力之间的权衡。研究人员提出了模块化设计,其模块化程度各不相同,如表1所示。   表1 模块化假肢手与机械手在设计方面的比较      一种完全模块化的假肢手,它具有耦合机制,允许肌腱从手掌外部驱动。本文介绍的假肢手,命名为OL YMPIC(操作性模块化假肢),是一种经济实惠的跨桡动脉装置,其模块可以被截肢者直观、快速地互换和组装,而不需要工具,如图1所示;事实上,手部引入了新颖的关节耦合机制。         图1

程序员欢乐送(第21期)

走远了吗. 提交于 2020-10-02 06:24:46
程序员欢乐送(第21期) 收录于话题 #程序员欢乐送 59个 对于我来说,一直保持的追求有三点:技术、快乐、财富。因此,从此三点出发,记录过去一周,我所看到的,值得分享的内容,每周五把欢乐送达。 由于微信不允许外部链接,你需要点击页尾左下角的“ 阅读原文 ”,才能访问文中的链接,文中的所有链接已使用 蓝色字体标记 。 「 技术 Technology 」 1、LightTrack 这是一篇京东数字科技与匹兹堡大学5月7日公布的论文,现于PoseTrack的Multi Person Pose Tracking排行榜名列第一,在总体MOTA上以微弱优势击败微软的HRNet(尽管在总体AP上仍比HRNet低不少),代码已开源。 这是迄今第一篇以自顶向下方式完成在线人体姿态追踪的系统。作为一个框架,该工作中的姿态估计部分和ReID部分都是可以灵活替换的。 此外,作者还提出了孪生图卷积网络(Siamese Graph Convolution Network)并作为该系统中的Re-ID模块,以图的形式来表示人体关键点,以较低的计算量有效地学习人体姿态的相似度,并对相机的突然移动导致的偏移有较高的鲁棒性。 项目地址: 点击查看 2、MeshCNN MeshCNN是PyTorch中3D网格的卷积神经网络,用于3D三角网格的通用深度神经网络,可用于3D形状分类或分割等任务。

EAS:基于网络转换的神经网络结构搜索 | AAAI 2018

ぃ、小莉子 提交于 2020-08-13 18:58:44
论文提出经济实惠且高效的神经网络结构搜索算法EAS,使用RL agent作为meta-controller,学习通过网络变换进行结构空间探索。从指定的网络开始,通过function-preserving transformation不断重用其权重,EAS能够重用之前学习到的知识进行高效地探索新的结构,仅需要10 GPU days即可   来源:晓飞的算法工程笔记 公众号 论文: Efficient Architecture Search by Network Transformation 论文地址: https://arxiv.org/abs/1707.04873 Introduction   为了加速神经网络搜索过程,论文提出EAS(Efficient Architecture Search),meta-controller通过网络转化(network transformation)操作进行结构空间探索,操作包含拓宽层,插入层,增加skip-connections等。为了继续使用学习到的权重,基于function-preserving transformation来初始化新的不同参数的网络,再进一步训练来提高性能,能够显著地加速训练过程。对于meta-controller,则结合了最近的强化学习方法 Architecture Search by Net

不一样的「注意力」:人机交互注意力的测量指标与利用

為{幸葍}努か 提交于 2020-08-05 18:06:55
本文将探讨人机交互中的注意力问题。 机器之心分析师网络,作者:仵冀颖,编辑:Joni Zhong。 本文我们关注注意力(Attention)问题。在这里,我们谈到的注意力与大家非常熟悉的机器学习中的注意力模型(Attention Model,AM)不同,本文讨论的是人机交互中的注意力问题。 人机交互中的这种注意力也被称为是用户的关注焦点(User's focus Of Attention)。人机交互中的注意力是构造社交机器人(Social Robot)的重要问题,也在普适计算和智能空间等人机交互应用中起到非常重要的作用,因为在这些应用中,必须能够持续的监控用户的目标和意图。 通过引入并有效测量注意力,能够改进人机交互的方式、效率和效果。一般认为,主要通过眼睛注视(Eye gaze)和头部姿势动态(Head)等来确定注意力 [1]。针对这些测量指标,研究者需要结合机器视觉和其他传感技术,测量和计算交互中的注意力指标,并且利用这些指标对机器人的行为进行控制。另一方面,这些指标也可以作为衡量社交机器人或者机器人辅助治疗中的效果。 本文首先介绍了一种用于社交机器人的人机交互方法,该方法根据目标人当前的视觉注意力焦点来吸引和控制目标人的注意力,从而建立人和机器人之间的沟通渠道。这也是社交机器人中注意力的最直接的研究和应用。此外,本文还介绍了两个在人与机器交流场景中的注意力应用

几行代码搞定ML模型,低代码机器学习Python库正式开源

痴心易碎 提交于 2020-04-18 12:22:19
PyCaret 库支持在「低代码」环境中训练和部署有监督以及无监督的机器学习模型,提升机器学习实验的效率。 想提高机器学习实验的效率,把更多精力放在解决业务问题而不是写代码上?低代码平台或许是个不错的选择。 最近,机器之心发现了一个开源低代码机器学习 Python 库 PyCaret,它支持在「低代码」环境中训练和部署有监督以及无监督的机器学习模型。 GitHub 地址: https:// github.com/pycaret/pyca ret 用户文档: https://www. pycaret.org/guide Notebook 教程: https://www. pycaret.org/tutorial PyCaret 库支持数据科学家快速高效地执行端到端实验,与其他开源机器学习库相比,PyCaret 库只需几行代码即可执行复杂的机器学习任务。 该库适合有经验的数据科学家、倾向于低代码机器学习解决方案的公民数据科学家,以及编程背景较弱甚至没有的新手。 PyCaret 库支持多种 Notebook 环境,包括 Jupyter Notebook、Azure notebook 和 Google Colab。从本质上来看,PyCaret 是一个 Python 封装器,封装了多个机器学习库和框架,如 sci-kit-learn、XGBoost、Microsoft LightGBM