来源:大数据文摘

作者:Frances Chance

多雨的夏季,蜻蜓最为常见,这些美丽的生物的飞行速度极快,狩猎能力也极为出色:蜻蜓狩猎的成功率捕获了高达95% ,它们一天可以吃掉数百只蚊子。

这种狩猎能力吸引了不少研究中的注意,几十年来,各国机构都在尝试将蜻蜓设计用于监视无人机的设计中。不过,桑迪亚国家实验室的计算神经科学家Frances Chance,想要探寻的,是这个“微型狩猎机器”的大脑。

Frances对蜻蜓的大脑能够低功耗地完成高速计算的能力非常好奇,并就此展开了一系列猜想和神经网络构建。我们将她构建神经网络的心得文章编译如下,或许你也能从中获得一些对神经网络的新思考。

《从蜻蜓大脑中得到的启发》

虽然蜻蜓的大脑可能无法进行像“下围棋”这样的策略类游戏,但它们确实展示了一种战略形式:在猎物到达当前位置之前,就瞄准、拦截它的“盘中餐” 。这种“预判力”需要以极快的速度执行计算——蜻蜓通常只需要50毫秒就可以开始转动以响应猎物的动作。它可以同时跟踪头部和身体之间的角度,以便它知道哪个翅膀更快地扇动以在猎物前面转动。

考虑到单个神经元将其所有输入相加所需的时间(称为膜时间常数)超过10毫秒,蜻蜓的大脑执行的是一项非凡的工作。

蜻蜓只需要大约50毫秒就开始对猎物的动作做出反应。如果我们假设眼睛中的细胞需要10毫秒来检测和传输有关猎物的信息,另外5毫秒让肌肉开始产生力量,那么神经回路只剩下 35 毫秒来进行计算。鉴于单个神经元通常需要至少10毫秒来整合输入,因此底层神经网络可以至少有三层深。

那么,人类可以建立一个像蜻蜓拦截系统一样工作的神经网络吗?这种神经网络又有什么用途呢?

模型蜻蜓根据猎物的转动重新定向。较小的黑色圆圈是蜻蜓的头部,保持在其初始位置。黑色实线表示蜻蜓飞行的方向;蓝色虚线是模型蜻蜓眼睛的平面。红星是猎物相对于蜻蜓的位置,红色虚线表示蜻蜓的视线。

我首先想到的是防御上的应用,例如导弹防御,例如,让未来的导弹快速计算拦截轨迹而不影响导弹重量或功耗的机载系统。

当然也可能会有民用应用,例如,控制自动驾驶汽车的算法可能会变得更高效,不再需要大量的计算设备。如果受蜻蜓启发的系统可以执行计算以绘制拦截轨迹,那么自主无人机或许可以使用它来避免碰撞。如果计算机可以制造成与蜻蜓大脑相同的大小(约6立方毫米),也许有一天驱虫剂和蚊帐将成为过去,取而代之的是小型杀虫无人机!

开始动手!

为了开始回答这些问题,我创建了一个简单的神经网络来代替蜻蜓的神经系统,并用它来计算蜻蜓捕捉猎物的转弯。我的三层神经网络作为软件模拟存在。最初,我在Matlab中工作,因为那是我已经在使用的编码环境。之后,我将该模型移植到Python中。

因为蜻蜓必须看到它们的猎物才能捕捉到它,所以我首先模拟了蜻蜓眼睛的简化版本,捕捉了追踪猎物所需的最少细节。虽然蜻蜓有两只眼睛,但人们普遍认为它们不使用立体深度感知来估计与猎物的距离。在我的模型中,我没有对双眼进行建模,也没有尝试蜻蜓的眼睛匹配的分辨率,相反,神经网络的第一层包括441个代表眼睛输入的神经元,每个神经元描述视野的一个特定区域——这些区域被平铺以形成一个21×21的神经元阵列,覆盖蜻蜓的视野。随着蜻蜓转动,猎物图像在蜻蜓视野中的位置发生变化。蜻蜓计算将猎物的图像与这些“眼睛”神经元中的一个(或几个,如果猎物足够大)对齐所需的轮数。第二组包含441个神经元,也在网络的第一层,告诉蜻蜓哪些眼睛神经元应该与猎物的图像对齐,即猎物应该在其视野内的哪个位置。

模型蜻蜓与猎物交战。

