为什么选择 CANNs?¶
预计阅读时间: 8 分钟 目标读者: 对类脑计算感兴趣的神经科学家、AI 研究人员、工程师和学生
挑战:建模连续神经表征¶
你的大脑如何知道你在房间中的位置?海马体和内嗅皮层中的神经元如何在没有外部线索的情况下,维持稳定的位置、头部方向和导航路径的表征?这些问题触及神经科学最迷人的现象之一:连续吸引子神经网络(CANNs)。
与处理离散输入输出的传统神经网络不同,大脑必须处理连续状态空间——位置、方向、速度和其他随时间平滑变化的变量。CANNs 提供了一个计算框架,用于理解神经群体如何通过称为”吸引子”的稳定活动模式来编码、维持和更新这些连续表征。
![]()
1D CANN 追踪平滑移动刺激,展示稳定的 bump 动力学
尽管在理论上取得了数十年的进展,CANNs 仍然具有挑战性:
缺乏标准化实现 – 研究人员为每项研究从头构建模型
工具碎片化 – 任务生成、模型仿真和分析需要不同的代码库
可重复性障碍 – 在没有共享基础设施的情况下,比较不同研究的结果很困难
学习曲线陡峭 – 学生必须在探索想法之前实现复杂的动力学
这就是 CANNs 库的用武之地。

CANN 网络中的 2D 空间编码模式
CANNs 的独特之处是什么?¶
生物真实性与理论优雅的结合¶
连续吸引子神经网络具有连接神经科学和 AI 的独特属性:
稳定的连续表征 CANNs 自然地在连续状态空间中维持稳定的活动模式(吸引子)。与需要仔细调整的循环神经网络(RNNs)不同,CANNs 有强大的理论基础确保稳定性——活动 bump 在没有外部输入的情况下持续存在,实现短期记忆和鲁棒编码。
类脑动力学 与基于注意力的模型(如 Transformers)相比,CANNs 通过更接近生物神经回路的机制运作。它们擅长建模:
海马体中的位置细胞(空间位置编码)
内嗅皮层中的网格细胞(周期性空间地图)
头部方向细胞(角度方向)
工作记忆网络(持续活动)
连续状态空间处理 传统的深度学习模型将世界离散化。CANNs 原生处理连续变量——与大脑处理位置、方向和感觉刺激的平滑变化的方式相匹配。
路径积分和导航 CANNs 自然地执行路径积分:随时间整合速度信号以跟踪位置,无需外部地标——这是啮齿动物导航和人类空间认知中的核心计算。
最新突破:A-CANN 和 Theta 扫描现象¶
最近的一项重大进展将 CANNs 与神经适应(A-CANN)结合,以解释休息和睡眠期间海马体序列重放的多样模式。通过引入适应——一种普遍的神经特性——作为单一控制变量,研究人员统一了看似不同的现象:静态重放、扩散序列和超扩散扫描。
这项工作展示了 CANN 的力量:简单的、生物学上合理的机制可以解释复杂的神经动力学,对记忆编码和检索具有深远影响。

