在种植蘑菇计算机的实验室里,科学家用菌丝体实现神经形态电路

简介: 在种植蘑菇计算机的实验室里,科学家用菌丝体实现神经形态电路


实验证明,黏菌可以通过不同类型的刺激来得到控制,并被用于模拟电路和电子产品的基本构建 —— 逻辑门,而这也是「蘑菇计算机」的基础。


乍一看,非传统计算实验室看起来就像一个普通的工作空间,其干净光滑的台面上排列摆放着计算机和科学仪器。但如果你仔细观察,就会发现有一些异常现象。


最近,一项公开分享的研究视频就显示了些许怪异之处:在凌乱的桌子上,有一些大型塑料容器,电极从泡沫状的物质中伸出,还有一块上面长着微小平菇的巨大主板。


当然,这个实验室并不是要重现《最后生还者》中的场景,这部作品中的研究人员一直致力于研究上面提到的那种东西。在 2001 年,该想法就出现了,相信下个世纪的计算机将由化学或生命系统或是湿件组成,它们将与硬件和软件协同工作。


为什么这么说?


理论上,将复杂的动力学和系统架构集成到计算基础设施中,可以让它用新的方式处理和分析信息。从基于实验生物学的算法以及微生物传感器和康普茶(又名红茶菌)电路板的原型中可以看出,这绝对是一个近期方取得进展的想法。


换句话说,他们试图想看看蘑菇是否可以执行计算和传感功能。


一块蘑菇主板。

关于真菌计算机,其中的菌丝体(一种真菌的分支,拥有网状根结构)可以充当导体以及计算机中的电子元件(蘑菇只是真菌的子实体)。它们可以接收和发送电信号,并保存记忆。


西英格兰大学非传统计算实验室主任 Andrew Adamatzky 说:「我将菌丝体培养物与木屑混合,然后将其放入封闭的塑料盒中,让菌丝体得以在基质中繁殖,这样一切看起来都是白色的。然后我们插入电极并记录菌丝体的电活动。也就是说,通过刺激,它变成了电活动,而后我们观测到了反应。」他还指出,这是英国唯一一所存在化学、液体或生物物质的计算机科学系湿实验室。


准备记录牡蛎真菌生长繁殖的碎屑中的电阻动态。

经典计算机将问题视为二进制数:1 和 0,这代表着这些设备所采用的传统方法。然而,该系统并不是总能捕捉到现实世界中的大多数动态。这就是研究人员正在研究量子计算机(可以更好地模拟分子)和基于活体脑细胞的芯片(可以更好地模拟神经网络)等技术的原因,这些技术可以以不同的方式表示和处理信息,使用一系列复杂的多维函数,并为某些问题提供更精确的计算。


科学家们早已知道,蘑菇会通过一种「互联网」般的通信方式与环境和周围的生物保持联系。你可能已有所耳闻,这种互联网被称为「木维网」(wood wide web)。通过破译真菌用此生物网络发送信号的语言,科学家们不仅可以深入了解地下生态系统的状态,还可以充分利用它们来改进我们自己的信息系统。


冬虫夏草真菌子实体的插图。

蘑菇计算机可以提供一些优于传统计算机的好处。虽然它们永远无法与当今现代机器的速度相提并论,但它们可以具有更高的容错率(它们可以自我再生)、可重新配置(它们自然生长和进化)并且消耗极少的能量。


在偶然发现蘑菇之前,从 2006 年到 2016 年,Adamatzky 都在从事黏菌(Slime mode)计算机的研究 —— 是的,这涉及到使用黏菌来解决计算问题。绒泡菌属,在科学上被称为黏菌,是一种类似变形虫的生物,其质量无定形地分布在整个空间里。


黏菌是「智能的」,这意味着它们可以找到解决问题的方法,比如在迷宫中找到最短路径,而无需程序员给出确切的指示或参数。然而,它们也可以通过不同类型的刺激来得到控制,并被用于模拟电路和电子产品的基本构建 —— 逻辑门。


记录牡蛎真菌生长繁殖。

黏菌的大部分工作都是针对网络设计中重要被称为「Steiner 树」或「生成树」问题进行的,并通过使用寻路优化算法来解决这些问题。「通过黏菌,我们模仿了小径和马路。我们甚至出版了一本关于道路交通网络生物活性评价的书,」Adamatzky 说,「我们还解决了计算几何中的许多问题,此外还使用黏菌来控制机器人。」


当结束自己的黏菌项目时,Adamatzky 想知道如果他们开始研究蘑菇是否会发生什么有趣的事情,蘑菇是一种与绒泡菌既相似又截然不同的有机体。「实际上,我们发现蘑菇会产生类似动作电位的脉冲, 与神经元产生的脉冲相同,」他说。「我们是第一个报告通过微电极测量真菌脉冲活动的实验室,也是第一个开发真菌计算和真菌电子器件的实验室。」


使用脉冲活动来制作门(gate)的一个示例。

