第 6 章 · 第二部分 学习

一层一层看出一只猫

神经网络不是大脑的复制品,而是一种能把「该看什么」也学出来的模型。这一章从一个神经元讲到手机相册里的猫。

人工智能导论 · 上海交通大学「AI+教育」平台 · 讲义版幻灯片

这一讲对应《Hello, AI》第 6 章《一层一层看出一只猫》。主线约 8 分钟的阅读量,展开讲一节课。

本章要回答的问题:为什么把很多简单的计算单元堆成很多层,就能认出一只猫?

开场在搜索框里输入「猫」

半秒钟后,所有有猫的照片排在你面前

包括那张只露出半个猫耳朵的。
没有人给这些照片打过标签。

手机是怎么做到的?
试着写一条规则定义「猫」
  • 有尖耳朵?狗也有。
  • 有胡须?海豹也有。
  • 橘色的?有些猫是黑的。

让学生现场尝试给「猫」下定义,一分钟就够——他们会自己发现写不出来。这正是第二章规则系统撞死的那堵墙。

神经网络绕过了它:它不要求你说出猫是什么,只要求你给它看几十万张猫。

?

为什么把很多简单的计算单元堆成很多层,
就能认出一只猫?

这一章比前两章多一点数学,
但都是加法和乘法,请放心往下看。

提前打这个招呼很有用。学生对「神经网络」这个词的畏惧,往往大于它实际的难度。

一Part One

一个神经元做四件事

人工神经元和大脑里的神经元只有一个相似之处:它接收很多输入,当输入足够强时才「放电」。除此之外的一切类比都只是修辞。

加权求和激活输出
神经元输入够强,它才亮

四步,一个公式

x₁x₂x₃x₄ w₁ = 0.9w₂ = 0.1w₃ = 0.5w₄ = −0.6 Σ wᵢxᵢ + b加权求和 激活:够了才亮 y ① 接收输入② 各乘一个权重(旋钮)③ 求和加偏置④ 非线性激活后输出 权重为负的输入起反作用;权重大的输入说了算。
一个神经元的四步。权重就是旋钮。
  • 接收输入一组数字,比如每个像素的亮度。
  • 加权每个输入乘一个权重;权重为负的输入起反作用。
  • 求和加起来,再加一个偏置。
  • 激活送进一个简单的非线性函数,比如「负数归零」。

y = f( Σ wᵢxᵢ + b )

w 和 b 就是第四章说的旋钮。整章所有的「学习」,都是在拧它们。

神经元它其实是一个探测器

如果权重恰好长成「耳朵」的形状

神经元
输入够强,它才亮。

讲法:如果一个神经元的权重恰好在「猫耳朵」形状的位置为正、周围为负,那么当输入图像的对应位置有一个耳朵时,它的输出就大。一个神经元 = 一个微型探测器。

那一步看起来多余的「激活」

没有它,
堆一百层也等价于一层。

线性函数的复合仍然是线性的,一百层矩阵乘法可以合并成一个矩阵,
能表达的规律和一条直线差不多。

「非线性」是神经网络所有能力的来源。

这是本章的第一个考点,也是最容易讲清楚的一个。可以在黑板上演示两次线性变换合并成一次。

深入激活函数动物园

只有一个要求:非线性。但选哪个,决定训练能不能成功

S 形

sigmoid

把任何数压到 0 和 1 之间。有生物学直觉,但输入很大或很小时曲线几乎是平的,梯度接近零。

梯度一层层往回乘,几层之后就消失了——1990 年代深层网络训不动的主要原因之一。

ReLU

负数归零,正数照原样

简单到几乎不像一个函数,但正数区域梯度恒为 1,不会消失;计算极便宜。

2012 年 AlexNet 用的就是它。问题:神经元一旦「死」了就不再更新。

GELU / SwiGLU

平滑版本

零附近不是硬拐角而是圆滑的弯,实践中训练更稳。今天的大语言模型多用这一类。

区别都是细节,共同点是:正数区域近似线性、负数区域压制。看到这些名字,知道它们只是「够了才亮」的不同实现就行。

这一页的作用是解除术语焦虑。学生以后在论文里看到这些缩写,不必停下来查。

二Part Two

层:从像素到猫

把几百个神经元并排放在一起,接收同样的输入,就是一「层」。把一层的输出当作下一层的输入,就是「深度」。

组合特征层级深比宽好残差连接
层层的意义在于组合

笔画、形状、部件、脸、猫

特征层级
每一层把上一层的输出组合成更复杂的模式。

