机器学习的挑战:黑盒模型正面临这3个问题

2023-05-16

导读:本文将讲述可解释机器学习的研究背景,介绍黑盒模型存在的问题和风险,通过一些小故事让读者了解问题的严重性。

作者:索信达控股 邵平 杨健颖 苏思达 何悦 苏钰

来源:大数据DT(ID:hzdashuju)

578a1b20ccb6c58c908fcbb0c6078529.png

01 机器学习面临的挑战

2016年3月,基于深度学习算法的阿尔法围棋(AlphaGo),以4∶1的总比分战胜围棋世界冠军李世石,深度学习算法从此一战成名,成为机器学习领域备受推崇的明星算法,在计算机视觉,语音识别,自然语言处理、生物信息学等领域都取得了极好的应用成果。

虽然深度学习模型、集成学习模型(比如XGBoost、LightGBM等)在很多领域都取得了很好的成果,但是这类模型有一个共同的特点就是:内部结构非常复杂,其运作机制就像一个黑盒子一样,难以用人类可以理解的语言去描述,模型输出结果也难以被解释,使得其在一些有关生命安全或重要决策领域的应用受到巨大挑战。

比如在银行业,2019年2月,波兰政府增加了一项银行法修正案,该修正案赋予了客户在遇到负面信用决策时可获得解释的权利。这是GDPR(《通用数据保护条例》,General Data Protection Regulation)在欧盟实施的直接影响之一。这意味着如果决策过程是自动的,那么银行需要能够向客户解释为什么不批准贷款。

2018年10月,“亚马逊人工智能招聘工具偏向男性”的报道登上了全球的头条新闻。亚马逊的模型是基于有偏见的数据进行训练的,这些数据偏向于男性应聘者。该模型构建了不利于含有“Women's”一词的简历的规则。

以上问题的提出,表明业界对模型的应用要求,已经不只是停留在准确性层面,模型结果能否解释,模型是否安全、公正、透明等也是机器学习面临的新挑战。


02 黑盒模型存在的问题

在实际应用中,黑盒模型为什么难以一步到位解决所有问题呢?在回答这个问题之前,我们先来看几个银行业的小故事。

1)小杨是某银行的一名理财客户经理,年关将至,马上就要业绩考核了,但其业绩离既定的销售目标还有一定的距离,于是他决定使用一个机器学习模型,判断他所负责的客户名单中哪些人更有可能会购买基金产品。花了一周时间编写代码和做特征工程,小杨顺利地运行了一个XGBoost(Extreme Gradient Boosting,梯度提升)模型,模型的AUC(Area Under Curve,ROC曲线下与坐标轴围成的面积)达到了0.86,结果非常理想,他便高兴地拿着模型预测的名单逐个进行电话营销。结果在几百通电话之后,最终只有一两个客户购买了基金产品,小杨落寞地对着自己的代码陷入了沉思。

2)小苏是某银行的风控专员,最近银行新开通的信用卡遇到了严重的逾期还款问题,银行决定对旧的评分模型进行调整优化,以防止发生更多的违约情况。于是他用新的训练数据对模型进行了更新,并对一些特征重新进行了分箱处理,最终将新模型部署上线。然而没过多久,银行便开始接到不同的投诉电话:“为什么我已经提供了齐全的资料,征信也没问题,但是我的信用卡审批就是通不过呢?”“我提交的资料信息与我同事的资料信息是相近的,为什么他的额度比我的高那么多?”……面对申请人接二连三的质疑,小苏一时半会儿也没法回答,面对这个黑盒模型运行所得的评分模型,他正绞尽脑汁地对模型进行剖析。

3)小何是一位典型的“吃货”,尤其喜爱喝珍珠奶茶,几乎每餐之后都会到手机银行App上浏览附近的奶茶店。最近她婚期将至,看着自己的体重还在持续增长,于是下定决心减肥,并办了一张健身房的年卡,并且每餐也以沙拉等轻食为主,杜绝珍珠奶茶等高糖分的摄入。令她烦恼的是,每次吃完饭用手机银行App结账的时候,App总会向她推荐附近的奶茶店。为了避免因禁不住诱惑而导致减肥前功尽弃,小何毅然决定卸载该手机银行的App。