在大脑中,神经元通过脉冲活动和脉冲模式来传递信号,这种特性已被模仿用以制作人工神经网络。菌丝体做的事情正与此类似。这意味着研究人员可以将脉冲的存在或不存在作为 0 或 1,并对检测到的脉冲的不同时间点和空间位置点进行编码,使其与计算机编程语言中看到的各种门(gate)相关联。此外,如果在两个独立不同的点刺激菌丝体,那么它们之间的电导率就会增加,那么它们之间的交流会更快、更可靠,从而使得记忆被建立。这就像脑细胞形成习惯的过程。


具有不同几何形状的菌丝体可以计算不同的逻辑功能,并且它们可以根据从中接收到的电响应来绘制出这些电路。「如果你发送电子,它们就会出现脉冲,」Adamatzky 说。「实现神经形态电路是可能的,可以说,我正计划用蘑菇来制作大脑。」


在塑造大脑时注入了化学物质的木碎屑。安德鲁・阿达马茨基( Andrew Adamatzky)

到目前为止,他们已经研究过牡蛎真菌 (Pleurotus djamor)、幽灵真菌 (Omphalotus nidiformis)、支架真菌 (无柄灵芝:Ganoderma resinaceum)、金针菇 (Flammulina velutipes)、裂褶菌 (Schizophyllum commune) 和冬虫夏草 (Cordyceps militari) .


「现在仅仅是可行性研究, 我们只是在证明其实现计算是可能的,而且用菌丝体实现基本逻辑电路和基本电子电路也是可能的,」Adamatzky 说。「未来,我们可以生产出更先进的菌丝体计算机和控制设备。」

相关文章
|
数据建模 计算机视觉
SiMBA:基于Mamba的跨图像和多元时间序列的预测模型
微软研究者提出了SiMBA,一种融合Mamba与EinFFT的新架构,用于高效处理图像和时间序列。SiMBA解决了Mamba在大型网络中的不稳定性,结合了卷积、Transformer、频谱方法和状态空间模型的优点。在ImageNet 1K上表现优越,达到84.0%的Top-1准确率,并在多变量长期预测中超越SOTA,降低了MSE和MAE。代码开源,适用于复杂任务的高性能建模。[[论文链接]](https//avoid.overfit.cn/post/c21aa5ca480b47198ee3daefdc7254bb)
1926 3
一文搞懂正则表达式之零宽断言
零宽断言: 用于查找在某些内容之前或之后的东西,也就是说它们像\b,^,$那样用于指定一个位置,这个位置应该满足一定的条件(即断言),因此它们也被称为零宽断言。
495 1
一文搞懂正则表达式之零宽断言
|
NoSQL 关系型数据库 MySQL
排行榜系统设计:高并发场景下的最佳实践
本文由技术分享者小米带来,详细介绍了如何设计一个高效、稳定且易扩展的排行榜系统。内容涵盖项目背景、技术选型、数据结构设计、基本操作实现、分页显示、持久化与数据恢复,以及高并发下的性能优化策略。通过Redis与MySQL的结合,确保了排行榜的实时性和可靠性。适合对排行榜设计感兴趣的技术人员参考学习。
1595 7
排行榜系统设计:高并发场景下的最佳实践
|
12月前
|
Java Python
> python知识点100篇系列(19)-使用python下载文件的几种方式
【10月更文挑战第7天】本文介绍了使用Python下载文件的五种方法,包括使用requests、wget、线程池、urllib3和asyncio模块。每种方法适用于不同的场景,如单文件下载、多文件并发下载等,提供了丰富的选择。
226 1
在Linux中,如何查看和修改网络接口配置?
在Linux中,如何查看和修改网络接口配置?
|
计算机视觉
DeprecationWarning
DeprecationWarning: ANTIALIAS is deprecated and will be removed in Pillow 10 (2023-07-01). Use LANCZOS or Resampling.LANCZOS instead.
832 1
|
自然语言处理 Java API
常见C++ 开源日志库的比较
常见C++ 开源日志库的比较
644 0
|
JavaScript 前端开发 Java
使用 SpringBoot+Vue 实现留言版
新建Vue项目和SpringBoot项目
423 0
使用 SpringBoot+Vue 实现留言版
|
负载均衡
VRRP 的作用
VRRP的主要作用是提供网络设备的冗余和故障转移功能,以确保网络的高可用性。具体来说,VRRP的作用包括: 1. 提供设备冗余:VRRP允许多个设备组成一个逻辑组,并指定其中一个设备为主设备,其他设备为备份设备。主设备处理数据包并提供服务,备份设备处于待命状态,以便在主设备故障时接管工作。 2. 实现故障转移:当主设备发生故障或不可用时,VRRP中的备份设备会自动接管主设备的功能,并继续提供服务,而无需手动干预。这意味着网络中的数据流可以在故障发生时无缝切换到备份设备上,提高了网络的可用性。 3. 维护网络连通性:VRRP组中的设备通过定期发送状态信息来保持同步。这种状态信息包括各设备的
756 0
|
XML 设计模式 Java
springboot如何创建并配置环境
springboot如何创建并配置环境
springboot如何创建并配置环境