为什么选择 CANNs?

预计阅读时间: 8 分钟

目标受众: 对吸引子网络感兴趣的实验神经科学家、计算神经科学家、AI 研究人员、工程师和学生


挑战:建模连续神经表征

你的大脑如何知道你在房间中的位置?海马和内嗅皮层的神经元如何在没有外部线索时,仍能维持稳定的位置、头部方向和导航路径表征?这些问题触及了神经科学中连续吸引子动力学的核心机制。

传统神经网络处理离散的输入和输出。相比之下,大脑需要处理 连续状态空间——位置、方向、速度等随时间平滑变化的变量。CANNs 提供了一个计算框架,帮助我们理解神经群体如何通过称为”吸引子”的稳定活动模式来编码、维持和更新这些连续表征。

../_images/smooth_tracking_1d.gif

1D CANN 追踪平滑移动的刺激,展示稳定的波包(bump)动力学

尽管理论研究已有数十年积累,应用 CANNs 仍面临诸多挑战:

  • 缺乏标准化实现 – 研究人员往往需要为每项研究从头构建模型

  • 工具碎片化 – 任务生成、模型仿真和分析通常需要不同的代码库

  • 可重复性障碍 – 缺少共享基础设施,很难比较不同研究的结果

  • 学习曲线陡峭 – 学生必须先实现复杂的动力学方程,才能探索科学想法

CANNs 库正是为了解决这些问题而生。

../_images/CANN2D_encoding.gif

CANN 网络中的 2D 空间编码模式


CANNs 有何独特之处?

连续吸引子神经网络 具有独特的性质,在神经科学和 AI 之间架起桥梁:

  1. 稳定的连续表征

    CANNs 能在连续状态空间中自然维持稳定的活动模式(吸引子)。与需要精细调参的循环神经网络(RNNs)不同,CANNs 基于坚实的理论基础来确保稳定性——活动波包(bump)即使没有外部输入也能持续存在,从而实现短期记忆和鲁棒编码。

  2. 类脑动力学

    与 Transformers 等基于注意力的模型相比,CANNs 的运作机制更接近生物神经回路。它们擅长建模:

    • 海马体中的 位置细胞 (Place cells) [1] (空间位置编码)

    • 内嗅皮层中的 网格细胞 (Grid cells) [2] (周期性空间地图)

    • 头部方向细胞 (Head direction cells) [3] (角度方向)

    • 工作记忆 网络(持续性活动)

  3. 连续状态空间处理

    传统深度学习模型通常将世界离散化,而 CANNs 原生处理连续变量——这与大脑处理位置、方向和感觉刺激平滑变化的方式相匹配。

  4. 路径积分与导航

    CANNs 能自然执行路径积分 [4]:它们整合随时间变化的速度信号来追踪位置,无需外部地标——这是啮齿动物导航和人类空间认知中的核心计算。

本库的 CANN 模型主要基于理论可解且被视为规范模型的 Wu-Amari-Wong (WAW) 连续吸引子神经网络 [5, 6, 7, 8]。这一规范模型为理解连续吸引子动力学提供了优雅的理论框架,其数学可解性使得研究人员能够深入分析网络的稳定性、动力学特性和编码能力。

除了带领大家如何实现经典的 WAW 模型之外,本库还继续讲解了如何实现一个拓扑结构如甜甜圈般的环面(torus)网格细胞(grid cell)模型,以展示 CANN 在处理高维空间表征时的灵活性。

在此理论基础上,最近的一项进展将 CANNs 与神经适应性 (A-CANN) 结合 [9, 10] ,成功解释了休息和睡眠期间多样化的海马序列重放模式 [11]。通过引入适应性——一种普遍的神经属性——作为单一控制变量,研究人员统一了看似不同的现象:静止重放、扩散序列和超扩散扫描。

这项工作展示了 CANN 的强大之处:简单且符合生物学原理的机制能够解释复杂的神经动力学,并对记忆编码和提取产生深远影响。

../_images/theta_sweep_animation.gif

网格细胞和头部方向网络中的 Theta 扫描动力学


谁应该使用这个库?

CANNs 库主要服务三个群体:

🔬 实验和计算神经科学家

连续吸引子网络在系统神经科学中越来越受关注。研究人员希望:

  • 分析实验数据 中的吸引子特征

  • 构建 CANN 模型 来验证假设并对照神经记录

  • 高效复现和扩展 已发表的 CANN 研究

🛠️ 工程师与开发者

随着 CANNs 日趋成熟,它们需要 标准化的开发实践——就像 Transformers 通过统一的 API 和共享基础设施彻底改变了 NLP 一样。工程师需要统一的工具来:

  • 实现类脑导航和记忆系统

  • 系统化地对 CANN 架构进行基准测试

  • 在机器人和 AI 中部署基于 CANN 的应用

🎓 学生与教育工作者

学习 CANNs 不应要求从头实现复杂的动力学。学生可以从中受益:

  • 开箱即用的模型 用于动手探索

  • 清晰的示例 演示关键概念

  • 可修改的代码 用于实验不同的参数和架构

没有标准化工具,每个小组都在重复造轮子。CANNs 库改变了这一现状。


关键应用场景

1. CANN 神经计算建模

以 Theta 扫描的建模与分析为例。

挑战:海马神经元在休息和睡眠期间呈现丰富的序列放电模式——静止、扩散、超扩散——这些模式具有重要的认知功能。理解”Theta 扫描” [12] 是记忆研究的核心。