由于黑盒模型内部结构的复杂性,模型使用者往往无法得知数据进入模型之后,是如何得到预测结果的,这就好像变魔术一样,魔术师从黑盒里变出不同的物品,观众却不明所以。

对于决策者,尤其是对于高风险领域(比如自动驾驶、金融领域、医疗行业等)的决策者,在不清楚黑盒模型运作原理的情况下,是不敢仅凭模型的预测结果就轻易做出决策的。

62fa820ae67fa29044bd6e16c0397905.png

虽然人工智能和机器学习技术大大提升了人类生活和工作的效率,在很多领域,人工智能都在发挥着巨大的作用。但不可忽视的是,人工智能、机器学习中的模型黑盒问题,也同样需要引起我们的重视,值得我们深入思考。模型黑盒问题具体包括如下三点

1. 无法挖掘因果关系问题或因果错判问题

我们在使用机器学习模型时,不仅希望模型能够给出正确的预测结果(尤其是在医学、金融、自动驾驶等高风险领域),还希望模型能够为我们提供判断依据。

黑盒模型内部结构复杂,使用黑盒模型做预测时,我们会根据一些模型的评价指标(如AUC)去评估模型的好坏,但即使AUC很高,我们也依然不清楚黑盒模型的判断依据是否正确。如果模型无法给出合理的因果关系,那么模型的结果也将很难使人信服。

微软著名研究院的Caruana曾在论文[1]中提到过一个医学上的例子:

在一个关于肺炎风险的数据集中,我们想要预测不同肺炎病人的死亡概率,从而更好地治疗高风险的肺炎病人。最准确的模型是神经网络,AUC达到0.86,但是当我们使用基于规则的模型时,模型学习到了“如果病人带有哮喘,那么他属于低风险人群”。也就是说,带有哮喘的肺炎患者的死亡率比其他肺炎患者要低。

这个结论看起来模棱两可,违背了我们的客观认知,但深入挖掘下去,我们便会发现其中的逻辑关系:有哮喘病史的肺炎患者,由于病情的严重性,会得到更进一步的治疗,治疗的效果通常也会很好,从而降低了这类患者的死亡率。

如果我们直接使用属于黑盒模型的神经网络模型,那么模型由于无法推导出这样的因果关系,从而将带有哮喘的肺炎病人判断为低死亡率(低风险)人群,这类人群便有可能错过最佳治疗时间,实际上他们需要得到更好的治疗。

2. 黑盒模型的不安全性问题

黑盒模型的不安全性问题可以分为两大类,具体说明如下。

一是对于建模人员来说,黑盒模型内部结构复杂,当模型受到外界攻击时,我们通常很难发现这些攻击。倘若黑客在原始模型的输入样本中添加了一些扰动(通常称为对抗样本),那么模型很有可能会产生错判,建模人员如果无法及时调整模型,就会导致非常严重的后果。

例如,将黑盒模型应用于自动驾驶时,如果黑客向轮胎的图像样本中加入一些扰动,则可能会导致轮胎的识别错误,从而造成严重的车祸问题。如果建模人员在建模时未发现模型存在这样的问题,那么在模型投入实际应用时,行车的安全系数将会大大降低。

二是对于模型的使用者来说,他们并不了解模型的运作机制,只是利用模型的结果作出决策。

当我们拿到一个新工具时,我们不仅需要知道如何正确地操作该工具,还需要了解使用该工具时的注意事项、存在哪些风险点,正如医生向病人提供治疗的药物时,除了用量和服用方式之外,药物说明书上还会写明不良反应、禁忌和注意事项等,病人了解这些信息后才能安心服药。