逐层讲一遍:第一层直接看像素,只能学到边缘和颜色过渡;第二层把边缘组合成角、弧、条纹;第三层组合成眼睛、耳朵、鼻子;再往上,按空间关系组合成一张猫脸。

层换一张图再看一遍

每一层都站在上一层的肩膀上

像素一堆数字 边缘第一层 角、弧、纹理第二层 耳朵、眼睛、鼻子第三层 猫0.97 这个层级没有人设计,是训练之后事后观察到的。给它足够多的猫,它自己会发明「耳朵」。
最令人惊讶的地方

这个层级不是人设计的,是训练出来的。研究者是事后打开训练好的网络、去看每一层的神经元对什么最敏感,才发现了它。

给它足够多的猫,它自己会发明「耳朵」这个中间概念——虽然它不知道这个词。

实验 · 神经网络游乐场

现场演示游乐场实验:只用一层,决策边界是一条直线;加第二层,边界开始弯曲;三四层,它能把螺旋形的数据分开。这是「层级组合」在一个二维小世界里的样子。

深入为什么「深」比「宽」好

一个隐藏层足够宽就能逼近任何函数——那为什么还要堆层?

答案是效率
  • 宽而浅要表达「猫脸」,得为每一种位置、大小、姿态各准备一个神经元,数量是天文数字。
  • 深则可以复用第一层的「边缘探测器」被第二层所有神经元共享;第二层的「耳朵」被第三层在任何位置使用。

层级结构让网络用指数级更少的参数,表达同样复杂的函数。

为什么这恰好管用

因为世界本来就是层级组合的:物体由部件组成,部件由形状组成,形状由边缘组成;句子由短语组成,短语由词组成。

深度网络的先验恰好匹配这种组合性——这是它在图像和语言上都成功的深层原因。

代价:越深,梯度往回传时越容易消失或爆炸。2015 年的残差连接(每层可以直接把输入传给下一层)解决了它,网络从几十层一下到了上千层。

残差连接值得记一笔:第八章 Transformer 的每个模块都带着这个设计。它是过去十年最通用的一个结构技巧。

三Part Three

训练:把错误往回分

网络刚初始化时所有权重都是随机的,它对每张图片的判断都是瞎猜。训练的任务,是把这几百万个权重调到正确的位置。

反向传播链式法则追责
反向传播1986

一次正向,一次反向,拿到全部梯度

  1. 正向传播从输入算到输出,记下每一层的中间结果。
  2. 算出误差预测的概率分布和真实标签差多少。
  3. 反向传播从输出的误差出发,逐层往回走,用链式法则把误差「分配」给每一层的每个权重。
  4. 一次走完,全部梯度到手计算量只比正向传播多一个常数倍。

没有反向传播,深度网络在算力上就是不可训练的。直接对第一层的权重求导,要经过后面所有层,繁琐到不可行。

第四章的框架在这里完全适用:定义损失,算梯度,往下走。唯一的新东西就是「怎么高效算梯度」。

反向传播的直觉

它是一次追责。

输出错了——是最后一层的哪些神经元的责任?
它们又是被前一层的哪些神经元误导的?一路追到第一层。

每个权重按它对错误的「贡献」比例得到调整。

这个比喻学生很容易记住。可以顺带点一句:这也是为什么深层网络难训练——责任追得越远,信号越模糊(梯度消失)。

深入六个训练术语

听懂就够

轮次 epoch把全部训练数据过一遍。训练通常要几十到几百轮。
批次 batch每次更新权重用的一小撮样本,常见几十到几千个。
学习率梯度下降的步长。最重要的超参数。
损失曲线损失随步数下降的曲线。看它是判断训练是否正常最直接的办法。
验证准确率在验证集上的表现。它停止上升时,通常就该停止训练。
参数量权重和偏置的总数,从几万到几万亿。衡量模型规模最常用的数字。

「一个 70 亿参数的模型训练了 3 轮,批次大小 4096,学习率 3e-4」——你现在能读懂这句话的每一个词。

这一页是给学生的一份词汇表。可以让他们拍照留存。

深入让网络不背答案

三个几乎每个网络都在用的技巧

一

数据增强

把同一张猫照随机旋转、翻转、裁剪、调亮度,就得到「新的」样本。网络学到的是猫的本质,而不是这张照片的像素。

二

随机丢弃 Dropout

训练时每步随机关掉一部分神经元,让网络不能依赖任何一个特定神经元。像训练了成千上万个子网络再平均。

三

批归一化

把每一层的输入调整到稳定的均值和方差。原本为了训练更快更稳,顺带起了正则化的作用。