网格细胞和头部方向网络中的 theta 扫描动力学
谁应该使用这个库?¶
CANNs 库服务于三个主要社区:
🔬 计算神经科学家¶
连续吸引子网络在系统神经科学中越来越受欢迎。研究人员希望:
分析实验数据以寻找吸引子特征
构建 CANN 模型以验证针对神经记录的假设
高效地重现和扩展已发表的 CANN 研究
🛠️ 工程师和开发者¶
随着 CANNs 的成熟,它们需要标准化的开发实践——类似于 Transformers 如何通过一致的 API 和共享基础设施革新了 NLP。工程师需要统一的工具来:
实现类脑导航和记忆系统
系统地对 CANN 架构进行基准测试
在机器人和 AI 中部署基于 CANN 的应用
🎓 学生和教育者¶
学习 CANNs 不应该需要从头实现复杂的动力学。学生受益于:
即用型模型用于实践探索
清晰的示例展示关键概念
可修改的代码用于实验参数和架构
如果没有标准化工具,每个群体都在重新发明轮子。CANNs 库改变了这一点。
关键应用场景¶
1. Theta 扫描建模和分析¶
挑战:海马神经元在休息和睡眠期间表现出丰富的顺序发放模式——静态、扩散、超扩散——具有重要的认知功能。理解这些”theta 扫描”是记忆研究的核心。
解决方案:A-CANN 框架(CANN + 神经适应)通过单一变量解释了这些多样模式。本库提供:
预构建模型:
HeadDirectionNetwork、GridCellNetwork、PlaceCellNetwork专业可视化:Theta 扫描动画和分析工具
可重现管道:
ThetaSweepPipeline协调仿真、分析和绘图
影响:研究人员可以立即在这项工作的基础上进行构建,而无需重新实现模型和分析工具。
2. 教育和研究培训¶
挑战:传统的 CANN 教学需要学生每学期从头实现模型。这消耗了本可以用于科学探索的数周时间。
解决方案:使用此库,学生可以:
用 3 行代码实例化 CANN 模型
以最小的设置生成任务数据(平滑跟踪、群体编码)
使用内置分析工具可视化动力学
影响:教育者报告说,学生现在专注于理解机制而不是调试实现。
3. 高性能仿真¶
挑战:长时间仿真和大规模实验(例如参数扫描、拓扑数据分析)计算成本高昂。
解决方案:配套的 ``canns-lib`` Rust 库提供:
空间导航任务相对于纯 Python 700× 加速(RatInABox 兼容 API)
拓扑分析平均 1.13×,峰值 1.82× 加速(Ripser 算法)
完美准确性 – 与参考实现 100% 结果匹配
GPU/TPU 支持 – 通过 JAX/BrainPy 后端
影响:曾经需要数小时的工作现在几分钟内完成。研究人员可以大规模探索参数空间和分析数据集。
仿真步数 |
纯 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 研究:
标准化模型库
预构建的 1D/2D CANNs、SFA 变体、分层网络
类脑模型:Hopfield 网络、基于脉冲(LIF)的模型
结合 CANNs 和 ANNs 的混合架构
统一任务 API
平滑跟踪、群体编码、闭环/开环导航
直接导入实验轨迹
跨任务的一致数据格式
完整分析管道
能量景观、调谐曲线、发放场、脉冲嵌入
拓扑数据分析(UMAP、TDA、持久同调)
Theta 扫描和 RNN 动力学分析
可扩展架构
用于自定义组件的基类(
BasicModel、Task、Trainer、Pipeline)基于 BrainPy 构建,用于 JAX 驱动的 JIT 编译和自动微分
开箱即用的 GPU/TPU 加速
社区和共享
模型和基准共享的开源基础
统一的评估协议
不断增长的示例和教程生态系统
技术基础¶
是什么让这个库强大?
🚀 通过 BrainPy + Rust 实现性能¶
BrainPy 集成:具有 JAX 的 JIT 编译、自动微分和 GPU/TPU 支持的高级动力学 API
canns-lib 加速:用于任务生成和拓扑分析的 Rust 驱动的热路径
高效编译:用简单的 Python 编写模型,以 C++ 速度运行
🧩 综合工具链¶
模型:1D/2D CANNs、分层网络、SFA 变体、类脑模型
任务:跟踪、导航、群体编码、轨迹导入
分析器:可视化、TDA、bump 拟合、动力学分析
训练器:Hebbian 学习、预测工作流
管道:单次调用中的端到端工作流(例如 theta 扫描)
🔬 研究级质量¶
经过验证的实现:模型重现已发表的结果
全面测试:Pytest 套件覆盖关键行为
积极开发:定期更新、错误修复、社区贡献
当前状态和未来方向¶
开发阶段:该库已经积极开发了 4 个月,目前处于 beta(v0.x)阶段。我们的研究小组正在内部使用它,并根据用户反馈积极扩展功能。
验证:
✅ 模型重现了已建立的 CANN 行为
✅ 性能基准显示显著加速(canns-lib)
✅ 跨模型和任务的工作示例不断增加
路线图:
扩展类脑模型集合(循环网络、基于脉冲的模型)
添加混合 CANN-ANN 架构
开发全面的基准测试套件
构建社区贡献的模型库
发表记录库设计的配套论文
局限性(我们相信透明度):
Beta 软件 – API 可能会根据反馈而演变
文档正在积极扩展(欢迎您的贡献!)
目前预训练模型有限(我们正在构建)
与成熟的深度学习框架相比,社区较小(但正在增长!)
下一步:深入了解!¶
快速开始¶
准备好构建您的第一个 CANN?跳转到我们的快速入门指南,在 <10 分钟内进行实践演练。
安装¶
[ ]:
# CPU 版本
pip install canns
# GPU 支持(Linux)
pip install canns[cuda12]
了解更多¶
参与其中¶
🐛 报告问题:GitHub Issues
💬 提问:GitHub Discussions
🤝 贡献:查看我们的贡献指南
⭐ 给仓库加星:github.com/routhleck/canns
总结:为什么选择 CANNs?¶
问题 |
答案 |
|---|---|
它解决什么问题? |
通过标准化模型、任务和分析工具统一碎片化的 CANN 研究 |
它适合谁? |
分析数据的神经科学家、构建系统的工程师、学习动力学的学生 |
它有什么独特之处? |
第一个全面的 CANN 库——从模型到可视化的完整生态系统 |
它有多快? |
导航任务 700× 加速,GPU/TPU 支持,JIT 编译 |
我可以信任它吗? |
针对已发表结果进行验证,积极开发,开源 |
我从哪里开始? |
|
碎片化 CANN 实现的时代正在结束。统一、可重现、可访问的吸引子网络研究的时代正在开始。
让我们一起构建它。
对这份文档有疑问或建议?在GitHub上提出问题或讨论!