深度学习 A to Z · 果蝇特别篇 1

果蝇如何闻、如何看、如何察觉

即使在芝麻粒大小的果蝇脑袋里,信号也沿着固定的路线前进。触角和复眼把世界变成电信号,神经把这些信号整理后传送出去,大脑则察觉到“这是食物”“有危险”。而这些判断的规则并不是谁事先规定好的,而是通过经验学来的。沿着这条路走下去,人工神经网络如何从超简单模型成长为多层深度学习,就会自然而然地呈现在眼前。

约14万全脑神经元数量 [1]
约5000万突触(连接)数量 [1]
约800单侧复眼的小眼 = 像素 [2]
约50种嗅觉受体神经元的种类 [3]
约2,000单侧蘑菇体的 Kenyon 细胞 [4]
约860亿对比:人脑的神经元数量 [5]

为什么偏偏用果蝇来学神经网络

人脑太大,计算机里的神经网络又太抽象。果蝇的大小恰好介于两者之间。从感觉器官到行为的整条通路一目了然,而且这条通路上的每一个神经元都可以真正地打开、关闭来做实验。

理由 1完整的接线图已经公开

2024年,包含果蝇全脑神经元及其连接的接线图(连接组)绘制完成。用神经网络来比喻,就相当于可以完整地看到模型的结构和连接。

理由 2从输入到输出又短又清晰

闻到气味就靠近,看到逼近的阴影就起飞。感觉 → 神经 → 大脑 → 行为的路径很短,很适合一步一步地追踪。

理由 3可以只开关想要的神经元

利用遗传工具,可以让特定神经元停止工作。这就像在神经网络里删掉一个单元,看看性能会如何变化的实验。

为什么所有感觉都会变成电信号

光是光子,气味是分子,声音是空气的振动,味道是溶于水的物质。它们都是不同种类的刺激,但到达大脑时,全都变成了同一种形式——神经元膜上的电压变化和电脉冲(脉冲,spike)。

光 → 复眼

光感受器

受光照的分子改变形状,这种变化打开离子通道,从而改变细胞的电压。

图像的像素值
气味分子 → 触角

嗅觉受体神经元

气味分子与受体结合后,离子进出使电压升高,一旦超过阈值就发放脉冲。

传感器测量值
风·声音 → 触角

江氏器(Johnston 器官)

触角末端一振动,里面的机械感觉神经元就被拉伸,产生电信号。

声音波形数值
味道 → 腿·口

味觉神经元

果蝇用腿也能尝味道。碰到糖或苦味物质时,味觉神经元就会发出电信号。

又一个输入通道
刺激→ 受体 · 电压变化→ 轴突 · 电脉冲传导→ 突触 · 借化学物质跨越→ 下一个神经元 · 再变回电
感觉
刺激强度
突触强度(权重)

为什么偏偏是电——五个理由

  1. 通用语言:只有把光、气味、声音、味道都转换成同一种形式,大脑才能在一个地方把它们混合、比较。这和深度学习把照片、文字、声音都变成数字列表的道理相同。
  2. 速度快:如果靠气味分子在体内漂浮扩散的速度,根本躲不开苍蝇拍。靠离子流动传递的电信号,转眼间就能从身体末端到达大脑。
  3. 传得再远也不会变弱:脉冲沿着轴突前进时会不断重新生成,所以即使走很长的路,幅度也不会减小。
  4. 强度用“几次”来表示:单个脉冲的幅度总是一样的,刺激越强,发放得越频繁。不是用幅度而是用次数来传递强度,所以抗噪声能力强。这个发放频率就相当于人工神经元的“输出数值”。
  5. 可以在突触处调节强度:在神经元与神经元之间的缝隙里,电会转变成化学物质(神经递质)跨越过去。传递得多少、传递得有多好,就是权重;而学习,就是改变这种传递效率。

也有例外。像复眼的光感受器这样只在短距离内传送信号的神经元,不发放脉冲,而是让电压连续地升降来传递信息。选择“光”来看看其中的区别吧。

转动果蝇大脑,追踪信号的路径

就像用荧光染色拍摄的显微照片一样,用点来表示大脑的各个区域。粉色点是神经组织,红色点是感觉器官,绿光是正在流动的信号。这是示意模型,并非真实的解剖数据。各区域的前后、左右关系是准确的,但大小和形状做了简化。

信号通路
速度1.0×

区域说明 · 点击大脑图或下方按钮试试

感觉器官 → 神经 → 大脑 → 行为,就是输入 → 隐藏层 → 输出

果蝇的四个阶段与神经网络的基本结构一一对应。下面阶梯上的所有模型,讲的都是在这个框架内层数逐渐增加的故事。

1 · 感觉器官

把世界变成数字

触角的嗅觉受体神经元对气味分子作出反应,复眼的小眼对光作出反应。反应强度就是数字。

神经网络:输入层(数据)
2 · 神经(传递·整理)

