计算机科学家能造出大脑吗?
Could a computer scientist build a brain?
如果把大脑发育看作一个工程问题,计算机科学家会如何编写程序?Stan Kerstjens 与 Anthony M. Zador 提出,从单个细胞出发构建大脑,程序必须小到能塞进基因组,且快得能在发育期内完成。文章指出,简单的“身份匹配”策略在规模扩大时会因信息量和时间成本而失效。这种算法约束迫使生物进化出更高效的策略,暗示大脑的构造并非偶然,而是计算必然性的结果。这一视角不仅解释了发育神经科学的机制,也为现代机器学习如何从紧凑描述生成大型网络提供了新灵感。
大脑的设计或许并非通过拆解它来复原,而是通过追问基因组最初是如何指定它的来重新发现。
HN 评论区
66- sim04ful
在我看来,大脑作为认知载体并没有什么根本上的特殊之处。甚至一池水都可能具备认知能力(即水库计算),我认为这是一种通用属性,可以在任何足够高维的物理系统中涌现,只要该系统拥有足够的内部自由度来探索多种配置,拥有足够的耦合与稳定性以维持连贯性,并拥有足够的可塑性让经验在其未来的动态中留下持久改变。
将此类系统置于持续的外部客观压力下……某些内部组织表现优于其他组织,它便会逐渐积累关于其环境的有用结构。
大脑仅仅是数十亿年来盲目环境风化作用的古老产物,物质被反复塑造,以满足其宿主作为连贯、持久实体继续存在的需求。
简言之,在使认知成为可能的原则上,大脑并非根本特殊。
我针对这篇文章想表达的是,他的工作建立在远高于实际所需的抽象层级上。这是把软件置于物理之前。
- jekude
我觉得这个问题和这篇文章都引人入胜。我认为我们不应只关注基因表达和细胞运行的算法,还应关注运行该模拟的正式化环境。
我思考这个问题已有数年,我坚信这些细胞必须能够在类似元胞自动机的三维晶格中“移动”,或者成为某个循环图中的节点(或者两者兼有)。
关于基因表达,我顿悟到 DNA/RNA 看起来与 SKI 演算(组合子)出奇地相似,因此我一直使用丘奇编码将 SKI 程序转换为每回合的“动作”(移动、连接、放电、分裂等)。它有一个很好的特性:细胞的“程序”、细胞间的放电以及模拟本身的输入/输出可以是同一事物(只是一串组合子)。
无论如何,作者在这一点上完全正确:这类事物具备以下属性 1) “始终开启”(无独立训练模式),2) 局部交互,3) 一切源于基因组,4) 每个细胞都是一个独立的小程序,且拥有与其他细胞相同的基因。
我唯一能说的是,进化程序很难,运行模拟要么需要巨大的算力,要么需要漫长的时间尺度。不过,这确实非常迷人。
- ppsreejith
> 程序必须适应约 1GB 大小的基因组指令集
没错,但这可以大得多,甚至可能达到 1 艾字节(exabyte)的指令大小,因为这取决于用来表达程序的编程语言。即使考虑到大规模运行时不变性*,常数因子也可能极其巨大,因为我们必须先构建大量的细胞机制。这让我想起卡尔·萨根的引言:要做一个三明治,你首先得构造宇宙!
* 例如,要将程序从语言 A 翻译成语言 B,你可以分配一个固定大小来编写 A 到 B 的翻译器。因此在程序规模很大时,柯尔莫哥洛夫复杂度(即指令集大小)在不同程序间相当相似,因为程序的大小主导了翻译器程序的大小,而后者是常数。但构建细胞机制的常数因子可能极其巨大**
** 或者,如果我们只需要粗略模拟,那就不一定。
- oezi
TFA(文中所述)缺失的一个方面是,在生物大脑中,大量训练是在查询时(query time)进行的。如果我们假设 1GB 的 DNA 足以编码大脑的整体结构,我们仍然需要训练数据(例如视觉/听觉/触觉数据)来建立突触连接的强度。
- hoppp
你需要一个模拟环境,因为大脑发育很大程度上依赖于环境,并非纯粹由基因决定。