黑盒模型无法解释模型的结果,结果通常是以概率或评分的形式给出,使用者对模型结果的风险点却少有了解,这就好比病人不了解药物的不良反应一样。如果有人使用欺诈或伪造的方式,提升自己在黑盒模型中的评分,使用者很难从黑盒模型的结果中发现异常,这就会造成模型结果在使用中存在不安全性的问题。

3. 黑盒模型可能存在偏见问题

偏见是指对某类人群带有主观意识情感,就人论事,如性别歧视、种族歧视等都是常见的偏见问题。黑盒模型存在偏见问题,表面上好像是在说黑盒模型能够反映人类的思想,实际上是指黑盒模型在做预测时,放大了数据收集过程中可能存在的数据不平衡性问题,导致模型最终得出具有偏见性的结果。

比如在美国广泛使用的COMPAS算法,该算法通过预测罪犯再次犯罪的可能性来指导判刑,根据美国新闻机构的报道,COMPAS算法存在明显的偏见,根据分析,该系统预测黑人被告再次犯罪的风险要远远高于白人,甚至达到了后者的两倍。

从算法的结果来分析,黑人的预测风险要高于实际风险,黑人被误判的几率是白人的2倍多,也就是说,COMPAS算法对黑人是很不公平的,该算法的应用已经严重影响到了判决的公正和公平。

有些模型的算法还会涉及性别歧视、年龄歧视等问题。由于黑盒模型缺乏内在解释性,进行模型训练时又难免会使用不均衡的样本数据,因此使用这样的模型,问题严重时可能会引发一系列的社会问题。同样的道理,在金融领域,当我们做风险评估时,黑盒模型可能会对不同性别、地域、年龄等特征进行不同的处理。

综上所述,如何避免模型做出带有偏见性的预测,是值得我们关注的问题。

参考文献:

[1]Caruana R, Lou Y, Gehrke J, et al. Intelligible Models for HealthCare: Predicting Pneumonia Risk and Hospital 30-day Readmission [C] // ACM, 2015.

关于作者:邵平,资深数据科学家,索信达控股金融AI实验室总监。在大数据、人工智能领域有十多年技术研发和行业应用经验。技术方向涉及可解释机器学习、深度学习、时间序列预测、智能推荐、自然语言处理等。现主要致力于可解释机器学习、推荐系统、银行智能营销和智能风控等领域的技术研究和项目实践。

杨健颖,云南财经大学统计学硕士,高级数据挖掘工程师,一个对数据科学有坚定信念的追求者,目前重点研究机器学习模型的可解释性。

苏思达,美国天普大学统计学硕士,机器学习算法专家,长期为银行提供大数据与人工智能解决方案和技术服务。主要研究方向为可解释机器学习与人工智能,曾撰写《可解释机器学习研究报告》和多篇可解释机器学习相关文章。

本文摘编自《可解释机器学习:模型、方法与实践》,经出版方授权发布。(ISBN:9787111695714)

59db046c10c7b821e18fc66c1e69c3e3.png

延伸阅读《可解释机器学习:模型、方法与实践》

点击上图了解及购买

转载请联系微信:DoctorData

推荐语:国内金融人工智能一线团队倾力打造,追踪最前沿的研究进展,全面、系统地介绍了可解释机器学习模型及方法。

干货直达👇

  • 详解数据分析体系构成框架

  • 机器人的「三体问题」

  • 4637字,看懂从DevOps到DevSecOps的进化之路

  • Kubernetes集群中要监控哪些组件?采集哪些指标?

更多精彩👇

在公众号对话框输入以下关键词

查看更多优质内容!

读书 | 书单 | 干货 讲明白 | 神操作 | 手把手

大数据 | 云计算 | 数据库 | Python | 爬虫 | 可视化

AI | 人工智能 | 机器学习 | 深度学习 | NLP

5G | 中台 | 用户画像 数学 | 算法 数字孪生

据统计,99%的大咖都关注了这个公众号

