AI未经学习!最新研究揭示了解读人工智能黑盒的方法

人工智能(AI)一直在迅速发展,但对人类来说,强大的模型却是个「黑匣子」。

我们不了解模型内部的运作原理,不清楚它得出结论的过程。

然而最近,波恩大学(University of Bonn)的化学信息学专家Jürgen Bajorath教授和他的团队取得了重大突破。

他们设计了一种技术,揭示了药物研究中使用的某些人工智能系统的运行机制。

研究显示,人工智能模型主要通过回忆现有数据来预测药物有效性,而非学习特定化学相互作用。

——也就是说,AI预测纯靠拼凑记忆,机器学习实际上并没有学习!

他们的研究结果最近发表在《自然机器智能》(Nature Machine Intelligence)杂志上。

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

AI并没有学习!Nature子刊最新研究解码人工智能黑盒

论文地址:https://www.nature.com/articles/s42256-023-00756-9

AI智研社 AI智研社

AI智研社是一个专注于人工智能领域的综合性平台

AI智研社 15 查看详情 AI智研社

在医药领域,研究人员正在狂热地寻找有效的活性物质来对抗疾病——哪种药物分子最有效?

通常,这些有效的分子(化合物)会对接在蛋白质上,蛋白质作为触发特定生理作用链的酶或受体。

在特殊情况下,某些分子还负责阻断体内的不良反应,例如过度的炎症反应。

可能的化合物数量巨大,寻找有效的化合物就像大海捞针一样。

因此,研究人员首先使用AI模型来预测,哪些分子最能与各自的靶蛋白对接并牢固结合。然后在实验研究中,更详细地进一步筛选这些候选药物。

AI并没有学习!Nature子刊最新研究解码人工智能黑盒

自人工智能发展以来,药物发现研究也越来越多地采用AI相关的技术。

比如图神经网络(GNN),适用于预测某种分子与靶蛋白结合的强度。

图由表示对象的节点和表示节点之间关系的边组成。在蛋白质与配体复合物的图表示中,图的边连接蛋白质或配体节点,表示物质的结构,或者蛋白质和配体之间的相互作用。

GNN模型使用从X射线结构中提取的蛋白质配体相互作用图,来预测配体亲和力。

Jürgen Bajorath教授表示,GNN模型对于我们来说就像一个黑匣子,我们无法得知它如何得出自己的预测。

AI并没有学习!Nature子刊最新研究解码人工智能黑盒

Jürgen Bajorath教授任职于波恩大学LIMES研究所、波恩-亚琛国际信息技术中心(Bonn-Aachen International Center for Information Technology)和拉玛机器学习与人工智能研究所(Lamarr Institute for Machine Learning and Artificial Intelligence)。

人工智能如何工作?

来自波恩大学化学信息学的研究人员,与罗马Sapienza大学的同事一起,详细分析了图神经网络是否真的学习到了蛋白质与配体的相互作用。

研究人员使用他们专门开发的「EdgeSHAPer」方法分析了总共六种不同的GNN架构。

EdgeSHAPer程序可以判断GNN是否学习了化合物和蛋白质之间最重要的相互作用,或者是通过其他的方式来得出预测。

科学家们使用从蛋白质配体复合物结构中提取的图训练了六个GNN,——化合物的作用方式以及与靶蛋白的结合强度已知。

然后,在其他复合物上测试经过训练的GNN,并使用EdgeSHAPer分析GNN如何产生预测。

「如果GNN按照预期行事,它们需要学习化合物和靶蛋白之间的相互作用,并且通过优先考虑特定的相互作用来给出预测」。

然而,根据研究小组的分析,六个GNN基本上都没有做到这一点。大多数GNN只学会了一些蛋白质与药物的相互作用,主要集中在配体上。

AI并没有学习!Nature子刊最新研究解码人工智能黑盒

上图展示了在6个GNN中的实验结果,色标条表示用EdgeSHAPer确定的每个预测的前25个边中蛋白质、配体和相互作用所占的平均比例。

我们可以看到,代表绿色的相互作用本该是模型需要学到的,然而在整个实验中所占的比例都不高,而代表配体的橙色条占了最大的比例。

为了预测分子与靶蛋白的结合强度,模型主要「记住」了它们在训练过程中遇到的化学相似分子及其结合数据,而不管靶蛋白如何。这些被记住的化学相似性基本上决定了预测。

AI并没有学习!Nature子刊最新研究解码人工智能黑盒

这让人想起「聪明的汉斯效应」(Clever Hans effect),——就像那匹看起来会数数的马,实际上是根据同伴面部表情和手势的细微差别,来推断出预期的结果。