共同的哲学:往训练过程里加噪声,让网络学到的东西对噪声不敏感。稳健的知识是那些在扰动下仍然成立的知识——对人也一样。

Transformer 里的「层归一化」是批归一化的近亲,第八章会遇到。

深入参数量的数量感

从六万到几万亿,跨了八个数量级

模型年份参数量备注
LeNet-5(读支票)19986 万卷积 + 反向传播,可行性的证明
AlexNet20126000 万八层,两块 GPU,深度学习浪潮的起点
ResNet-5020152500 万比 AlexNet 少,但深六倍、准得多
GPT-2201915 亿
GPT-320201750 亿地球人口的二十倍
前沿混合专家模型2025数千亿~万亿每个 token 只用其中几百亿

两个提醒:参数量和能力不是正比(ResNet 参数更少却强得多,结构比数量重要);参数量和运行成本也不是正比。看到一个数字,先问:什么结构?总参数还是激活参数?

可以补一句:人脑约 100 万亿突触,但突触和参数不是一回事,这个类比只能用来建立数量感,不能用来比较能力。

四Part Four

卷积:为图像量身定做

「猫耳朵」是一个局部的模式,在左上角是耳朵,在右下角也是耳朵。让每个神经元都学一遍所有位置的耳朵,是巨大的冗余。

局部连接权重共享滤波器池化
卷积两个想法

一扇小窗,在整张图上滑动

卷积
一扇小窗在整张图上滑动,寻找同一种模式。

局部连接:每个神经元只看一小块区域,比如 3×3 个像素。权重共享:同一组权重在每个位置滑动,扫一遍。

一组权重就是一个滤波器,输出一张「这个模式在哪里出现了」的地图。一层里几十个滤波器,就得到几十张地图;再用池化缩小,让下一层看到更大的范围。

卷积为什么它赢了

参数少几个数量级,表现却好得多

1989
杨立昆提出卷积网络
1998
在手写数字识别上成熟银行系统里读了大量支票。
2012
在 ImageNet 上一鸣惊人
原因只有一句

它的结构里内置了一条先验知识:
图像的规律与位置无关。

把正确的先验写进结构,胜过让模型从数据里把它重新学一遍。这是整个深度学习工程里最有价值的一条经验。

这一页可以引出一个更大的话题:架构设计的本质,就是把我们已知的世界结构塞进模型里。第八章的注意力机制,塞进去的是「哪些词彼此相关」。

深入打开手写数字网络看看

一个能在浏览器里跑的真网络

输入 1×28×28
→ 卷积 16 个 5×5 → ReLU → 2×2 池化 → 16×14×14
→ 卷积 32 个 3×3 → ReLU → 2×2 池化 → 32×7×7
→ 展平 1568 → 全连接 128 → ReLU
→ 全连接 10 → Softmax
参数量8.2 万整个模型九百多 KB
一万张测试图99.6%单次识别不到十毫秒
每一行都在演示本章的原理
  • 第一层 16 个滤波器学到的是笔画的方向和端点——实验里能亲眼看到。
  • 池化28×28 缩到 14×14,让第二层看到更大的范围。
  • 全连接 + Softmax把「哪些局部模式出现在哪里」组合成十个数字的证据,再变成概率。
实验 · 手写数字识别

它也会犯错:把一个写得太像 1 的 7 认成 1,因为训练集里的 7 大多带横——这是第五章的抽样偏差在最小尺度上的样子。

另外:整个模型不到 1 MB,说明「深度学习」不一定意味着「巨大」。

五Part Five

表示学习:真正的突破

回到一个问题:深度学习到底突破了什么?答案不在层数,也不在参数量。

特征工程表示学习通用性
突破深度学习把哪一步吃掉了

「该看什么」也交给了学习

深度学习之前

人来设计特征

视觉专家设计一套特征(边缘方向直方图、颜色分布、纹理统计……),把图片变成数值,再用分类器在特征上学习。

特征设计得好不好决定一切,而设计特征需要多年专业经验。

之后

网络自己学出特征

人只提供像素和标签,网络自己发明中间的「边缘」「纹理」「耳朵」。

学习的不只是从特征到答案的映射,还有从原始数据到特征的映射。

这就是「表示学习」,也是「深度学习」这个词真正的含义。第四章讲特征工程时埋的伏笔,在这里收回来。

为什么它能扩展到一切

不管输入是什么,
只要有足够的数据,
网络就能自己找出合适的表示。

图像、语音、文本、蛋白质结构、棋局——同一套办法。

第七章会看到:语言模型里的词向量,就是文字的表示学习。

这一页是全书的一个枢纽。第七、八、十一、十三章都是这句话的展开。