筛选、打磨数字

触角叶和视板汇集传入的信号,调整强度,并把它们变成“变亮”“变暗”这样便于使用的形式。

神经网络:预处理·第一层
3 · 大脑(识别)

察觉模式

蘑菇体、侧角和小叶从中提取出“这种气味是食物”“这个阴影是逼近的天敌”之类的含义。

神经网络:隐藏层(特征·模式)
4 · 行为

选出一个

靠近、躲开,还是起飞?比较多个信号的分数,胜出的那一个就成为行为。

神经网络:输出层(判定)

是给定规则,还是学习规则

让计算机做事有两种方法:由人一条一条地写好规则(基于规则),或者只给出例子和结果,让它自己找出规则(基于学习)。深度学习属于第二种,而果蝇的大脑里两种方法都有。

基于规则(Rule base)

有人事先写好规则

如果 果香 > 0.5 → 靠近
如果 二氧化碳 > 0.3 → 躲开
其他情况 → 原地不动

规则一目了然,容易理解。但必须事先知道世界上的所有情况,环境一变,写规则的一方就得亲自修改。遇到规则里没有的情况,就束手无策了。

在果蝇中:侧角的先天反应。写下规则的是进化,一只果蝇一辈子都改不了这些规则。

基于学习(Learning)

看到结果后自己修改规则

1. 用当前的值进行预测并采取行动
2. 观察实际结果(食物 +1,电击 −1)
3. 值 ← 值 + η × (结果 − 预测)

不直接写规则,而是按照“预测错了多少”来修改权重。反复这样做,规则就会自然而然地出现在权重里。即使环境变了,也能重新学习。

在果蝇中:蘑菇体。当惩罚或奖励到来时,多巴胺神经元发出信号,改变 Kenyon 细胞 → 输出神经元的连接。这个信号是否像“结果 − 预测”那样计算预测误差,目前仍在研究中;这里为了便于理解,简化成了预测误差规则。

天生倾向相同的两只果蝇,世界变了会怎样?

两只果蝇一开始都喜欢果香 A。但在这个房间里,A 那边有电击,B 那边有糖。左边的果蝇只按规则行动,右边的果蝇则根据结果来学习。点击“改变环境”,换一换危险的一侧吧。

学习率 η
速度

学到的规则写在哪里

右边那只果蝇的“规则”并没有以文字的形式写在任何地方,它的全部只是两个“靠近值”,也就是两个权重。深度学习模型也一样:几百万、几十亿个权重本身就是规则,所以性能虽好,却很难用人类的语言说出“为什么这样判断”。基于规则容易解释,基于学习容易适应。果蝇把两者结合起来:遇到第一次见的情况时靠先天规则撑住,积累经验后再用学到的规则加以修正。

模型阶梯——依次登上四级台阶

每往上爬一级,就多一种能在果蝇身上看到的能力。在每一级亲手操作模型,遇到这个模型解决不了的问题后,再进入下一级。

1超简单

一个输入,一个连接——闻到二氧化碳就躲开

模型:y = w × x果蝇:回避二氧化碳

在果蝇中

果蝇的触角上有专门只感知二氧化碳的感觉神经元。这个信号汇聚到触角叶的一个嗅小球,果蝇不用学习就会躲开二氧化碳。这里把这条通路大大简化为“一个传感器 → 一个连接 → 行为”来看。

在神经网络中

这是最小的模型:输入 x 乘以权重 w,结果超过阈值 θ 就输出 1,否则输出 0。权重表示“对这个输入听得有多认真”,阈值表示“有多容易作出反应”。

二氧化碳浓度 x
连接强度 w
阈值 θ

给初学者的讲解

在这个模型里,“学习”就是把 w 和 θ 调到合适的值。果蝇生来就带着经过进化调好的这些值。w 调大,淡淡的二氧化碳也会让它逃走;w 调小,浓度很高时才会逃。

局限也很明显:这个模型只看一个输入。果蝇实际面对的问题,比如“果香和醋味一起飘来,能不能吃?”这种需要同时权衡多个信号的问题,它就解决不了。所以要增加输入。

2简单

权衡多个输入的单个神经元——感知机

模型:y = σ(w₁x₁ + w₂x₂ + b)果蝇:判断食物气味

在果蝇中

熟透的水果会同时散发果香(酯类)和醋味(乙酸)。假设一个神经元接收两个嗅小球的信号,来判断“这是不是食物的气味”。它给两个信号不同的分量,相加后再作判断。

在神经网络中

把多个输入各自乘以权重后相加,再加上偏置 b,然后用 Sigmoid 函数 σ 转换为 0~1 之间的概率。这个模型能画出的边界,只是右侧平面上的一条直线。

可以吃的气味(答案 1)不能吃的气味(答案 0)模型画出的边界✕ 判错的气味● 实心点 = 训练数据(用于学习)○ 空心点 = 验证数据(不用于学习,用来评分)
问题
学习率 η