接收描述物体在视野中运动的输入并将其转化为关于蜻蜓需要转向哪个方向的指令的计算,这类处理能力在我的人工神经网络的第一层和第三层之间进行。在第二层中,我使用了194,481 (21 4) 神经元,可能比蜻蜓用于此任务的神经元数量大得多。我预先计算了网络中所有神经元之间连接的权重。虽然这些权重可以用足够的时间学习,但通过进化和预编程的神经网络架构“学习”是有优势的。一旦它作为有翼成虫(技术上称为天体)从若虫阶段出来,蜻蜓就没有父母来喂养它或向它展示如何捕猎。蜻蜓需要适应新的身体,同时思考狩猎策略。我设置了网络的权重以允许模型蜻蜓计算正确的转弯以从传入的视觉信息中拦截它的猎物。

什么样转弯呢?例如,一只蜻蜓想要抓住一只经过的蚊子,它不能只瞄准蚊子。借用曲棍球运动员韦恩·格雷茨基 (Wayne Gretsky) 曾经说过的关于冰球的说法,蜻蜓必须瞄准蚊子所在的位置。您可能认为遵循Gretsky的建议需要复杂的算法,但实际上该策略非常简单:蜻蜓所需要做的就是在其视线与“午餐”和固定参考方向之间保持恒定的角度。

有任何驾驶船只经验的读者都会明白其中含义。当另一艘船的视线与参考方向(例如正北)之间的角度保持不变时,船员们就会担心,因为他们处于碰撞路线上。长期以来,水手们一直避免转向这种称为平行导航的航线,以避免碰撞。

这三个热图显示了同一时刻神经元的活动模式;第一组代表眼睛,第二组代表那些指定哪些眼睛神经元与猎物的图像对齐的神经元,第三组代表那些输出运动命令的神经元。

转化为想要与猎物碰撞的蜻蜓, 解决办法很简单:相对于某些外部参考,保持对猎物的视线恒定。然而,对于蜻蜓来说,这项任务也并非如此简单,因为它会猛扑和转身,收集食物。蜻蜓没有内部陀螺仪,无论蜻蜓如何转动,它都会保持恒定的方向。它也没有始终指向北方的磁罗盘。在我对蜻蜓狩猎的简化模拟中,蜻蜓转向将猎物的图像与其眼睛上的特定位置对齐,但它需要计算该位置应该是什么。

我的模拟神经网络的第三层,也是最后一层,是运动命令层。这一层神经元的输出是蜻蜓肌肉的高级指令,告诉蜻蜓向哪个方向转动。蜻蜓还使用该层的输出来预测它自己的动作对其视野中猎物图像位置的影响,并相应地更新投影位置。这种更新允许蜻蜓在接近猎物时相对于外部世界保持其猎物的视线稳定。

生物蜻蜓可能已经进化出额外的工具来帮助进行这种预测所需的计算。例如,蜻蜓有专门的传感器来测量飞行过程中的身体旋转以及头部相对于身体的旋转——如果这些传感器足够快,蜻蜓可以直接从传感器输出或使用一种方法来交叉检查另一种。我在模拟中没有考虑这种可能性。

为了测试这个三层神经网络,我模拟了一只蜻蜓和它的猎物,它们在三维空间中以相同的速度移动。当他们这样做时,我的建模神经网络大脑“看到”了猎物,计算指向哪里以将猎物的图像保持在一个恒定的角度,并向肌肉发送适当的指令。我能够证明蜻蜓大脑的这个简单模型确实可以成功拦截其他虫子,甚至是沿着弯曲或半随机轨迹行进的猎物。

模拟蜻蜓没有完全达到生物蜻蜓的成功率,也不具备蜻蜓众所周知的所有优点(例如惊人的飞行速度)。

我们还能从蜻蜓身上学到什么?

我们还需要做更多的工作来确定这个神经网络是否真的包含了蜻蜓大脑的所有秘密。弗吉尼亚州霍华德休斯医学研究所Janelia研究园区的研究人员为蜻蜓开发了微型“背包”,可以在蜻蜓飞行时测量其神经系统发出的电信号,并传输这些数据进行分析。背包足够小,不会分散蜻蜓的注意力。同样,神经科学家还可以记录蜻蜓大脑中单个神经元的信号,同时昆虫保持不动,但通过向其提供适当的视觉提示,使其认为它在移动,从而创建了一个蜻蜓级的虚拟现实。