深入同样的技术,不同的边界

从相册认猫,到门禁认脸

用的是同一类网络。但这两件事的社会含义完全不同。

  • 认错一只猫无非搜索结果里混进一只狗。
  • 认错一张脸可能是一个人被拒之门外,或者一个无辜者被当成嫌疑人。

人脸网络学的不是「记住这张脸」,而是把每张脸变成几百维向量,让同一个人靠得近、不同人离得远。它对光线、角度、年龄相当鲁棒,但错误率并不均匀——在代表性不足的人群上可能高出几倍。

涉及人而不是猫时,先问四件事
  • 数据在什么人群上采集的?
  • 错误率按人群分开报告了吗?
  • 被识别的人知情并同意了吗?
  • 出错时有人工复核的通道吗?

这些问题和网络的架构无关,但比架构重要得多。

这是第五章「抽样偏差」在真实世界里最严重的例子之一。四个问题建议板书,第十四章会再用到。

带走一句话

每一层把上一层的输出
组合成更复杂的模式。

反向传播让每个参数为最终的错误承担相应的责任。

而它最大的突破是:把「该看什么」也交给了学习。

三句话对应本章三节:层、训练、表示学习。

自测第 1、2 题

去掉激活函数,一个十层的网络等价于什么?为什么?

卷积层的「权重共享」利用了图像的什么性质?它带来什么好处?

参考答案 一、等价于一层线性变换。线性函数的复合仍然是线性的,十层矩阵乘法可以合并成一个矩阵。非线性激活是让多层结构有意义的前提。

二、利用的是「图像中的模式在任何位置都是同一种模式」。好处:一组参数在整张图上寻找同一模式,参数量大幅减少,也更不容易过拟合。

先让学生回答,再按右键展开答案。

自测第 3 题

「表示学习」和传统的「特征工程」的区别是什么?

参考答案 特征工程由人决定模型看数据的哪些方面;表示学习让网络从原始数据自己学出中间特征。前者依赖专家经验,后者依赖数据量。深度学习的核心突破就是后者——也正因如此,同一套方法才能从图像扩展到语音、文本和蛋白质。

可以追问:那特征工程是不是没用了?不是。第四章讲过,在表格数据上它仍然是主力,而且「用什么时刻的数据」这类判断永远交不出去。

自测第 4 题

反向传播解决的是什么问题?
它和梯度下降的关系是什么?

参考答案 梯度下降需要知道损失对每个参数的梯度,但深层网络里直接求导极其繁琐。反向传播是高效计算这些梯度的方法:用链式法则把输出误差逐层往回分配。
一句话概括分工:梯度下降决定「怎么改」,反向传播提供「改多少」的依据。

这两个词学生最容易混。板书这句分工,基本就不会再混了。

收束第 6 章

这一章留下什么

  • 一个神经元做四件事:加权、求和、激活、输出。权重和偏置就是第四章的旋钮。
  • 非线性是一切能力的来源:去掉激活函数,一百层等价于一层。
  • 层的意义是组合:边缘→形状→部件→物体。这个层级不是人设计的,是训练出来的。
  • 反向传播是一次追责:用链式法则把输出误差逐层往回分配,一次拿到全部梯度。
  • 卷积把「图像规律与位置无关」写进了结构;而深度学习真正的突破是表示学习——连「该看什么」也交给学习。
本章术语
神经元激活函数层与深度反向传播卷积神经网络表示学习特征层级参数量

继续读

正文与「深入」段落:ai4edu.sjtu.edu.cn/helloai/read/neural-networks/
下一章:第 7 章 文字怎样变成数字

留三到五分钟做本页的回顾,让学生用自己的话复述其中一条。

阅读本章正文 ↗ 全部幻灯片

放映快捷键

← → 空格
上一页 / 下一页
数字 + 停顿
跳到第 N 页
O
缩略总览,点一张跳过去
N
讲者备注抽屉
S
改成一步一点(默认一次一整页)
F
全屏
P
打印 / 导出 PDF(每页一张)
Esc
退出总览或关闭本窗

鼠标移到屏幕底部会显示控制条;页码记在地址栏的 # 后面,刷新不会丢。
手机上:竖着拿会自动把版面转过来(底下那条里的「转向」可以切回去),点右半边或往上滑翻页。

在手机上怎么翻

竖着拿的时候,整张幻灯片会自动转过来,字大一倍;把手机横过来也一样能看。

点右半边或往上滑是下一页,点左半边回上一页。屏幕底下那条里有缩略总览和讲者备注。

或者读这一章的正文 →