看行为——果蝇按照当前模型挑选第一次闻到的气味杯(验证数据)

“学习”实际上做了什么——四个步骤

  1. 预测:用当前的 w₁、w₂、b 计算一种气味的分数。
  2. 误差:测量正确答案(食物 1,不是 0)与预测概率之间的差距。
  3. 分配责任:把误差乘以各个输入的大小,求出每个权重造成了多大的错误。
  4. 修正:把权重朝相反方向挪动一点(挪动学习率 η 那么多)。对所有气味重复这一过程。

选择“困难问题”来训练看看。真实的果蝇会靠近淡淡的醋味,却会躲开太浓的醋味。食物区域变成了两条线之间的带状,而一条直线没法把这条带切出来。无论学多久,准确率都会停在某个水平上。这就是必须进入下一级的原因。

3一般

一个隐藏层——触角叶 → 蘑菇体 → 输出神经元

模型:输入 2 → 隐藏 H → 输出 1果蝇:蘑菇体回路

在果蝇中

触角叶的信号会扩散到蘑菇体的几千个 Kenyon 细胞。每个 Kenyon 细胞挑选几个嗅小球接收信号,对自己独有的“气味组合”作出反应。输出神经元汇总这些反应,决定是靠近还是躲开。学习主要发生在 Kenyon 细胞 → 输出神经元的连接上。

在神经网络中

在输入和输出之间插入一个“隐藏层”。每个隐藏神经元在平面上各画一条线,输出神经元把这些线组合起来,就能做出弯曲的或带状的边界。这就是多层感知机(MLP)。

气味输入→ 隐藏层计算(前向传播)→ 输出·误差→ 反向分配责任(反向传播)→ 修改权重
数据
学习方式
隐藏神经元数 H
学习率

看行为——用第一次闻到的气味杯(验证数据)检验真实水平

死记的和理解的——训练数据与验证数据

提前看过考题再复习的学生,就算那次考试拿了 100 分,也证明不了真实水平。模型也一样。所以要把数据分成两份:只用训练数据(实心点)来修改权重,用学习中从未用过的验证数据(空心点)来评分。真正的实力看验证分数。

  1. 欠拟合:训练分数也很低。模型太简单了。第②级的困难问题就属于这种情况。
  2. 刚刚好:训练分数和验证分数都高,而且相近。
  3. 过拟合:训练分数高,验证分数却低。数据太少或混有错误答案时,模型会不去学规则,而是把一个个例子背下来。选择“数据少且有噪声”来确认一下吧。

防止过拟合的常见方法有:增加数据;在验证损失重新开始上升时停止学习(早停);不要把模型做得比需要的更大。果蝇也会遇到类似的问题:为了不把一次偶然的经历过度泛化,需要经过反复训练才能形成持久的记忆。在实际的深度学习中,除了验证数据,有时还会另外留出一份只在最后使用一次的测试数据。

用大白话讲反向传播

这是一种把输出端产生的误差,按照“是谁的责任”反向分配下去的计算。与输出神经元连接越强的隐藏神经元,以及当时被激活得越强的隐藏神经元,承担的责任就越大。责任确定后,连同输入 → 隐藏的连接也一起修改。

果蝇不做这种反向分配。通向 Kenyon 细胞的连接几乎是随机确定的,而且不会改变;多巴胺只修改最后一段连接(Kenyon 细胞 → 输出神经元)。选择“果蝇方式”试试:隐藏神经元少时效果不好,但把数量增加到 30~60 个,仅凭随机的线也能把带状区域切出来。由此可以推想,果蝇为什么要拥有约2,000个 Kenyon 细胞。

4多层

多层堆叠的视觉通路——看到逼近的阴影就逃跑

模型:像卷积神经网络一样层层堆叠果蝇:复眼 → 视板 → 髓质 → 小叶 → 巨纤维

在果蝇中

苍蝇拍一逼近,果蝇转眼就飞走了。复眼的小眼测量亮度,视板区分变亮与变暗,髓质和小叶板中的 T4·T5 神经元计算运动方向,小叶的 LPLC2 神经元察觉“向四面八方扩散的运动”,也就是正在逼近的物体。这个信号经过巨纤维神经元,变成起跳行为。

在神经网络中

这与卷积神经网络(CNN)的结构相同。每一层都只看一个小区域,并在所有位置重复同样的计算(权重共享);层次越高,看到的范围越大,特征也越复杂。亮度 → 亮度变化 → 运动方向 → 逼近。每一层都很简单,堆叠起来却能做出困难的判断。

复眼 · 亮度→ 视板 · 变亮/变暗→ 髓质·小叶板 · 运动方向→ 小叶 · 检测逼近→ 巨纤维 · 起跳
展示的物体
观察角度
速度

这是为了讲解而简化的计算模型。小眼数量从约800个减少到169个,运动方向直接由物体边缘的速度算出。真实的 T4·T5 神经元是通过比较相邻小眼信号的时间差来判断方向的。