解决方案:A-CANN 框架(CANN + 神经适应性) [9, 10] 通过单一变量解释了这些多样化的模式。本库提供:

  • 预构建模型HeadDirectionNetwork [13] , GridCellNetwork [11] , PlaceCellNetwork [14]

  • 专用可视化:Theta 扫描动画和分析工具

  • 可复现的流水线ThetaSweepPipeline 协调仿真、分析和绘图

影响:研究人员可以直接基于这项工作进行构建,无需重新实现模型和分析工具。

2. 教育与研究培训

挑战:传统的 CANNs 教学要求学生每学期从头实现模型,消耗了本应用于科学探索的数周时间。

解决方案:使用本库,学生可以:

  • 3 行代码 实例化 CANN 模型

  • 最少设置 生成任务数据(平滑追踪、群体编码)

  • 内置分析工具 可视化动力学

影响:学生现在能专注于 理解机制,而非调试实现代码。

3. 高性能仿真

挑战:长时间仿真和大规模实验(如参数扫描、拓扑数据分析 [15, 16])计算开销很大。

解决方案:配套的 canns-lib Rust 库提供:

  • 700倍加速:空间导航任务相比纯 Python 实现(兼容 RatInABox 的 API)

  • 1.13倍平均、1.82倍峰值加速:拓扑分析(Ripser 算法)

  • 完美精度 – 与参考实现的结果 100% 匹配

  • GPU/TPU 支持 – 通过 JAX [17] /BrainPy [18] 后端

影响:曾经需要数小时的任务现在只需几分钟。研究人员能够大规模探索参数空间并分析数据集。

仿真步数

纯 Python

canns-lib (Rust)

加速比

10²

0.020 s

<0.001 s

477×

10⁴

1.928 s

0.003 s

732×

10⁶

192.775 s

0.266 s

726×


为什么选择这个库?统一生态系统的优势

问题:碎片化的现状

目前,CANN 研究类似于 Transformers 出现之前的 NLP——每个实验室使用自定义代码、不同的实现方式和不兼容的格式。这种碎片化导致:

  • 重复造轮子的开销:研究人员反复重新实现基础功能

  • 可重复性问题:比较研究结果需要逆向工程代码

  • 进展缓慢:没有共享的模型、基准或最佳实践

愿景:将 CANNs 打造为吸引子网络的”Hugging Face Transformers”

就像 Hugging Face 标准化了 Transformer 的使用一样,CANNs 库致力于统一 CANN 研究

  1. 标准化的模型库

    • 预构建的 1D/2D CANNs、SFA 变体 [9, 10]、分层网络 [19]、网格细胞模型 [20]

    • 类脑模型:Hopfield 网络 [21]、基于脉冲(LIF)的模型

    • 结合 CANNs 与 ANNs 的混合架构

  2. 统一的任务 API

    • 平滑追踪、群体编码、闭环/开环导航

    • 直接导入实验轨迹

    • 跨任务的统一数据格式

  3. 完整的分析流水线

    • 能量景观、调谐曲线、放电场、脉冲嵌入

    • 拓扑数据分析(UMAP、TDA、持续同调)

    • Theta 扫描和 RNN 动力学分析

  4. 可扩展的架构

    • 用于自定义组件的基类(BasicModelTaskTrainerPipeline

    • 基于 BrainPy [18] 构建,支持 JAX 驱动的 JIT 编译和自动微分

    • 开箱即用的 GPU/TPU 加速

  5. 社区与共享

    • 用于模型和基准共享的开源基础

    • 统一的评估协议

    • 不断壮大的示例和教程生态系统


技术基础

这个库为何如此强大?

🚀 通过 BrainPy + Rust 实现高性能

  • BrainPy 集成 [18]:高级动力学 API,配备 JAX 的 JIT 编译、自动微分和 GPU/TPU 支持

  • canns-lib 加速:Rust 驱动的任务生成和拓扑分析关键路径

  • 高效编译:用简洁的 Python 编写模型,以 C++ 的速度运行

🧩 全面的工具链

  • 模型:1D/2D CANNs、分层网络、SFA 变体、类脑模型

  • 任务:追踪、导航、群体编码、轨迹导入

  • 分析器:可视化、TDA、波包拟合、动力学分析

  • 训练器:Hebbian 学习、预测工作流

  • 流水线:端到端工作流(如 Theta 扫描),单次调用即可运行

🔬 研究级质量

  • 经过验证的实现:模型复现了已发表的结果

  • 全面的测试:Pytest 套件覆盖关键行为

  • 活跃开发:定期更新、错误修复和社区贡献


当前状态与未来方向

开发阶段:本库已积极开发 4 个月,目前处于 beta (v0.x) 阶段。我们的研究小组正在内部使用它,并根据用户反馈积极扩展功能。

验证

  • ✅ 模型复现了已确立的 CANN 行为

  • ✅ 性能基准测试显示显著加速(canns-lib)

  • ✅ 跨模型和任务的可用示例不断增长

路线图

  • 扩展类脑模型集合(循环网络、基于脉冲的模型)

  • 添加混合 CANN-ANN 架构

  • 开发全面的基准测试套件

  • 建立社区贡献的模型库

  • 发表记录库设计的配套论文

局限性 (我们相信透明度):

  • Beta 软件 – API 可能根据反馈演变

  • 文档正在积极扩充(欢迎您的贡献!)

  • 目前预训练模型有限(我们正在构建)

  • 与成熟的深度学习框架相比社区较小(但正在增长!)


下一步:开始探索!

快速开始

准备好构建你的第一个 CANN 了吗?跳转到我们的 快速开始指南,10 分钟内完成动手演练。

了解更多

参与其中


对本文档有疑问或建议?在 GitHub 上开启 issue 或 discussion!