0

0

神经网络的可解释性存在问题:重温三十年前对 NN 的批判

WBOY

WBOY

发布时间:2023-04-21 14:19:09

|

1826人浏览过

|

来源于51CTO.COM

转载

可解释AI (XAI)

随着深度神经网络 (DNN) 用于决定贷款批准、工作申请、批准法院保释等与人们利益息息相关或者一些生死攸关的决定(例如在高速公路上突然停车),去解释这些决定,而不仅仅是产生一个预测分数,是至关重要的。

可解释人工智能 (XAI) 的研究最近集中在反事实(counterfactual)例子的概念上。这个想法很简单:首先制造一些有预期输出的反事实样例并输入到原来的网络中;然后,读取隐层单元解释为什么网络会产生一些其他输出。更正式地说:

“返回分数 p 是因为变量 V 具有与其关联的值 (v1, v2, ...)。如果 V 具有值 (v′1 , v′2 , ...),并且所有其他变量保持不变, 分数 p' 会被返回。”

下面则是更加具体的一个例子:

“你被拒绝贷款是因为你的年收入是 30,000 英镑。如果你的收入是 45,000 英镑,你就会获得贷款。”

然而,一篇由Browne 和 Swift提出的论文[1] (以下简称 B&W)最近表明,反事实示例只是稍微更有意义的对抗性示例,这些示例是通过对输入执行小的且不可观察的扰动而产生的,从而导致网络对它们进行错误分类具有很高的自信度。

此外,反事实的例子「解释」了一些特征应该是什么才能得到正确的预测,但「没有打开黑匣子」;也就是说,没有解释算法是如何工作的。文章继续争辩说,反事实的例子并没有为可解释性提供解决方案,并且「没有语义就没有解释」。

事实上,文章甚至提出了更强有力的建议:

1)我们要么找到一种方法来提取假定存在于网络隐藏层中的语义,要么

2)承认我们失败。

‎ Gemini Storybook
‎ Gemini Storybook

Google Gemini推出的AI绘本生成工具

下载

而Walid S. Saba本人则对(1)持悲观态度,换句话说他遗憾地承认我们的失败,以下是他的理由。

Fodor 和 Pylyshyn 的「鬼魂」

虽然大众完全同意B&W的观点,即“没有语义就没有解释”,但解释深度神经网络中隐藏层表示的语义为深度学习系统产生令人满意的解释的希望之所以不能够实现,作者认为,原因正是出自三十多年前Fodor 和 Pylyshyn [2]中概述的原因。

Walid S. Saba接着论证到:在解释问题出在哪里之前,我们需要注意到,纯粹的外延模型(例如神经网络)不能对系统性(systematicity)和组合性(compositionality)进行建模,因为它们不承认具有可再衍生的句法和相应语义的符号结构。

因此,神经网络中的表示并不是真正与任何可解释的事物相对应的“符号”——而是分布的、相关的和连续的数值,它们本身并不意味着任何可以在概念上解释的东西。

用更简单的术语来说,神经网络中的子符号表示本身并不指代人类在概念上可以理解的任何事物(隐藏单元本身不能代表任何形而上学意义的对象)。相反,它是一组隐藏单元,它们通常共同代表一些显着特征(例如,猫的胡须)。

但这正是神经网络无法实现可解释性的原因,即因为几个隐藏特征的组合是不可确定的——一旦组合完成(通过一些线性组合函数),单个单元就会丢失(我们将在下面展示)。

可解释性是“反向推理”,DNN无法逆向推理

作者讨论过为什么 Fodor 和 Pylyshyn 得出的结论是 NN 不能对系统性(因此是可解释的)推论进行建模[2]。

在符号系统中,有定义明确的组合语义函数,它们根据成分的意义计算复合词的意义。但是这种组合是可逆的——

也就是说,人们总是可以得到产生该输出的(输入)组件,并且正是因为在符号系统中,人们可以访问一种“句法结构”,这一结构含有如何组装组件的地图。而这在 NN 中都并非如此。一旦向量(张量)在 NN 中组合,它们的分解就无法确定(向量(包括标量)可以分解的方式是无限的!)

为了说明为什么这是问题的核心,让我们考虑一下 B&W 提出的在 DNN 中提取语义以实现可解释性的建议。B&W 的建议是遵循以下原则:

输入图像被标记为“建筑”,因为通常激活轮毂盖的隐藏神经元 41435 的激活值为 0.32。如果隐藏神经元 41435 的激活值为 0.87,则输入图像将被标记为“汽车”。

要了解为什么这不会导致可解释性,只需注意要求神经元 41435 的激活为 0.87 是不够的。为简单起见,假设神经元 41435 只有两个输入,x1 和 x2。我们现在所拥有的如下图 1 所示:

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

重温三十年前对于 NN 的批判:神经网络无法实现可解释 AI

图注:拥有两个输入的单一神经元的输出为0.87

现在假设我们的激活函数 f 是流行的 ReLU 函数,那么可以产生 z = 0.87 的输出。这意味着对于下表中显示的 x1、x2、w1 和 w2 的值,可以得到 0.87 的输出。

重温三十年前对于 NN 的批判:神经网络无法实现可解释 AI

表注:多种输入方式都可以产生0.87的数值

查看上表,很容易看出 x1、x2、w1 和 w2 的线性组合有无数个,它们会产生输出 0.87。这里的重点是 NN 中的组合性是不可逆的,因此无法从任何神经元或任何神经元集合中捕获有意义的语义。

为了与 B&W 的口号“没有语义就没有解释”保持一致,我们声明永远无法从 NN 获得任何解释。简而言之,没有组合性就没有语义,没有语义就没有解释,DNN 无法对组合性进行建模。这可以形式化如下:

1. 没有语义就没有解释[1] 2. 没有可逆的组合性就没有语义[2]

3. DNN 中的组合性是不可逆的[2]

=> DNN 无法解释(没有 XAI)

结束。

顺便说一句,DNN 中的组合性是不可逆的这一事实除了无法产生可解释的预测之外还有其他后果,尤其是在需要更高层次推理的领域,如自然语言理解 (NLU)。

特别是,这样的系统确实无法解释一个孩子如何仅从 () 之类的模板中学习如何解释无限数量的句子,因为“约翰”、“邻居女孩”、 “总是穿着T恤来这里的男孩”等都是的可能实例化,还有“经典摇滚”、“成名”、“玛丽的奶奶”、“在海滩上跑步”、 等都是 的所有可能的实例。

因为这样的系统没有“记忆”,而且它们的组成不能颠倒,理论上它们需要无数个例子来学习这个简单的结构。【编者注:这一点正好是乔姆斯基对于结构主义语言学的质疑,并由此开启了影响语言学半个多世纪的转化生成语法。】

最后,作者强调,三十多年前Fodor 和 Pylyshyn [2]提出了对 NN 作为认知架构的批评——他们展示了为什么 NN 不能对系统性、生产力和组合性进行建模,所有这些都是谈论任何“语义”所必须的——而这一令人信服的批评从未得到完美的回答。

随着解决人工智能可解释性问题的需求变得至关重要,我们必须重新审视那篇经典论文,因为它显示了将统计模式识别等同于人工智能进步的局限性。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

358

2026.03.03

页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

504

2023.08.14

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

70

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

109

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

326

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

62

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

105

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

108

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

236

2026.03.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
光速学会docker容器
光速学会docker容器

共33课时 | 2.1万人学习

AI绘画教程
AI绘画教程

共2课时 | 0.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号