为什么要堆叠多层

很难写出一条规则,直接从小眼的亮度值一步判断出“逼近的物体”。因为物体可能是暗的也可能是亮的,可能在右边也可能在左边。于是把问题拆成简单的小块,每一层负责一块。

  1. 第1层(视板):这个小眼刚才是变暗了,还是变亮了?
  2. 第2层(髓质·小叶板):和相邻小眼比较,边缘在往哪个方向移动?
  3. 第3层(小叶):上、下、左、右四个方向上,是否都有向外扩散的运动?
  4. 输出(巨纤维):如果是,现在就起飞。

“从旁边经过的物体”一侧边缘向外移动,另一侧却向内移动,无法同时满足四个方向。所以即使它又大又快,果蝇也不会起跳。从照片中认出猫的 CNN 也是这样,按线条 → 边角 → 局部 → 整体形状一层层堆叠起来的。

模型结构比较——本页的模型 vs MLP · RNN · GRU · LSTM · CNN

点击按钮,切换六种结构的示意图。绿线是会被学习的连接,虚线是固定的连接,橙色箭头是跨越时间的记忆。所有示意图都只是展示原理的简图。

六种结构一览比较

可学习连接 / 全部连接(输入 16×16,3 个类别)

灰色条 = 全部连接,彩色条 = 可学习连接。深度学习模型的连接全部参与学习,果蝇模型则大部分是固定连接。下面的训练器和公共部分 A 的代码 2 统计的是同样的数字。

最后一行的证据等级:真实回路·测量 模型照搬了真实回路 · 结构相似 指连接形态相似,并不能证明在做同样的计算 · 宽松的类比 · 纯粹的比喻 只是帮助说明的说法,没有生物学依据。

从本页视角看的核心差异

特别篇①页面中的阶梯(超简单 → 多层)讲的是 MLP 和 CNN 那一路。果蝇方式则在旁边给出了另一种答案:“隐藏层即使不学习,只要做得又宽又稀疏,效果也相当不错。”在机器学习中,随机特征、极限学习机(ELM)、储备池计算都是同样的思路。果蝇大脑里也有像 RNN·LSTM 那样处理时间的回路(中央复合体),但本页的模型属于一次性作出判断的那一类。

果蝇训练器——用示例图来看“教、学、判断”

像 Teachable Machine 一样,用示例走一遍这个过程:① 为每个类别收集示例图,② 进行训练,③ 用从没见过的图来检验。用同样的图像数据,并排训练了果蝇方式(只训练输出层)和深度学习 MLP(训练所有层)。这些图是加入抖动、仿佛手绘的 16×16 图像。

① 收集示例
食物 · 圆圈 · 训练用的 24 张图中的 8 张
危险 · 叉号 · 训练用的 24 张图中的 8 张
道路 · 横线 · 训练用的 24 张图中的 8 张

每个类别制作 30 张图,24 张用于训练,6 张(共 18 张)用于验证。训练过程中从不展示验证图。

② 训练(30 个 epoch)
0%50%100%1102030Epoch计算值(固定随机种子)

绿色 = 果蝇方式 · 蓝色 = MLP · 虚线 = 训练准确率,实线 = 验证准确率

83%果蝇方式验证准确率(训练 100%)
89%MLP(32 个隐藏神经元)验证准确率(训练 100%)
3,003果蝇方式的可学习连接(总计 13,003)
8,323MLP(32 个隐藏神经元)的可学习连接(全部)。结构比较部分的 MLP 有 64 个隐藏神经元
③ 判断从没见过的图
测试图
果蝇方式 · 验证 18 张
圆圈叉号横线
圆圈420
叉号060
横线015
MLP · 验证 18 张
圆圈叉号横线
圆圈420
叉号060
横线006

从这个例子中读出什么

两个模型在训练图上都达到了 100% 正确,但在验证图上,果蝇方式为 83%,MLP 为 89%。这个差距(训练与验证之间的落差)反映了过拟合的程度。果蝇方式的可学习连接只有 MLP 的约 36%,验证准确率却并没有落后太多。两个模型都把 6 张验证用圆圈图中的 2 张认成了叉号(见下方混淆矩阵)。每个类别只有 24 张训练图时,就会出现这样的错误。想用自己画的图试一试,就在 Colab 中运行公共部分 A 的代码 2。

与 Teachable Machine 的相同点

建立类别 → 收集示例 → 训练 → 对新输入做出判断,流程完全一样。

不同点

Teachable Machine 是在大型图像模型(MobileNet)预先学好的特征之上,只训练一个小分类器(迁移学习)。本例则让两个模型从零开始学习 16×16 的图画。因此它适合简单的形状,不适合照片这类复杂的输入。

一张表总结 —— 阶梯的四级

