Rich Caruana:压缩深度神经网络模型让你兼得可解释性与准确性!

简介:

微软研究院首席研究员Rich Caruana在他数十年的职业生涯中花了很多精力来探索这个问题,在这个访谈中,他为我们分享了一个更精简、更可解释的“压缩”模型,使“黑匣子”般的机器学习过程更加透明。本文是Rich Caruana采访内容的文字精简版。

4f064239b68d04e5b5d8d350c5571d7ed0429b26

微软首席研究员Rich Caruana博士

在机器学习领域,长久以来存在一个难以取舍的问题——模型的准确性与可解释性像“鱼与熊掌”般不可兼得。简单如线性回归、逻辑回归,过程清晰明确,但无法用于分析复杂的问题;复杂如神经网络,机器学习过程和预测结果的准确来源于它繁复的结构。在今天,随着神经网络模型的不断发展,为了得到更精确的结果,这个模型越来越大,从初始的三、五层,变成五十、上百层,加上千万个样本、数亿个权重,这使人们更难理解机器做出的预测,模型的运行速度也更缓慢。

线性回归、逻辑回归这些简单又准确的模型,能够很好地解决一些基础的问题。但是随着数据驱动时代的来临,庞大的数据量要求我们使用更复杂的模型去囊括数据呈现的各种情况。但复杂的机器学习模型就像一个“黑匣子”,我们将数据送进去,它把结果输出来,那盒子中发生了什么呢?

我认为有两个原因,使机器学习的过程像“黑匣子”般难以捉摸。

d47e62d2b349aca45e42305ed6714efbe5ed61d9第一,是复杂模型本身的特性。 三四十年前的人工智能(例如专家系统)完全是由人们手动编写的,我们很容易理解背后的工作机制,而现在的人工智能大都基于机器学习和大数据。面对海量的数据,人们难以手动为机器创造一个准确的规则。通常的做法是将数据集交给一个数据引擎,让它找到与目标结果相关的规律,学习这个规律,捕捉数据集中的所有规律,最后给出预测结果。这个过程中我们无法确信机器找到的规律是否准确,机器也不会告诉我们它的所作所为,这使我们难以透彻地理解整个过程。
d47e62d2b349aca45e42305ed6714efbe5ed61d9第二,是模型的所有权归属问题,模型的所有者通常希望保护自己的模型。 比如,某个公司开发的供法院付费使用的评估罪犯再次犯罪概率的模型,根据法律规定,这个模型的所有权是属于这个公司,而法院也不希望有人通过研究该模型的工作机制从而找到钻空子的机会。所以类似于这种模型是对其他人是严格保密的。

在读研究生时,我的朋友在一个肺炎数据集上训练模型时,得出了“哮喘病史能减少患者因肺炎死亡的几率”的荒谬结论,事实上,哮喘病是肺炎的一个高危相关因素,但是数据显示,哮喘病史的患者肺炎死亡率仅约为无哮喘病史患者的50%,这是因为哮喘病患者会较早注意到自己的发病症状,及时就医,能够获得高质量的、更加积极的治疗。尽管在模型中修复这个小问题并不难,但这段经历给了我一个警告:如果对机器学习模型的内部运行机制缺乏理解,模型的预测结果可能和现实情况存在很大的偏差。

意识到这一点后,我花了很多精力试图解决这个问题。90年代初,麦迪逊大学的一名研究生做了一件有趣的事,他训练了一个决策树模型来模拟神经网络,使它和神经网络模型的尽可能接近,以了解神经网络模型的运行机制。15年前当我在康奈尔大学时,我们也采取了这个用简单模型模拟复杂神经网络的方法,用一个小而快的模型成功模拟了复杂模型所做出的预测,而且速度加快了上千倍。

过去七年,我们在微软开发了一个更简单、可解释的模型,我们叫它“压缩模型”或“蒸馏模型”。我们先训练出庞大、精确的、上百层的深度神经网络,再将深度神经网络压缩成较浅的神经网络,保持它的准确率的同时提高运行效率。