来自这些系统的数据允许神经科学家通过将蜻蜓大脑模型的活动与活跃蜻蜓中生物神经元的活动模式进行比较来验证蜻蜓大脑模型。虽然我们还不能直接测量蜻蜓大脑中神经元之间的个体连接,但我和我的合作者将能够推断出蜻蜓的神经系统是否正在进行类似于我的人工神经网络预测的计算。这将有助于确定蜻蜓大脑中的连接是否类似于我在神经网络中预先计算的权重。我们将不可避免地找到我们的模型与实际蜻蜓大脑不同的方式。也许这些差异将为蜻蜓大脑加速计算的捷径提供线索。

蜻蜓还可以教我们如何在计算机上实现“注意力”。它的神经系统会提高对特定的、可能选定的目标的反应音量,即使在同一视野中可以看到其他潜在的猎物。蜻蜓一旦决定追逐特定的猎物,除非捕捉失败,否则绝不改变目标。

即使我们最终发现,用于引导注意力的“蜻蜓机制”不如人们在拥挤的咖啡店中集中注意力的那些机制那么复杂,但这种更简单但功耗更低的机制可能有利于下一代算法和计算机系统的运算。

研究蜻蜓大脑的优势并不止于新算法;它们还会影响系统设计。蜻蜓的眼睛速度很快,相当于每秒200帧:这是人类视觉速度的几倍。但它们的空间分辨率相对较差,可能只有人眼的百分之一。尽管感知能力有限,但了解蜻蜓如何如此有效地捕猎,可以为设计更高效系统提供建议。再回到导弹防御问题,蜻蜓的例子表明,我们具有快速光学传感的反导弹系统可能需要较低的空间分辨率来击中目标。

其他昆虫“老师”们

蜻蜓并不是当今唯一可以为受神经启发的计算机设计提供信息的昆虫。帝王蝶的迁徙距离令人难以置信地长,它们利用某种与生俱来的本能在一年中的适当时间开始它们的旅程,并朝着正确的方向前进。我们知道它们依赖于太阳的位置,通过太阳航行需要跟踪一天中的时间。比如一只向南飞的蝴蝶,它可以感知到太阳早上在你的左边,而在下午的时候在右边。因此,为了确定路线,蝴蝶大脑必须读取自己的昼夜节律,并将该信息与所观察到的信息结合起来。

其他昆虫,如撒哈拉沙漠蚂蚁,必须长距离觅食。一旦找到食物来源,这只蚂蚁不会简单地原路返回巢穴,很可能是一条迂回的路径。相反,它可以计算返回的直接路线。因为蚂蚁食物来源的位置每天都在变化,所以它必须能够记住它在觅食过程中走过的路径,将视觉信息与一些内部距离测量结合起来,然后 从这些记忆中计算出它的返回路线。

虽然没有人知道沙漠蚂蚁的哪些神经回路执行这项任务,但 Janelia 研究园区的研究人员已经确定了让果蝇使用视觉地标进行自我定位的神经回路 。沙漠蚂蚁和帝王蝶可能使用类似的机制。这种神经回路有朝一日可能会被被用在低功率无人机中。

如果受昆虫启发的计算效率使得这些专门组件的数百万个实例可以并行运行以支持更强大的数据处理或机器学习,那又会怎样?下一个 AlphaZero 能否结合数以百万计的蚂蚁觅食架构来改进其游戏玩法?也许昆虫会激发新一代计算机。一小群类似蜻蜓拦截的算法可用于控制游乐园游乐设施的移动部件,确保即使在复杂但激动人心的驾驶中,设备也不会发生碰撞。

没有人知道下一代计算机会是什么样子,同样,没有人能说出平台开发的最佳途径是什么。虽然研究人员从人脑中汲取灵感开发了早期的神经网络,但今天的人工神经网络通常依赖于与大脑截然不同的计算。研究生物神经回路中单个神经元的计算——目前只能直接在非人类系统中实现——可能会教给我们更多。

昆虫,看似简单,但它们的能力往往令人惊讶,对下一代计算机的发展有很大贡献。所以下次当你看到一只昆虫做一些聪明的事情时,想象一下如果你能拥有一支由小蜻蜓、蝴蝶或蚂蚁大脑组成的小军队的效率,它会对你的日常生活产生什么影响。也许未来的计算机会给“蜂巢思维”这个术语赋予新的含义,它拥有大量高度专业化但极其高效的微型处理器,能够根据手头的任务进行重新配置和部署。随着当今神经科学的进步,这种看似幻想的事物可能比您想象的更接近现实。

素材来源:

https://spectrum.ieee.org/fast-efficient-neural-networks-copy-dragonfly-brains

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)大脑研究计划,构建互联网(城市)大脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。每日推荐范围未来科技发展趋势的学习型文章。目前线上平台已收藏上千篇精华前沿科技文章和报告。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

导弹防御系统,如何跟蜻蜓的大脑学习计算?相关推荐

  1. 速度快到飞起 如何跟蜻蜓的大脑学习计算?

    编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 科学家研究了其中一种大型昆虫蜻蜓的大脑,希望利用这些昆虫的专长来设计计算系统,这些系统针对拦截来袭导弹或跟踪气味羽流等任务进行了 ...

  2. 拦截导弹 导弹防御系统

    拦截导弹 & 导弹防御系统 拦截导弹 导弹防御系统 拦截导弹 题目链接:acwing1010. 拦截导弹 题目描述: 输入输出: 分析: 第一个问题为输出最长递减子序列,由于导弹数在1000以 ...

  3. C++---最长上升子序列模型---导弹防御系统(每日一道算法2023.3.5)

    注意事项: 本题的dp:"线性dp-最长上升子序列的长度" 本题的贪心(单调队列):"最长上升子序列模型-拦截导弹" 下面思路只讲如何运用这些东西来解这道题 强 ...

  4. 导弹防御系统[导弹拦截系统]

    导弹防御系统[dfs] 题目链接 引言(请忽略):今天是小白ACM集训的日子,然后数据结构实在是太难了,真是学不动了,然后就只能无助地去复习以前的题了,记得以前在SDUT程设二里面有一道题叫最少拦截系 ...

  5. 问题 : 导弹防御系统

    题目描述 某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹 ...

  6. CG14导弹防御系统

    [问题描述] 某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的 ...

  7. AcWing LIS相关问题 187 导弹防御系统

    ''' DFS枚举所有可能的元素放到上升序列或者下降序列的情况 '''ans = [0x7fffffff] # 最小序列总数 up = [0] * 60 # 上升序列的尾数数值 down = [0] ...

  8. 【NOIP2013模拟】导弹防御塔

    题目 Freda的城堡-- "Freda,城堡外发现了一些入侵者!" "喵-刚刚探究完了城堡建设的方案数,我要歇一会儿嘛lala~" "可是入侵者已经 ...

  9. 如何从系统层面优化深度学习计算?

    编者按:在图像.语音识别.自然语言处理.强化学习等许多技术领域中,深度学习已经被证明是非常有效的,并且在某些问题上已经达到甚至超越了人类的水平.然而,深度学习对于计算能力有着很大的依赖,除了改变模型和 ...

最新文章

  1. Mysql高级调优篇——第一章:调优必备索引知识
  2. python中提供怎样的内置库、可以用来创建用户界面_Python程序设计案例课堂第二篇核心技术第十章图形用户界面...
  3. 日期时间格式之间的相互转换
  4. css3如何链如外部字体,微信小程序引入外部字体总结(针对安卓加载缓慢问题)...
  5. 123. 买卖股票的最佳时机 III
  6. html异步 post,Jquery中Ajax/Post同步和异步请求
  7. VISIO 连接线转角居然默认不是直角,每次要改格式
  8. 晶振讲述工作原理及作用
  9. Android Provision源码分析
  10. 【C语言】数字直角三角形,数字矩阵,蛇形数组
  11. ccfcsp 202206-2 寻宝大冒险
  12. Docker架构简介 命令详解
  13. Unity DOTS系统概览
  14. package.json文件是个什么东东?
  15. ValueError: Expected parameter scale of distribution Normal to satisfy the constraint GreaterThan
  16. uniapp:去掉微信小程序顶部的导航栏
  17. 现世中国:丑态百出的流行文化!
  18. 易基因|精准医学: TERT启动子DNA甲基化在癌症中的双重作用
  19. 自问自答——使用视图能提高查询效率么?
  20. 12月5日:thinkphp模板

热门文章

  1. Android拍照录像框架Camera2使用简介
  2. 构建自动化运维——第十期魅族技术开放日现场纪实
  3. Linux(中科方德服务器版4.0)springboot启动多个服务脚本开机自启
  4. 2016年最流行的Android组件、工具、框架大全
  5. js 判断数组中是否包含
  6. 数据的回归与分类分析
  7. 经典教材--C语言程序设计(第五版)pdf
  8. 脸上只有嘴的飞信为什么败给脸上没嘴的微信
  9. (1-2)Unity3D/2D:Sprite Renderer组件详解
  10. STM32 MLX90614+OLED显示温度(含代码)