级别越高,模型的连接越多,能画出的边界越复杂,能识别的含义也越深。果蝇的感觉 → 神经 → 大脑 → 行为,把所有这些阶段集于一身。

级别模型结构果蝇的例子新获得的能力仍存在的局限
① 超简单1 个输入 → 1 个输出
y = 阈值(w·x)
二氧化碳 → 回避信号强就做出反应只看一个输入
② 简单多个输入 → 1 个神经元
感知机
果香 + 醋味 → 判断是否为食物权衡多个信号,根据误差学习只有一条直的边界线
③ 一般输入 → 隐藏层 → 输出
多层感知机
触角叶 → 蘑菇体 → 输出神经元弯曲、带状的边界,识别组合输入又大又复杂时,需要极多的隐藏神经元
④ 多层堆叠许多层
类似卷积神经网络
复眼 → 视板 → 髓质 → 小叶 → 巨纤维层层叠加简单特征,识别出“正在逼近”这样的含义层越深,训练所需的数据和计算越多
权重

突触的强度

通过学习而改变的值。抑制性突触对应负权重。

激活函数

要么放电,要么安静

必须越过阈值才会发出信号。正是这个“拐点”让堆叠多层变得有意义。

误差信号

多巴胺(惩罚·奖励)

告诉系统哪里错了。果蝇不是逐层反向传递,而是直接洒向特定的连接。

整个模型

连接组

整个大脑的接线图。谁和谁连接、连接有多强,本身就是模型的结构。

类比的局限。真正的神经元用电脉冲传递信号,同一个连接也会因时间和身体状态不同而表现不同。本页的 3D 大脑和计算模型为了展示原理做了大幅简化。深度学习并不是照抄大脑,而是借用了“层、连接强度、阈值、根据误差修正”这副骨架。

第三页:用真实的果蝇接线图整体运行、驱动 Minecraft 生物的项目,并与前两页做比较——Minecraft 里的果蝇大脑 —— 仅靠接线图运转的神经系统。

Colab 代码 —— 亲手运行本页内容

两段代码都只使用 Colab 默认安装的库。点“下载笔记本(.ipynb)”后,在 Colab 中用文件 → 上传笔记本打开;也可以复制后粘贴到新笔记本的单元格里。

代码 1 · 用 NumPy 实现果蝇方式 —— 固定随机扩展 + 只训练输出层对应第 ③ 部分“果蝇方式”和“实践:结构比较” · numpy · CPU 不到 1 秒

建立 1,000 个 Kenyon 细胞的固定连接,在只点亮前 8% 的稀疏编码之上,用 delta 规则只训练一个输出层。想换成自己的数据,替换 X(样本 × 256)和 Y(正确答案编号)即可。

运行结果(2026-10-04 运行,numpy 2.4 · CPU)。随机种子已固定,任何时候运行结果都相同。
代码 2 · 用 PyTorch 比较五种常规深度学习模型与三种果蝇模型对应“实践:结构比较·训练器” · torch、numpy、matplotlib · CPU 约 1 分钟

让 MLP、CNN、RNN、GRU、LSTM 和三种果蝇模型在相同的图画数据、相同的划分上训练,比较连接数和准确率。这段代码把“训练器示例”的计算放到更大的数据(4 类共 160 张)上亲手做一遍。

运行结果(2026-10-04 运行,PyTorch 2 · numpy 2.4 · CPU)。用两个种子分别训练。果蝇模型的固定连接种子是定好的,所以两个种子的结果相同。数值可能因种子、版本和硬件而变化。

与常规深度学习代码有何不同

项目代码 1(果蝇方式)常规深度学习代码
学习发生在哪里只有输出层(3,000 个)所有层(16,643 个)
梯度计算不需要:误差 × 输入loss.backward() 用链式法则逐层计算
隐藏表示出生时随机固定根据数据学习
隐藏层形态宽而稀疏(1,000 个中只有 8% 点亮)窄而稠密(64 个全都有值)
核心一行W_out += lr * np.outer(y − p, k)opt.step()
所需工具只需 NumPyPyTorch(自动微分)
在机器学习中的名称随机特征、极限学习机、储备池计算多层感知机(MLP)
查看用于对比的常规深度学习代码(mlp_backprop.py,PyTorch)

AI 应用提示词 —— 以这段代码为起点

这是可以粘贴到 ChatGPT、Qwen、Claude 等 AI 助手里的提示词。点“复制”时,所选的代码会一起附在提示词后面。把〔 〕里的内容换成你自己的情况即可。

一起附上的代码

AI 的回答只是起点。它提出的论文、数值和库函数一定要对照原文和官方文档核实。如果在竞赛或论文中借助了 AI,请按照主办方和期刊的规定,说明使用的事实和范围。

术语表

与正文中黄色虚线下划线对应的同一部词典。把鼠标指向或点按下划线,会出现相同的说明。

类比合集 —— 以及类比出错的地方