👇

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习的挑战:黑盒模型正面临这3个问题 的相关文章

  • Linux下Python 缩进 SyntaxError: 'break' outside loop

    这段代码将会报错 xff0c SyntaxError 39 break 39 outside loop 因为Python要求严格缩进 xff0c while循环的内容所有都必须缩进一空格 while循环体覆盖了剩下所有代码 因为if els
  • Linux ZRAM的简单介绍

    1 概念 zram 又称内存压缩 xff0c Linux kernel会把不常用的内存进行压缩 xff0c 以换出更多的内存供系统使用 平时空闲时候会做压缩 xff0c 以备不时之需 kernel 申请不到内存 xff0c 会触发压缩机制
  • 07 - 如何查看镜像及MySQL各环境参数的说明(Docker系列)

    本文章来自 知识林 在 06 分析docker run hello world xff08 Docker系列 xff09 一文中看到了docker run hello world xff0c 也描述了hello world是镜像名称 xff
  • Bootloader 相关概念理解及测试用例设计

    一 什么是Bootloader 单看单词 xff1a boot v 启动 xff1b loader n 装货设备 xff0c bootloader存在的意义就是指更新App程序 xff0c 以下简称bl 在14229规范中的Boot Sof
  • PixHawk飞控 配置参数

    PixHawk飞控 PixHawk是著名飞控厂商3DR推出的新一代独立 开源 高效的飞行控制器 xff0c 前身为APM飞控 xff0c 不仅提供了丰富的外设模块和可靠的飞行体验 xff0c 有能力的爱好者还可在其基础上进行二次开发 第一次
  • strcat函数--字符串连接函数

    strcat是STRing CATenate 字符串连接 xff09 的缩写 xff0c 调用strcat函数首先要有 lt string h gt 这个头文件 xff0c 它的作用是把两个字符数组中的字符串连接起来 xff0c 把字符串2
  • 最新使用深度相机D435i运行Vins-fusion并建立octomap八叉树栅格地图

    目录 一 xff0c 软件安装 二 xff0c 配置参数 三 xff0c 使用Vins fusion建立Octomap 四 xff0c 使用 DenseSurfelMapping建立Octomap 先决条件 Ubuntu 64 bit 16
  • 2022-10-13 js中数组删除对象

    JavaScript splice 方法 说明 xff1a splice 方法可删除从 index 处开始的零个或多个元素 xff0c 并且用参数列表中声明的一个或多个值来替换那些被删除的元素 数组 splice 数组索引下标 个数len
  • mmcv 报错undefined symbol: _ZNK2at6Tensor7is_cudaEv

    gt gt gt from mmcv ops import nms Traceback most recent call last File 34 lt stdin gt 34 line 1 in lt module gt File 34
  • 学校人力资源管理系统可行性分析

    学校人力资源管理系统可行性分析 一 技术可行性 硬件实施的可行性 xff0c 学校电脑配置相对较高 xff0c 可满足信息系统运行的需要 xff1b 学校可以采用常用的数据库应用程序开发工具实现学校内部的业务管理是完全可行的 xff0c 不
  • Jetson TX2 刷机教程(JetPack4.2版本)

    自从NVIDIA出现JetPack4 2 Ubuntu18 04 版本之后 xff0c 安装方式和之前就大不相同 xff0c 看了前面的几个安装版本之后 xff0c 感觉新版的好像安装起来更加简洁了 xff0c 只需要一个SDK就可以 xf
  • FactSystem设计思路

    Fact System 模块设计思路与学习总结 组成结构 FactSystem xff08 事件系统 参数系统 xff09 FactControls xff08 事件控制 xff09 FactPanelController xff08 事件
  • GPS设计思路

    GPS模块设计思路与学习总结 1 组成结构 Drivers src xff08 驱动程序资源包 xff09 gps helper xff08 GPS助手 xff09 ubx xff08 UBX协议 xff09 RTCM RTCMMavlin
  • ipv4和ipv6的区别

    ipv4 和ipv6 的区别本质在于它们的二进制表示位数 xff0c ipv4是用32位0 1序列来表示的 xff0c 而ipv6使用128位0 1序列来表示的 ipv4用32位 xff0c 为了方便人类记录和阅读 xff0c 我们通常将i
  • PHP字符串函数strrev(反转字符串)

    在PHP中 xff0c 字符串函数 strrev 用来反转字符串 函数语法 xff1a strrev string string string 函数参数说明 xff1a 参数描述string必需 规定要反转的字符串 strrev 用来反转字
  • STL(标准模板库)中class并不一定是“类”

    在模板库里面 xff0c 可谓 处处 皆模板 xff0c 当然了不是模板就不叫模板库了 xff0c 但是有一点经常让人忽视 xff0c 使用模板时候 xff0c 类就真的时候类 xff1f 也就是说class就真的是类 xff1f 答案是否
  • VS2008 和 MatlabR2015a 混合编程

    唉 xff0c 在做支持向量机分类优化实验的时候 xff0c 支持向量机的c 代码写的头疼 有些核函数和分类训练函数不会写 xff0c 搞得头疼 后来听同学介绍说matlab里面有包直接可以用 xff0c 我又去载了一个R2015a最新的m
  • 学习总结:C++中STL的数据结构

    1 STL介绍 STL xff08 Standard Template Library xff09 xff0c 即标准模板库 xff0c 是一个具有工业强度的 xff0c 高效的C 43 43 程序库 它被容纳于C 43 43 标准程序库
  • 基于深度学习的移动网络异常检测

    1 文章信息 文章题为 Detection of mobile network abnormality using deep learning models on massive network measurement data xff0c

