如何有效沟通你的机器学习结果?

简介: 多问自己一个“那又怎样?”,会很有用。疑问7月初,我赴南京参会。 James Hendler 教授的演讲非常精彩。其中一个片段,让我印象深刻。
img_c134e9852ff778917231bd3e837c6efb.jpe

多问自己一个“那又怎样?”,会很有用。

疑问

7月初,我赴南京参会。 James Hendler 教授的演讲非常精彩。

img_59e5ff4328028a4a2144749b83bd3bda.jpe

其中一个片段,让我印象深刻。

他说,许多人跑模型,跑出来一个比别人都高的准确率,于是就觉得任务完成了。他自己做健康信息研究,通过各种特征判定病人是否需要住院治疗。很容易就可以构建一个模型,获得很好的分类效果。

但是,这其实远远不够。因为别人(例如他的医生客户们)非常可能会问出一个问题“so what?” (意即“那又怎样?”)

我听了深以为然。

因为模型准确率再高,有时也免不了会有运气的成分。能否在实际应用中发挥作用,并不能单单靠着一个数字来说明。

医生们都有自己作为专业人士的骄傲。如果计算机模型不能从理据上说服他们,那肯定是不会加以采纳的。同时,他们对于病患的健康和生命安全,也有足够重大的责任,因此无法简单接受机器模型的结果,而不加以自己的理解与思考。

对于机器学习模型研究的这种批评,之前我也听到一些。但是不少人仅仅是批评,却没有给出有效的解决方法。

该怎么办呢?Hendler 教授的解决办法,是给医生展示一些统计图表。例如描述年龄与二次入院关系的散点图。

img_e0feb40a064c40453df7e0fcd263e486.jpe

我听了大为惊诧,提问环节第一个就把话筒抢了过来,问:

这种图形,属于描述统计。难道不应该是正式进行模型训练之前,就做了的吗?如果把它作为沟通模型的结果,那还做什么机器学习呢?

解释

Hendler 教授耐心地给我解答了这个问题。

img_1b0ca47879b6734ab8a85bd45a89d750.jpe

他说,没错,这个图形确实属于描述统计。然而,数百上千个特征里面,知道该汇报哪几个变量的统计图,就必须是机器学习之后才能做的。

实际上,医生们看了这个简单的统计图之后,非常震撼。

他们的刻板印象认为,老年人身体状况差,因此二次入院几率高;年轻人身体好,自愈能力强,因此不大容易“二进宫”。

就此,他们发现了一直以来决策上的失误——对于年轻病患,他们往往比较放心,因此缺乏足够的留院观察和治疗;反倒是对老年人,照顾得更加精细。造成的结果,是本以为没事儿的年轻人,再次重症发病入院;老年人却不少都治愈后健康回家了。

这种结果的传递沟通,有效地改进了医生的决策和行为方式。

其实,Hendler 教授的研究目的,不是去跟别人比拼一个数字,而是帮助医生更好地帮助病患。看似最为简单,没有技术含量的统计图,反倒比各种黑科技更能起到实际作用。

茶歇的时候,我们又聊了20分钟。

他给我讲,他的博士生,现在正在尝试在深度学习中找寻那些影响最后结果的关键要素,有的时候,甚至会选择跨过层级,来设计最简单明确的变量间关联设定。这样,深度学习的结果,可以最大限度(对别人)进行解释。即便会牺牲一些(当然不会很大)准确率,也在所不惜。

反思

为什么我们一直对准确率的数字,这么着迷,而忽略了模型的沟通解释呢?

其实道理也很简单,机器学习的最初广泛用途,给我们的思维带来了路径依赖。

还记得吗?机器学习逐渐受到世人重视的案例?

我说的不是 AlphaGo。

就是几乎每一本讲机器学习的书,都会用到的那个例子,MNIST。

img_2859e953877f1e5d6c8e23023243a9cc.png

专家们最初要解决的问题,无非是把原先需要人工分拣的邮件,变成机器自动分拣。关键在于手写数字的识别。

这个具体用例,有它的特点。