类比是理解的第一步,但也可能是误解的种子。果蝇·大脑类比标注了强度:直接 有证据表明确实做着同样的事 · 部分 只有部分性质相似 · 无 尚未发现对应物

概念日常类比果蝇·大脑类比类比出错的地方
感知机给多个人的意见打分并相加,总分超过标准就做决定部分 神经元汇集输入,越过阈值就放电真实神经元的输入会随时间累积又泄漏。感知机里没有时间(参见特别篇 3 的泄漏积分发放)
隐藏层公司的中层管理者:汇总一线报告,再整理成摘要交给老板部分 蘑菇体的 Kenyon 细胞把气味信号重新展开成更宽的表示Kenyon 细胞的输入连接是随机确定的,不会学习。深度学习的隐藏层则是学出来的
权重学习把做错的题记进错题本,下次改正直接 多巴胺改变蘑菇体输出连接的强度,把气味和结果配对果蝇的多巴胺信号是否在计算“预测误差”仍在研究中。本篇的学习规则为便于讲解做了简化
反向传播结果不好时,从流水线末端往回分摊责任无尚无证据表明大脑会逐层把精确的梯度反向传递
多层视觉通路工厂装配线:每道工序做出稍复杂一点的零件部分 从复眼 → 视板 → 髓质 → 小叶,越往后越能分辨复杂的运动④ 中的滤波器是为讲解而手工设定的。CNN 则会学习滤波器
把输入变成数字把各国货币都兑换成同一种货币直接 感觉神经元把光、气味、味道转换成电信号真实的信号是脉冲(spike)的频率和时机。本篇中的放电频率数字只是示例值

作者介绍与参考文献

E-1 作者介绍 · E-2 学术参考文献 · E-3 图片参考资料

E-1 作者介绍

Sangsun Ahn(M-Robo 公司代表)

曾任职于韩国电气安全公社(Korea Electrical Safety Corporation)和《每日经济新闻》(Maeil Business Newspaper),之后创办了每日经济的外部创业公司 M-Robo,现任代表。M-Robo 起步于媒体公司的内部创业项目,是一家媒体创业企业,曾为《国民日报》(Kookmin Ilbo)提供机器人记者(StockBot)服务,并为韩国互联网振兴院(KISA)、韩国言论振兴财团(Korea Press Foundation)、韩国广播通信电波振兴院(KCA)等机构执行了多个项目。目前运营自有的 AI 新闻媒体 Money-Robo。任代表期间,曾获亚洲开放数据黑客松冠军,并因在数据创业领域的贡献两次获得韩国行政安全部(Ministry of the Interior and Safety)长官奖;拥有人工智能和区块链领域的 5 项发明专利。著有《AI 犯罪与自我防御》(韩文),并为韩国技术教育大学(KOREATECH)在线终身教育院开发了金融科技、统计学、人工智能领域的网络课程内容。最高学位为经济学博士(东国大学,微观数理经济学)。目前在国民大学、湖西大学等多所大学讲授数据与人工智能相关课程。详细简历

课程

  • Sangsun Ahn(2025)。《面向商业的数据科学》讲义(韩文)。韩国开放网络大学(Open Cyber University of Korea)人工智能融合系。
  • Sangsun Ahn(2025)。[K-Digital] 人工智能自然语言处理(韩文)。STEP(智能职业培训平台),韩国技术教育大学在线终身教育院。
  • Sangsun Ahn(2024)。[K-Digital] 金融科技数据分析基础(韩文)。STEP(智能职业培训平台),韩国技术教育大学在线终身教育院。

STEP 课程链接:link.step.or.kr/1qyVoJ · link.step.or.kr/M9na9N · link.step.or.kr/brqEyc
如因网站改版无法正常访问,请前往 www.step.or.kr。

论文与报告

  • Sangsun Ahn(2025)。利用国民老年保障面板数据的家庭支出预测模型研究:基于人工智能模型的方法(韩文)。《未来社会》,16(2)。原文
  • Sangsun Ahn(2025)。利用国民老年保障面板数据的家庭支出预测模型研究:人工智能方法(韩文)。国民老年保障面板学术会议报告资料(2025.05.13),韩国国民年金公团国民年金研究院。报告资料
  • Sangsun Ahn(2025)。基于 SNS 文本的疑似毒品交易检测算法研究:以模式与语境分析为中心(韩文)。《未来社会》,16(1)。原文
  • Sangsun Ahn(2024)。面向金融领域异常检测模型安全的基于统计的对抗数据应对方案:实证分析与模拟结果(韩文)。《未来社会》,15(3)。原文
  • Sangsun Ahn(2024)。利用人工智能、基于虚拟角色特征的 SNS 帖子检测方案(韩文)。2024 Summer Newmedia Party 海报展示(2024.06.19),首尔媒体研究生院大学(Seoul Media Institute of Technology)。
  • Sangsun Ahn(2024)。利用工伤面板数据的机器学习模型(韩文)。第 10 届工伤保险面板学术会议海报展示(2024.05.17),韩国勤劳福祉公团勤劳福祉研究院。
  • Sangsun Ahn(2024)。虚拟资产时间序列数据的分析与预测:时间序列模型与人工智能模型的比较及改进建议(韩文)。《未来社会》,15(1)。原文