这或许意味着,GNN所谓的「学习能力」可能是站不住脚的,模型的预测在很大程度上被高估了,因为可以使用化学知识和更简单的方法进行同等质量的预测。

不过,研究中也发现了另外一个现象:当测试化合物的效力增加时,模型倾向于学习到更多的相互作用。

也许通过修改表征和训练技术,这些GNN还能朝着理想的方向进一步改进。不过,对于可以根据分子图学习物理量的假设,一般来说应该谨慎对待。

「人工智能不是黑魔法。」

以上就是AI未经学习!最新研究揭示了解读人工智能黑盒的方法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/439001.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月7日 17:47:30
下一篇 2025年11月7日 17:48:21

相关推荐

  • python决策树算法的实现步骤

    答案是实现决策树需依次完成数据预处理、训练集划分、模型构建与训练、预测评估四步,使用scikit-learn库可高效完成,关键在于数据清洗、特征编码、参数设置及结果可视化,全过程强调逻辑清晰与细节把控。 实现Python中的决策树算法并不复杂,关键在于理解每一步的逻辑和操作。以下是基于scikit-…

    2025年12月14日
    000
  • python命名关键字参数的使用注意

    命名关键字参数必须通过关键字传递,使用星号*分隔位置参数与关键字参数,确保调用时显式传参,提升函数接口清晰度和安全性。 在Python中,命名关键字参数(keyword-only arguments)是指必须通过关键字传递的参数,不能通过位置传递。这种参数定义方式增强了函数调用的清晰性和安全性。正确…

    2025年12月14日
    000
  • python中mock的断言使用

    答案:Python中使用unittest.mock的断言方法验证模拟对象调用情况,如assert_called_once_with检查调用次数和参数。通过@mock.patch替换目标方法,结合call_count和assert_any_call可验证多次调用的参数,确保函数行为正确。 在Pytho…

    2025年12月14日 好文分享
    000
  • Langserve中实现动态RAG应用:Langchain链式输入处理教程

    本教程详细阐述如何在langserve中构建支持动态输入的rag(检索增强生成)应用。文章通过langchain的runnable接口,展示如何将用户查询和目标语言作为动态参数传递给检索器和llm提示模板,从而实现灵活、可配置的交互式ai服务。内容涵盖链式组件的构建、langserve路由配置及示例…

    2025年12月14日
    000
  • Selenium自动化中循环操作的元素定位与显式等待策略

    本文旨在解决selenium自动化脚本在循环操作中遇到的“元素未找到”问题,特别是当页面动态加载或导航后。我们将深入探讨隐式等待的局限性,并详细介绍如何通过引入selenium的显式等待机制(`webdriverwait`与`expected_conditions`)来确保元素在交互前处于可操作状态…

    2025年12月14日
    000
  • Dash应用中通过URI片段实现选项卡间导航与同步

    本文将详细介绍如何在dash多选项卡应用中,利用`dcc.location`组件和回调函数,通过uri片段(url哈希值)实现选项卡之间的导航与状态同步。用户可以通过点击链接激活不同的选项卡,同时确保url与当前活动选项卡状态保持一致,提升用户体验和应用的鲁棒性。 在构建复杂的Dash应用程序时,多…

    2025年12月14日
    000
  • Tkinter 文件与文件夹选择:实现灵活的文件系统路径输入

    tkinter的`filedialog`模块通常将文件和文件夹选择功能分开。本文将介绍一种实用的方法,通过组合`askopenfilename`和`askdirectory`函数,实现一个统一的对话框,允许用户灵活选择文件或文件夹,从而优化用户体验并简化路径输入流程。 引言:Tkinter 文件系统…

    2025年12月14日
    000
  • 在 macOS 上使用 PyObjC 实现 MPEG-4 音频文件的拖放功能

    本文详细介绍了如何在 macos 环境下,利用 pyobjc 框架实现应用程序的拖放功能,特别是针对 mpeg-4 音频文件的处理。文章阐述了正确注册拖放类型(如 `public.audio`、`public.mpeg-4-audio` 及 url/文件 url 类型)的重要性,并提供了从拖放操作中…

    2025年12月14日
    000
  • Dash Python:实现多标签页应用中的内部链接导航

    本教程详细介绍了如何在dash多标签页应用中,通过点击页面内的超链接来激活不同的标签页。核心方法是利用`dcc.location`组件管理uri片段(hash),并结合回调函数同步`dcc.location`的`hash`属性与`dbc.tabs`的`active_tab`属性,从而实现基于url状…

    2025年12月14日
    000
  • Dash dbc.Tabs 高级交互:通过内部链接实现标签页动态切换

    本教程旨在详细阐述如何在 dash 应用程序中,特别是使用 `dash-bootstrap-components` 的 `dbc.tabs` 组件时,通过内部链接实现不同标签页的动态切换。核心方法是利用 `dcc.location` 组件监听 uri 片段(hash),并通过回调函数将 url ha…

    2025年12月14日
    000
  • 解决Oracle中pd.read_sql的IN子句参数绑定问题

    本文探讨了在使用pandas的`pd.read_sql`函数查询oracle数据库时,针对`in`子句无法直接绑定python元组或列表参数的`databaseerror`问题。核心内容是揭示oracle驱动的参数绑定机制,并提供一种将元组/列表动态展开为多个命名参数的有效解决方案,确保sql查询的…

    2025年12月14日
    000
  • Dash应用中通过内部链接实现标签页导航与状态同步

    本教程详细阐述如何在dash多标签应用中,利用`dcc.location`组件和回调函数,实现通过页面内部链接激活指定标签页的功能。文章将指导读者如何同步url片段(hash)与`dbc.tabs`的`active_tab`属性,从而创建流畅的用户导航体验,避免页面刷新,提升应用交互性。 在构建复杂…

    2025年12月14日
    000
  • 使用ezdxf在PyQt5应用中集成DWG/DXF文件查看器

    本文详细介绍了如何在基于pyqt5的python应用程序中集成dwg或dxf文件查看功能,无需依赖外部cad软件。核心在于利用`ezdxf`库的`drawing`附加组件,该组件提供了专门为pyqt5设计的后端,能够将dxf文件内容渲染到ui界面中。文章将通过示例代码演示如何构建一个简单的dxf查看…

    2025年12月14日
    000
  • SortedSet中键值修改的陷阱与正确操作指南

    在使用sortedcontainers库的SortedSet时,直接修改集合中元素的键值会导致不可预测的行为和错误。本文将深入探讨这一问题的原因,并通过代码示例展示正确的操作方法:即在修改元素键值前,务必先将其从SortedSet中移除,修改后再重新添加,以确保集合的内部一致性和正确性。 理解Sor…

    2025年12月14日
    000
  • Python SortedSet 元素修改:理解键不变性与正确操作实践

    在使用 sortedcontainers.sortedset 时,若元素的排序键(由 key 参数定义)在元素仍存在于集合中时被修改,将导致集合内部结构损坏,进而引发 discard 或其他操作失败。正确的做法是先将元素从 sortedset 中移除,修改其键值相关的属性,然后再重新添加回集合,以确…

    2025年12月14日
    000
  • Python包安装中的常见警告解析与解决方案

    在python环境中使用`pip`安装库时,遇到警告信息但最终显示“所有要求已满足”是常见情况。本文将针对`pywinpty`构建失败和`sklearn`包名废弃这两个典型警告,提供详细的识别方法和解决方案,强调正确安装构建工具和使用规范的包名,确保库的顺利安装与运行。 在Python开发中,通过p…

    2025年12月14日
    000
  • 在tqdm process_map中高效传递大型数组参数:共享内存解决方案

    在使用`tqdm.contrib.concurrent.process_map`进行并行处理时,直接将大型数组作为函数参数传递可能因数据复制导致`memoryerror`。本教程将介绍如何利用`multiprocessing.array`创建共享内存,使多个进程能够高效访问同一份大型数组数据,避免昂…

    2025年12月14日
    000
  • Python Turtle模块bgpic()函数图片格式兼容性指南

    本教程详细解析python turtle模块`bgpic()`函数在使用时遇到的图片格式兼容性问题。我们将探讨`bgpic()`函数对不同图片格式的支持限制,特别是针对常见的`.png`文件报错原因,并提供将图片转换为`.gif`格式的解决方案及示例代码,确保背景图片能正确加载。 理解turtle.…

    2025年12月14日
    000
  • 如何在FastAPI应用中优雅地集成并管理异步TCP服务器

    本文详细探讨了在FastAPI应用中,通过`lifespan`事件管理异步TCP服务器的正确方法。核心内容包括识别`lifespan`中`yield`关键字的关键作用,阐明了在应用启动阶段启动TCP服务器任务的必要性,并提供了如何创建、运行及优雅关闭这些异步TCP服务器任务的完整示例代码和专业指导,…

    2025年12月14日
    000
  • 优化Python剪刀石头布游戏:实现持续游戏与退出机制

    本文深入探讨了python剪刀石头布游戏中常见的循环控制问题,特别是如何正确实现“再玩一次”功能以及优雅的退出机制。通过分析原始代码的局限性,我们提出并演示了一种基于`while true`循环和用户输入控制的优化方案,旨在提供一个更加灵活、用户友好的游戏体验,并强调了代码可读性和健壮性的重要性。 …

    2025年12月14日
    000

发表回复

登录后才能评论
关注微信