首先是任务目标单一,就是追求更高的准确率;

其次是分类数量确定,0-9,一共10个数字,不会更多,不会更少;

最后是犯错成本低,即便准确率达不到100%,也没有什么大问题——寄错了信,在人工分拣时代也是正常。

于是,这样的任务,就适合大家拼结果准确率数字。

但是,人们的思维惯性和路径依赖(包括各种竞赛的规则设置),导致了后面的机器学习任务,也都只关注数字,尤其是准确率。

img_01ad3d88b404b6f9e87150c01c866d28.png

但这其实是不对的。类似于决策支持,尤其是健康医疗的决策支持,就不适合单单比拼数字。

即便误判 0.1%,背后可能也是许许多多鲜活的生命,因此犯错成本极高。

医生并没有因为模型的准确率提升而被取代,反而在信息浪潮奔涌而来的场景下,充当把关人的角色,责任更加重大了。

一个模型要能说服医生,影响其决策行为,就必须解释清楚判断的依据,而不能递给他一个黑箱,告诉他:

你该这样做。

img_23daa812775a328f122f8fcb2850834c.png

方法

原理想明白了,怎么实施呢?

如果每一个模型跑完,都只是拿出多张描述性统计图给用户,好像也不大合适。

通过文献阅读,我发现了其他机器学习研究人员为了解释结果所做的努力。

在深度学习领域,现在做得比较好的,是卷积神经网络。

在《文科生如何理解卷积神经网络?》一文中,我给你解释过卷积神经网络的概念和使用方法。

img_2204d6b9f3152f8de9015a3bd260851f.png

但是,我们当时,还只是给你讲解如何用它进行分类等,没有涉及解释方案。

你看这样一幅图,机器模型可以很容易分辨它为“非洲象”。

img_ab016676c97bb4ebdd1c966eeedb1040.jpe

但是,这到底是机器具有了辨别能力,还是只不过运气使然呢?

单看结果,不好分辨。但是我们可以对卷积神经网络训练的结果参数进行可视化,并且叠加到原图上,你一眼就可以看到,机器做出图像分类的依据,究竟是什么。

img_b2ede6cbb114f279512e9d67251f17c0.jpe

显然,在机器重点关注的区域里,象的鼻子和耳朵占了最大的决策比重。

由此可以看出,这不是简单的好运气。

以上例子,来自于 François Chollet 的《Deep Learning with Python》。书中附有详细的代码,供你用 Python 和 Keras 自己实现这种可视化结果。

小结

你训练出的模型表现好,这是成功的基础,但不是全部。

只展示一个数字给别人,在很多特定的应用场景下,是不够的。问题越是重要,犯错代价越高,这种方式就越不能被接受。这时候多问自己一个“那又怎样?”,没有坏处。

你需要明确自己用户的需求。与之有效沟通的关键在于用同理心,尊重对方。作为一个人,特别是一个专业人士,对方进行有效思考的要件,就是足够的理据支撑。

不管是用文中介绍的卷积神经网络可视化方法,还是 Hendler 教授所做的看似基础无比的描述性统计图,都可以根据问题的特点,加以采用。只要能够真正影响对方的决策,帮助他们更好地达成自己的目标,你的机器学习分析,便有了更佳的效果。

喜欢请点赞。还可以微信关注和置顶我的公众号“玉树芝兰”(nkwangshuyi)

如果你对数据科学感兴趣,不妨阅读我的系列教程索引贴《如何高效入门数据科学?》,里面还有更多的有趣问题及解法。

目录
相关文章
|
PyTorch 算法框架/工具
数据集学习笔记(三):调用不同数据集获取trainloader和testloader
本文介绍了如何使用PyTorch框架调用CIFAR10数据集,并获取训练和测试的数据加载器(trainloader和testloader)。
222 4
数据集学习笔记(三):调用不同数据集获取trainloader和testloader
|
3天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
271 116
|
18天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
12天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
663 219
|
5天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
360 34
Meta SAM3开源:让图像分割,听懂你的话
|
10天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
1592 157
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
897 61