同时,为了避免机器学习产生类似“哮喘病史能减少患者因肺炎死亡的几率”的结论,我们借鉴了由80年代后期统计学家提出的GAMs模型(Generalized Additive Models),在原本简单的GAMs模型基础上扩充了机器学习的方法,使它能更准确地拟合数据集的真实状况,也更具可解释性。

最后我想说,在人工智能的早期,行业里流传着这样一句话:“你应该从事最困扰你的问题,因为这是突破瓶颈的绝佳机会,否则它总有一天会继续困扰你。”在研究领域,我发现最困扰我的问题,往往就是最好的下一个研究方向。因此我也鼓励大家去探索最令人困扰、最具有挑战性的任务,即使不确定能否获得回报,它也很值得。


原文发布时间为:2018-06-18

本文来自云栖社区合作伙伴“数据派THU”,了解相关信息可以关注“数据派THU”。

相关文章
|
4月前
|
C++
基于Reactor模型的高性能网络库之地址篇
这段代码定义了一个 InetAddress 类,是 C++ 网络编程中用于封装 IPv4 地址和端口的常见做法。该类的主要作用是方便地表示和操作一个网络地址(IP + 端口)
283 58
|
4月前
|
网络协议 算法 Java
基于Reactor模型的高性能网络库之Tcpserver组件-上层调度器
TcpServer 是一个用于管理 TCP 连接的类,包含成员变量如事件循环(EventLoop)、连接池(ConnectionMap)和回调函数等。其主要功能包括监听新连接、设置线程池、启动服务器及处理连接事件。通过 Acceptor 接收新连接,并使用轮询算法将连接分配给子事件循环(subloop)进行读写操作。调用链从 start() 开始,经由线程池启动和 Acceptor 监听,最终由 TcpConnection 管理具体连接的事件处理。
174 2
|
4月前
基于Reactor模型的高性能网络库之Tcpconnection组件
TcpConnection 由 subLoop 管理 connfd,负责处理具体连接。它封装了连接套接字,通过 Channel 监听可读、可写、关闭、错误等
157 1
|
4月前
|
JSON 监控 网络协议
干货分享“对接的 API 总是不稳定,网络分层模型” 看电商 API 故障的本质
本文从 OSI 七层网络模型出发,深入剖析电商 API 不稳定的根本原因,涵盖物理层到应用层的典型故障与解决方案,结合阿里、京东等大厂架构,详解如何构建高稳定性的电商 API 通信体系。
|
6月前
|
域名解析 网络协议 安全
计算机网络TCP/IP四层模型
本文介绍了TCP/IP模型的四层结构及其与OSI模型的对比。网络接口层负责物理网络接口,处理MAC地址和帧传输;网络层管理IP地址和路由选择,确保数据包准确送达;传输层提供端到端通信,支持可靠(TCP)或不可靠(UDP)传输;应用层直接面向用户,提供如HTTP、FTP等服务。此外,还详细描述了数据封装与解封装过程,以及两模型在层次划分上的差异。
1184 13
|
6月前
|
网络协议 中间件 网络安全
计算机网络OSI七层模型
OSI模型分为七层,各层功能明确:物理层传输比特流,数据链路层负责帧传输,网络层处理数据包路由,传输层确保端到端可靠传输,会话层管理会话,表示层负责数据格式转换与加密,应用层提供网络服务。数据在传输中经过封装与解封装过程。OSI模型优点包括标准化、模块化和互操作性,但也存在复杂性高、效率较低及实用性不足的问题,在实际中TCP/IP模型更常用。
932 10
|
1月前
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
2月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
202 2
|
2月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
|
4月前
|
机器学习/深度学习 数据采集 算法
贝叶斯状态空间神经网络:融合概率推理和状态空间实现高精度预测和可解释性
本文将BSSNN扩展至反向推理任务,即预测X∣y,这种设计使得模型不仅能够预测结果,还能够探索特定结果对应的输入特征组合。在二元分类任务中,这种反向推理能力有助于识别导致正负类结果的关键因素,从而显著提升模型的可解释性和决策支持能力。
409 42
贝叶斯状态空间神经网络:融合概率推理和状态空间实现高精度预测和可解释性