E-2 学术参考文献

  1. [R1] Dorkenwald, S., Matsliah, A., Sterling, A. R., … Murthy, M. (2024). Neuronal wiring diagram of an adult brain. Nature, 634, 124–138. doi:10.1038/s41586-024-07558-y —— 开篇 [1],“3D 大脑”部分
  2. [R2] Aso, Y., Hattori, D., Yu, Y., … Rubin, G. M. (2014). The neuronal architecture of the mushroom body provides a logic for associative learning. eLife, 3, e04577. doi:10.7554/eLife.04577 —— 开篇 [4],第 ③ 部分
  3. [R3] Azevedo, F. A. C., Carvalho, L. R. B., Grinberg, L. T., … Herculano-Houzel, S. (2009). Equal numbers of neuronal and nonneuronal cells make the human brain an isometrically scaled-up primate brain. Journal of Comparative Neurology, 513(5), 532–541. doi:10.1002/cne.21974 —— 开篇 [5]
  4. [R4] Suh, G. S. B., Wong, A. M., Hergarden, A. C., … Anderson, D. J. (2004). A single population of olfactory sensory neurons mediates an innate avoidance behaviour in Drosophila. Nature, 431, 854–859. doi:10.1038/nature02980 —— 第 ① 部分(二氧化碳回避)
  5. [R5] Maisak, M. S., Haag, J., Ammer, G., … Borst, A. (2013). A directional tuning map of Drosophila elementary motion detectors. Nature, 500, 212–216. doi:10.1038/nature12320 —— 第 ④ 部分(T4·T5)
  6. [R6] Klapoetke, N. C., Nern, A., Peek, M. Y., … Card, G. M. (2017). Ultra-selective looming detection from radial motion opponency. Nature, 551, 237–241. doi:10.1038/nature24626 —— 第 ④ 部分(LPLC2 逼近检测)

正文脚注 [1]~ 中数字与事实的出处

编号内容数值出处
[1]果蝇全脑神经元数、突触数约14万、约5000万FlyWire 联盟(2024)Nature —— 成体全脑连接组
[2]单侧复眼的小眼数约 750~800果蝇视觉系统的教科书数值(因个体、品系而异)
[3]嗅觉受体神经元种类 / 触角叶嗅小球数约 50 种 / 约 50 个果蝇嗅觉系统研究中的常用数值(例:Couto 等 2005,Curr Biol)
[4]单侧蘑菇体的 Kenyon 细胞数、输出神经元种类约 2,000 / 21 种Aso 等(2014)eLife —— 蘑菇体回路解剖
[5]人脑的神经元数约860亿Azevedo 等(2009)J Comp Neurol
[6]二氧化碳回避;随醋浓度变化的趋近·回避—Suh 等(2004)Nature · Semmelhack & Wang(2009)Nature
[7]T4·T5 运动方向检测,LPLC2 逼近检测—Maisak 等(2013)Nature · Klapoetke 等(2017)Nature

E-3 图片参考资料

  • 开篇中的数字 [2]·[3] 是果蝇视觉系统、嗅觉系统的教科书数值(因个体、品系而异)。详细出处见下表
  • 结尾场景中的角色插图:深度学习 A to Z 实验室角色

教师 TIP

这是给讲师、企业在岗培训(OJT)负责人和辅导老师的教学指南。时间为估计值,请根据实际课堂调整。

对象初学深度学习的大学生、职场人士。无需生物学知识
先修知识加法、乘法,会看图表。只有 Colab 实践需要 Python
学习目标① 把感觉 → 神经 → 大脑 → 行为对应到输入 → 隐藏层 → 输出 ② 解释感知机为什么解不了带状问题、隐藏层为什么能解 ③ 比较训练分数与验证分数,识别过拟合
预计时间阅读 50~60 分钟 · 动画演示 25 分钟 · Colab 实践 30 分钟(代码 1 10 分钟,代码 2 运行 2 分钟 + 解读 15 分钟)

三种教学方案

讲授型 50 分钟

以概念为主

导入 5 分钟(为什么是果蝇)→ 感觉→神经→大脑对应表 10 分钟 → 规则 vs 学习 10 分钟 → ①②③ 阶梯 20 分钟 → 练习题 5 分钟。

企业 OJT 90 分钟

以业务应用为主

规则 vs 学习实验场 20 分钟(与工作中的规则系统比较)→ ②③ 过拟合 20 分钟 → 用训练器示例读混淆矩阵 20 分钟 → 代码 2 运行·解读 30 分钟。

一对一辅导

按水平分层推进