随机推荐

  • Multilinear Relationship Networks:多任务学习框架

    1 文章信息 文章题为 Learning Multiple Tasks with Multilinear Relationship Networks xff0c 该文章于2017年发表至Advances in neural informat
  • 学校人力资源管理系统——需求分析(一)

    需求分析 一 系统功能 1 通过表的创建过程进行数据的关联和约束 2 插入 修改 删除功能 3 查询功能 二 系统概要设计 本系统共有6个实体 xff0c 分别是教职工 xff0c 部门 xff0c 职称 xff0c 职务 xff0c 学籍
  • vsode 编译报错:main.c:4:10: fatal error: iostream: 没有那个文件或目录

    文档声明 xff1a 以下资料均属于本人在学习过程中产出的学习笔记 xff0c 如果错误或者遗漏之处 xff0c 请多多指正 并且该文档在后期会随着学习的深入不断补充完善 感谢各位的参考查看 笔记资料仅供学习交流使用 xff0c 转载请标明
  • JSON未定义解决办法

    https blog csdn net wanglei9876 article details 41752863 ie6 ie7下JSON parse JSON未定义的解决方法 解决方法一 xff1a var jsons 61 req re
  • datax抽取mongoDB只需要访问隐藏节点源码修改

    背景 由于在mongoDB的业务库数据量较大 且使用方比较多 搜索 业务方和数仓 使得主节点和其他从节点压力很大 为了不影响正常的业务 DBA新增了一台隐藏节点作为搜索和数仓抽取数据用 用datax抽取mongo的数据默认是主节点优先 所以
  • 禁忌搜索算法(Tabu Search)

    一 局部领域搜索 又称 爬山启发式算法 xff0c 从当前的节点开始 xff0c 和周围的邻居节点的值进行比较 如果当前节点是最大的 xff0c 那么返回当前节点 xff0c 作为最大值 即 山峰最高点 xff1b 反之就用最高的邻居节点替
  • Linux基础认识与简单命令的带图示范

    一 Linux的基础认识 Linux全称GUN Linux 是林纳斯 本纳第克特 托瓦兹于1991年10月5日首发 通常公司的服务器都用它是因为GUN是开源组织 xff0c 大家很多都一致Linux是操作系统 xff0c 其实Linux指的
  • MPU6050-扫盲

    文章部分内容转载于 https blog csdn net zmjames2000 article details 88379640 管脚名称说明VCC3 3 5V xff08 内部有稳压芯片 xff09 GND地线SCLMPU6050作为
  • OpenStack 虚拟机修改mac 地址

    查看虚拟机id root 64 controller01 source admin openrc 查看 ip 地址的port id root 64 controller01 neutron port list grep 190 b6c8eb
  • px4 makefile解析

    关于px4的编译的流程 xff0c 首先运行makefile xff0c 执行cmake xff0c 执行完之后再执行make命令 xff0c 完成整个编译流程 编译px4 v2的版本 xff0c 需要执行命令 xff1a make px4
  • px4 CMakeLists.txt解析

    上一篇中提到px4中的Makefile执行make时会调用cmake xff0c 下面对CMakeLists txt做出解析 整个文件分为两个部分 xff0c 前半部分实质是一些初始化工作 后半部分是涉及编译部分 第一部分 xff1a sp
  • px4 rcS脚本分析

    rcS是nuttx系统启动后 xff0c 执行的脚本 xff0c 主要实现对飞控外设以及核心算法模块的启动 先贴一张图 xff0c 这个图已经大致写出了rcS的流程 给出代码分析 有些地方没有分析到 xff0c 还望指正 1 rcS文件 s
  • FreeRTOS进不了任务 卡在SVC_Handler

    网上看的 xff1a 第一次移植FreeRTOS单步调试卡在SVC Handler 汇编上面看SVC Handler后面有个 WEAK xff0c 意思是如果该函数不存在也不报错 xff0c 这意思是SVC Handler不存在 xff0c
  • 学校人力资源管理系统——需求分析(二)

    四 数据字典 1 教 职工信息表 的数据字典如表所示 表1 教职工信息表的数据字典 列名 数据类型 长度 是否可空 说明 职工编号 定长字符串型 xff08 char xff09 6 主键 姓名 定长字符串型 xff08 char xff0
  • IIC通讯总结

    1 IIC简介 IIC全称Inter Integrated Circuit 是由PHILIPS公司在80年代开发的两线式串行总线 xff0c 用于连接微控制器及其外围设备 IIC属于半双工同步通信方式 2 IIC特点 xff08 1 xff
  • Opencv 创建图像时,CV_8UC1,CV_32FC3等参数的含义

    转载链接 xff1a http blog csdn net maweifei article details 51221259 CV lt bit depth gt S U F C lt number of channels gt 1 bi
  • 时间序列聚类方法的研究

    女主宣言 为了保证系统 服务的可靠性和稳定性 xff0c 监控系统日渐成为每个公司 企业的一个必不可少的系统 随着服务 机器等数量越来越多 xff0c 如何分析海量时间序列KPI成为我们在智能运维领域首先需要解决的问题 在众多的时间序列中
  • 基于docker搭建tx2的ROS2交叉编译环境

    基于docker搭建TX2的ROS2交叉编译环境 概述 ROS2官方文档有交叉编译相关说明 本文使用TX2最新官方镜像JetPack4 4版本 xff0c 自带ubuntu18 04 有现成的ubuntu18 04就可以使用apt get
  • ros2 nav2 行为树插件引擎原理和应用

    Nav2 行为树插件引擎原理和应用 本文由一个简单的例子作为切入点 xff0c 对Nav2行为树插件引擎的原理进行分析 文章目录 Nav2 行为树插件引擎原理和应用一个完整应用demoGroot行为树设计和监视器安装使用Groot实时监视行
  • 机器学习的挑战:黑盒模型正面临这3个问题

    导读 xff1a 本文将讲述可解释机器学习的研究背景 xff0c 介绍黑盒模型存在的问题和风险 xff0c 通过一些小故事让读者了解问题的严重性 作者 xff1a 索信达控股 邵平 杨健颖 苏思达 何悦 苏钰 来源 xff1a 大数据DT