入门者只做“规则 vs 学习”和 ①②。中级者在 ③ 中改变隐藏神经元数,亲手制造过拟合,并对照代码 1 与训练器示例中被训练的连接数(3,003 个)。

各部分教学要点

部分停下来提问操作提示
为什么是果蝇“14 万个神经元,算多还是算少?”与人脑的 860 亿相比
电信号“为什么要把气味和光换成同一种单位?”改变刺激强度,看放电频率是否跟着变化
规则 vs 学习“环境变了,谁会先适应?”点“改变环境”,比较两只果蝇的成功率
② 感知机“一条直线能把带状区域分开吗?”在带状问题上运行训练,看准确率停在哪里
③ 隐藏层“隐藏神经元越多就一定越好吗?”用少量数据 + 40 个隐藏神经元,观察训练分数与验证分数的差距
④ 多层“为什么对路过的物体不会起跳?”依次点击“逼近”“路过”“远离”
实践:训练器示例“两个模型都答错的图,为什么会让它们混淆?”依次点击测试图按钮,并与混淆矩阵对照

常见误解 Top 5

误解正确解释要展示的画面
果蝇大脑和深度学习的运作方式完全一样只是层级结构和连接强度的学习相似,反向传播和没有时间的计算都与大脑不同类比合集 D 中的“反向传播”一行
隐藏神经元越多越好数据少时,模型会背下训练数据,验证分数反而下降(过拟合)③ 的少量数据设置
规则写得好就不需要学习环境一变,规则就会一直出错,而学习能重新调整过来“规则 vs 学习”中的改变环境
准确率高就是好模型用训练数据测出的准确率不可靠,要用单独留出的验证数据来测训练器示例的训练·验证曲线(训练 100%,验证 83~89%)
果蝇方式不如深度学习被训练的连接只有四分之一,却在同样的图画问题上取得了相近的准确率(代码 2)代码 2 的结果表

练习题(点击展开解析)

Q1. 两个输入(1, 0)、权重(0.8, −0.5)、阈值 0.5 的感知机,输出是多少?

总和 = 1×0.8 + 0×(−0.5) = 0.8。因为 0.8 ≥ 0.5,所以输出 1。

Q2. 感知机为什么解不了“带状”(只有中间是食物)问题?

感知机只能用一条直线(一个平面)来划分。带状区域两侧需要两条边界,一条直线分不开。隐藏层可以造出多条边界再把它们组合起来。

Q3. 训练准确率 96%、验证准确率 59%,说明发生了什么?请给出两种对策。

过拟合:模型背下了训练数据。对策:收集更多数据、减少隐藏神经元、提前停止训练,任选两种。

Q4. 在果蝇方式中,被训练的连接和固定的连接分别是什么?

固定:投射神经元 → Kenyon 细胞(随机稀疏连接)。训练:Kenyon 细胞 → 输出神经元(由多巴胺改变)。

Q5. 在代码 2 中,果蝇方式(训练 4,004 个连接)取得了与 MLP(训练 16,708 个连接)相近的准确率,这说明了什么?

仅凭宽而稀疏的固定表示,简单的图画问题只需训练输出层就足以解决。但由于无法改进表示本身,在困难问题上会有局限。

Colab 作业

基础

在代码 1 中把 TOP(点亮比例)从 0.08 改为 0.5,报告训练准确率和被点亮的 Kenyon 细胞数如何变化,并用两句话写出稀疏性为什么有用。

挑战

把代码 2 中 MLP 的隐藏层大小改为 8、64、512,用两个种子比较验证准确率。结合学习曲线(第 7 个单元格)解读是否出现过拟合。

难度调整与延伸学习

入门者第 ④ 部分和“结构比较”中的 GRU·LSTM 可以跳过,不影响整体思路。先把“规则 vs 学习”和 ②③ 吃透
进阶让学生比较果蝇方式与机器学习中的随机特征·极限学习机(ELM)并做报告。查到的论文要核对原文
延伸学习Sangsun Ahn,《面向商业的数据科学》讲义(数据科学概论,韩文)· STEP [K-Digital] 人工智能自然语言处理 · STEP [K-Digital] 金融科技数据分析基础
讲师用资料练习题的评分标准和作业参考答案见教师用答案页面(特别篇 1)

辛苦啦!

你已经读完了《特别篇 1 果蝇大脑探索》。实验室的伙伴们来各说一句,帮你总结一下。

博士
博士我们沿着果蝇从感觉到行为的路线,把神经网络一级一级地搭大了。
  • 感觉 → 神经 → 大脑 → 行为,和输入 → 隐藏层 → 输出是同一副骨架
  • 感知机解不了的带状问题,隐藏层能解
  • 只训练 4,004 个连接的果蝇方式,也拿到了 0.84 的测试准确率
助手
助手环境一变,规则果蝇就一直出错呢!
果蝇研究员
果蝇研究员我的脑子才14万个神经元。就靠它搞定一切。