深度学习 A to Z · 3-2

神经网络的部件 — 从感知机到反向传播

神经网络是几种部件的组合:权衡输入的神经元、弯折信号的激活函数、层层堆叠的隐藏层、衡量错误程度的损失函数,以及把责任倒着分摊、修正权重的反向传播。我们将亲手操作每一个部件,最后再沿着完整流程,用这些部件构建真实模型、进行评估并部署。

1958感知机发表 [R1]
1986反向传播论文 [R3]
12 种亲手画出的激活函数
0.25Sigmoid 梯度的最大值 = 梯度消失的种子
3 种并排赛跑的优化器
2 段可在 Colab 中直接运行的代码
1感知机

感知机 — 权衡输入,用一条直线来划分

y = 阶跃(w₁x₁ + w₂x₂ + b)Rosenblatt, 1958

在果蝇身上

当果香和醋味同时飘来时,神经元以不同的强度分别接收这两个信号并相加。总和超过放电阈值,就发出“靠近”的信号。突触强度就是权重,放电阈值就是偏置。

在神经网络中

把每个输入乘以权重后相加,再加上偏置,得到值 z;z 大于等于 0 就输出 1,否则输出 0。放到平面上看,就是 w₁x₁ + w₂x₂ + b = 0 这一条直线把“食物”和“非食物”分开。每遇到一个分错的点,就把直线朝那个点稍微移动一点,这就是感知机的学习规则。

问题

给初学者的解说

感知机的学习规则只有一行:挑一个分错的点,w ← w + η·(正确答案 − 预测)·x。如果正确答案是 1 却预测成 0,就把直线拉向那个点;反之就推开。只要问题可以用直线划分,仅靠这条规则,迟早能把所有点都分对。

像 XOR 这样“只有其中一个存在时才是食物”的问题,任何直线都无法划分。1969 年 Minsky 和 Papert 从数学上证明了这一局限,此后神经网络研究沉寂了一段时间。解决办法是再加一层,也就是隐藏层。在此之前,我们先来看看用平滑弯折的函数代替阶跃函数。

2激活函数

激活函数 — 如何弯折信号

激活函数接收加权和 z,决定神经元的输出 a。必须有弯折,堆叠多层才有意义;而梯度(导数)的形状决定了学习速度。

函数 f(z)梯度 f′(z)当前输入 z
输入 z

梯度消失 — 为什么 ReLU 成了主流

反向传播每往回经过一层,就要乘上激活函数的梯度。Sigmoid 的梯度最大也只有 0.25。往回经过 10 层,最多也会缩小到 0.25¹⁰ ≈ 0.00000095 倍。“请修正”的信号几乎传不到前面的层。这就是梯度消失。

ReLU 在正数区间的梯度恰好是 1,往回经过多少层信号都不会衰减;计算也只是“和 0 比较”,所以很快。不过在负数区间梯度为 0,一旦熄灭的神经元可能再也无法复活。Leaky ReLU、ELU、Swish 等变体正是为了填补这个漏洞。没有哪个函数永远最好,要根据问题和模型来选择。

3隐藏层

隐藏层 — 有了激活函数,堆叠层才有意义

输入 2 → 隐藏 → 隐藏 → 输出 1相同数据、相同结构,只有激活函数不同

每个隐藏层的神经元数

线性 ∘ 线性 = 线性

不加激活函数而堆叠多层,W₂(W₁x) = (W₂W₁)x,也就和一个权重矩阵完全一样。例如 W₁ = [[1, 2], [0, 1]],W₂ = [[2, 0], [1, 1]],则 W₂W₁ = [[2, 4], [1, 3]]。无论是经过两层,还是只经过这一个矩阵,结果都相同。即使堆叠 100 层,也只能画出一条直线。

如果激活函数在每一层都把信号弯折一下,直线片段就会相互叠加、弯曲,形成螺旋这样复杂的边界。把隐藏神经元数减到 4,还能看到可弯折的片段不够,无法完全包住螺旋。

4表示学习

表示学习 — 层越往后,特征越抽象

点(像素)→ 方向 → 接合处 → 形状。下一层以前一层的特征为材料,构建出更高一级的特征。

输入图形

用数字看一个神经元

用权重(0.5, 0.3, 0.2, 0.1)权衡前一层的 4 个特征(0.8, 0.1, 0.4, 0.0),再加上偏置 0.1。

z = 0.8×0.5 + 0.1×0.3 + 0.4×0.2 + 0.0×0.1 + 0.1
= 0.40 + 0.03 + 0.08 + 0.00 + 0.10 = 0.61
a = ReLU(0.61) = max(0, 0.61) = 0.61

人为设定的特征 vs 自己学到的特征

上图中的方向、接合处检测器是为了讲解而由人预先设定的规则。以前的机器学习确实是这样由人来设计特征的。深度学习则从数据中自己学习这些检测器的权重,因此还能发现人没有想到的特征。

图像中每一层实际会产生什么特征,将在 3-3(图像与 CNN)中介绍。

5损失函数

损失函数(代价函数)— 用一个数字表示错误程度

学习就是减小损失。把什么定为损失,决定了模型“害怕什么”。

均方误差 (MSE)

(正确答案 − 预测)²。是预测数值的回归问题的基本选择。用于预测房价、家庭支出、气温等连续值。下面的反向传播仪表盘就使用这个损失。

交叉熵 (Cross-Entropy)

−log(分给正确答案的概率)。是分类问题的基本选择。如果很有把握却答错,惩罚会无限增大。输出使用 Sigmoid 或 Softmax 时与之搭配。

正确答案
模型的预测概率 p

为什么分类要用交叉熵

输出使用 Sigmoid 时,MSE 的梯度为 2(p − t)·p(1 − p)。如果正确答案是 1,模型却很有把握地给出 p = 0.01,那么 p(1 − p) 接近 0,梯度也几乎为 0。错得很离谱,“请修正”的信号却很弱。使用交叉熵时,Sigmoid 的导数被干净地消掉,梯度就是 p − t,即 −0.99。错得越多,修正得越猛。

6反向传播

梯度下降与反向传播 — 先猜测,再衡量,然后倒着分摊来修正

输入 2 → 隐藏 3 → 输出 1目标 1.00 · 损失 = (目标 − 输出)² · 学习率 0.1

01 前向传播

先猜一下

输入沿着连接一路计算到输出。最初的输出是 0.41。

02 损失

衡量错了多少

(1.00 − 0.41)² ≈ 0.35。就是上面第 5 节的 MSE。

03 反向传播

分摊是谁的责任

从输出倒着往回,为每个权重计算责任(梯度)。

04 更新

一点点修正

新权重 = 原权重 − 学习率 × 梯度。这就是梯度下降。

01 前向传播→ 02 损失→ 03 反向传播→ 04 更新↺ 重复

点击权重格,图中会高亮对应的连接,下方的“用数字跟踪”会显示该权重的计算过程。

速度
学习率 η
修正的连接

用数字跟踪 — 一个权重的一轮

反向传播就是“用乘法传递责任”

首先确定输出处的误差量 −2 × (目标 − 输出)。隐藏→输出权重的责任,就是用它乘以经该权重传入的信号(隐藏值)。输入→隐藏权重还要再往回走一格:乘以输出权重 v,把责任送到隐藏神经元;再乘以隐藏神经元的敏感程度 h(1 − h);最后乘以传入的输入 x。这种“相乘后往回送”就是链式法则。第 2 节的梯度消失也正是在这种乘法中产生的。

点击“仅输出侧(果蝇方式)”后,输入→隐藏权重被固定,从上方传下来的教学信号(比作果蝇的多巴胺)只修正输出侧的连接。这是对果蝇蘑菇体学习结构的大幅简化比喻;多巴胺信号是否像梯度那样被计算,目前仍在研究中。

7优化器

优化器 — 走下山谷的三种步法

把损失画成地形,学习就是寻找最低处、一路往下走。即使看到相同的梯度,每种优化器迈步的方式也不同。

SGD:按梯度迈一步动量:加上滚动带来的惯性Adam:按方向调整步幅
学习率 η
小批量噪声
SGD:w ← w − η·g
动量:v ← 0.9·v − η·g,  w ← w + v
Adam:m ← 0.9·m + 0.1·g,  s ← 0.999·s + 0.001·g²,  w ← w − η·m̂ / (√ŝ + ε)  (m̂、ŝ 是校正了初始偏差的值)

给初学者的解说

这个山谷横向狭长、纵向陡峭。SGD 只按梯度大小移动,所以在陡峭的纵向上会大步上下乱跳(锯齿形);学习率小时,在平缓的横向上则像乌龟一样慢(在“0.1 小”中确认)。动量记住滚动的速度,在稳定的方向(横向)上加速,而锯齿形的来回则相互抵消。Adam 对每个方向分别衡量梯度大小来调整步幅,因此横向和纵向以相近的速度下降。

“小批量噪声”是像实际学习那样只看部分数据计算梯度时产生的抖动。把学习率设为“大”,SGD 会越过山谷壁被弹出去。没有哪种优化器总是获胜。Adam 在大多数问题上都是稳妥的默认选择,因此被广泛使用;但也有研究表明,在许多深度学习任务中,调好的 SGD 在没见过的数据上表现更好 [R12]。

8过拟合

过拟合与正则化 — 死记硬背与真正理解

训练点 14 个 · 验证点 80 个输入 1 → 隐藏 48 (tanh) → 输出 1,Adam

Dropout
权重衰减 (L2)
早停

三种对策

  1. 早停:使用验证损失最低时的模型。最简单,几乎总会用到。
  2. Dropout:每次训练时随机关闭部分隐藏神经元,防止依赖少数特定神经元去死记点。测试时全部打开使用。
  3. 权重衰减(L2):权重越大,就在损失上加越多的惩罚,防止曲线变得过于弯弯曲曲。

最可靠的对策是收集更多数据。数据少而模型大,就容易死记硬背。此图中的数字是本页直接计算的讲解用实验,为了每次运行结果都一样,固定了随机数。

9完整流程

构建模型的完整流程 — 从数据到部署

到目前为止看到的部件都属于“训练”这一个阶段。实际工作中,它前后的环节更长。示例是工厂检测台上的“找出次品”模型。

① 收集→ ② 划分→ ③ 预处理→ ④ 训练→ ⑤ 评估→ ⑥ 保存·部署→ ⑦ 监控

⑤ 评估 — 只看准确率会被骗

检测的 200 件产品中,实际次品有 20 件。模型为每件产品给出“是次品的概率”。试着改变多少以上判为次品(阈值)。

次品判定阈值

各阶段的常见错误

  1. 划分:测试数据只在最后用一次。用验证数据选择设置,用测试数据衡量最终实力。有时间顺序的数据不要随机打乱,而要用过去训练、用未来评估(详见 3-6)。
  2. 预处理:均值、标准差等缩放(标准化)的基准只用训练数据计算。如果用全部数据计算,测试信息就会渗进来(数据泄露)。
  3. 评估:如果次品只占 10%,只要说“全部正常”,准确率就有 90%。要同时看不能漏掉的一方(召回率)和误报的代价(精确率)。
  4. 部署·监控:工厂照明改变或换了新零件,数据就会变化,性能随之下降。部署之后也要持续衡量性能,必要时重新训练。

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

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

代码 1 · 用 NumPy 亲手搭建小型神经网络对应第 3·5·6·8 节 · numpy, matplotlib · CPU 约 10 秒

不借助库,原样实现前向传播 → 损失 → 反向传播 → 更新四个步骤。用同样的螺旋数据分别训练“无激活函数”和“tanh 隐藏层”并进行比较。想换成自己的数据,只需在代码中标有 [想换成自己的数据] 的地方修改 X 和 y。

运行结果(2026-10-03 运行,numpy 2.4 · CPU)。固定了随机数,结果相同。
代码 2 · 用 Keras 搭建同样的神经网络 + 防止过拟合对应第 2·3·7·8·9 节 · tensorflow(Keras) · CPU 约 1~2 分钟

这是实际工作中使用的方式。比较无激活函数 / ReLU / ReLU + Dropout + 早停三个模型,并把最后一个模型保存为文件(第 9 节的 ⑥ 保存)。

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

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

一并附上的代码

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

术语表

与正文中黄色虚线下划线相同的词典。整个系列使用统一的写法。点击章节名可跳到首次出现的位置。

类比合集 — 以及类比失灵之处

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

概念日常类比果蝇·大脑类比类比失灵之处
权重对每条意见给出不同的信任度部分 突触强度真实突触的强度会随时间和身体状态而变化,信号也不是连续的数字,而是电脉冲(尖峰)
偏置·阈值做出决定的基准线部分 神经元的放电阈值神经元的阈值不是固定值,会因疲劳、适应而不断变化
激活函数怎么拧都有极限的音量旋钮部分 随刺激强度变化的放电频率曲线神经网络输出一个数字,而神经元随时间发出脉冲
隐藏层汇总报告的中层管理者部分 蘑菇体的凯尼恩细胞蘑菇体输入侧的连接大多不会因学习而改变,而深度学习的隐藏层会学习所有连接
损失函数考试评分表部分 糖(奖励)·电击(惩罚)这样的结果果蝇不会用一个数字来计算“错了多少”
反向传播事故之后倒推追究责任无 多巴胺信号不会逆着层来计算大脑是否用其他方式做着类似反向传播的事,仍在研究中
学习率被指出一次后修正的幅度部分 一次经历带来的突触变化量大脑的变化幅度因情境、注意力、重复而不同
优化器在雾气笼罩的山上下山的登山者的步法无实际的损失地形有数百万维,无法像图中那样一眼看清
过拟合只背了往年真题答案的考生无人也会死记,但人的泛化方式与神经网络不同
Dropout少了几个人也能运转的团队无 有人解释说它类似突触传递偶尔失败,但依据较弱测试时打开所有神经元使用。团队成员并不是一直缺席

作者简介与参考文献

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

E-1 作者简介

Sangsun Ahn(M-Robo 公司代表)

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

课程

  • Sangsun Ahn (2025). 《面向商业的数据科学》讲义. 韩国开放网络大学 人工智能融合学科.
  • Sangsun Ahn (2025). [K-数字] 人工智能自然语言处理. STEP(智能职业培训平台), 韩国技术教育大学 在线终身教育院.
  • Sangsun Ahn (2024). [K-数字] 金融科技数据分析基础. 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), 首尔媒体研究生院大学.
  • Sangsun Ahn (2024). 利用工伤面板数据的机器学习模型. 第 10 届工伤保险面板学术会议海报发表(2024.05.17), 劳动福利公团 劳动福利研究院.
  • Sangsun Ahn (2024). 虚拟资产时间序列数据的分析与预测:时间序列模型与人工智能模型的比较及改进建议. 《未来社会》, 15(1). 原文

E-2 学术参考文献

  1. [R1] Rosenblatt, F. (1958). The perceptron: A probabilistic model for information storage and organization in the brain. Psychological Review, 65(6), 386–408. doi:10.1037/h0042519 — 第 1 节
  2. [R2] Minsky, M. L., & Papert, S. (1969). Perceptrons. MIT Press. — 第 1 节(XOR 局限)
  3. [R3] Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning representations by back-propagating errors. Nature, 323, 533–536. doi:10.1038/323533a0 — 第 4·6 节
  4. [R4] Nair, V., & Hinton, G. E. (2010). Rectified linear units improve restricted Boltzmann machines. Proceedings of ICML 2010, 807–814. — 第 2 节(ReLU)
  5. [R5] Maas, A. L., Hannun, A. Y., & Ng, A. Y. (2013). Rectifier nonlinearities improve neural network acoustic models. ICML 2013 Workshop on Deep Learning for Audio, Speech and Language Processing. — 第 2 节(Leaky ReLU)
  6. [R6] He, K., Zhang, X., Ren, S., & Sun, J. (2015). Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification. Proceedings of ICCV 2015, 1026–1034. doi:10.1109/ICCV.2015.123 — 第 2 节(PReLU)
  7. [R7] Clevert, D.-A., Unterthiner, T., & Hochreiter, S. (2016). Fast and accurate deep network learning by exponential linear units (ELUs). ICLR 2016. arXiv:1511.07289 — 第 2 节(ELU)
  8. [R8] Klambauer, G., Unterthiner, T., Mayr, A., & Hochreiter, S. (2017). Self-normalizing neural networks. Advances in Neural Information Processing Systems 30. arXiv:1706.02515 — 第 2 节(SELU)
  9. [R9] Ramachandran, P., Zoph, B., & Le, Q. V. (2017). Searching for activation functions. arXiv:1710.05941 — 第 2 节(Swish)
  10. [R10] Misra, D. (2020). Mish: A self regularized non-monotonic activation function. BMVC 2020. arXiv:1908.08681 — 第 2 节(Mish)
  11. [R11] Kingma, D. P., & Ba, J. (2015). Adam: A method for stochastic optimization. ICLR 2015. arXiv:1412.6980 — 第 7 节
  12. [R12] Wilson, A. C., Roelofs, R., Stern, M., Srebro, N., & Recht, B. (2017). The marginal value of adaptive gradient methods in machine learning. Advances in Neural Information Processing Systems 30. arXiv:1705.08292 — 第 7 节(Adam 与 SGD 的泛化比较)
  13. [R13] Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I., & Salakhutdinov, R. (2014). Dropout: A simple way to prevent neural networks from overfitting. Journal of Machine Learning Research, 15(56), 1929–1958. jmlr.org — 第 8 节
  14. [R14] LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436–444. doi:10.1038/nature14539 — 第 3·4 节
  15. [R15] Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. deeplearningbook.org — 第 5·7·8·9 节(损失函数、优化、正则化、早停)

E-3 图片参考资料

以下资料作为结构和内容的参考。

  • DataCraft Hub, "Activation Functions — Adding Nonlinearity to Neural Networks" (Series 01 · 05) 信息图 — 第 2·3 节
  • DataCraft Hub, "Representation Learning — How Neural Networks Learn Useful Representations" (Series 01 · 06) 信息图 — 第 4 节
  • mltut, "Activation Functions" 信息图 — 第 2 节。Hard Sigmoid 采用图中的定义(0.2x + 0.5)
  • mltut, "A Quick Guide to Neural Networks" 信息图 — 第 1·3 节
  • "How AI Learns? From Data to Intelligence" 信息图(未标注制作者)— 第 9 节
  • "How a neural network actually learns" 教学动画(21 秒,未标注制作者)— 第 6 节的初始值

给教育者的提示

这是面向讲师、实务 OJT 负责人和辅导老师的教学指南。时间为预估值,请根据实际课堂调整。

对象初学神经网络的大学生、职场人士。有 Python 基础可做到 Colab 实践,没有的话学到正文动画即可
先修知识乘法和加法、读懂函数图像。导数只需理解为“梯度 = 稍作改变时会变化多少”即可
学习目标① 说明感知机、激活函数、隐藏层各自的作用 ② 用数字跟踪前向传播 → 损失 → 反向传播 → 更新 ③ 识别过拟合,并用验证数据、早停、Dropout 应对
预计时间阅读 40~50 分钟 · 动画演示 25 分钟 · Colab 实践 30 分钟(代码 1 10 分钟,代码 2 20 分钟)

三种教学方案

讲授型 50 分钟

以概念为主

导入 5 分钟(第 1 节 XOR 失败演示)→ 第 2·3 节演示 15 分钟 → 第 5·6 节仪表盘 15 分钟 → 第 8 节过拟合 10 分钟 → 检测题 5 分钟。

实务 OJT 90 分钟

以业务应用为主

第 6 节仪表盘 15 分钟 → 第 8·9 节 25 分钟(结合业务案例讨论准确率陷阱)→ 代码 2 实践 30 分钟 → 用提示卡片“应用到我们团队的数据”20 分钟。

一对一辅导

按水平安排进度

入门者只学第 1·2·3·6 节;中级者先手算一遍第 6 节的“用数字跟踪”,再与代码 1 的反向传播部分对照。

各节教学要点

章节停下来提问的问题操作提示
1 感知机“在 XOR 中,无论怎么移动直线,为什么总会剩下分错的点?”先训练简单问题看到成功,再换成 XOR
2 激活函数“Sigmoid 梯度的最大值在哪里,是多少?”在 Sigmoid 处暂停,把滑块移到 0,确认 0.25
3 隐藏层“堆了两层,为什么左边还是直线?”把神经元数减到 4,展示右边也失败的样子
4 表示学习“□ 为什么靠 4 个角来判断?如果是人,会看什么?”交替点击 T 和 L,指出只有接合处层发生变化
5 损失函数“很有把握却答错时,哪种损失会更强烈地要求修正?”把 p 设为 0.01,比较两个梯度数值
6 反向传播“靠近输出的权重和远离输出的权重,谁的梯度更大?”用“下一步”慢慢走完一轮,再切换权重格来读公式
7 优化器“SGD 为什么走锯齿形?”把学习率改为“大”,展示 SGD 被弹出去的场景
8 过拟合“训练损失一直下降,就是好模型吗?”关闭所有正则化运行到底,再逐个打开进行比较
9 完整流程“在次品检测中,漏检和误报哪个代价更高?”把阈值移到 0.2 和 0.8,观察精确率和召回率反向变化

常见误解 Top 5

误解正确解释要展示的场景
层堆得越多,就一定越聪明没有激活函数,多少层都等同于一条直线。即使有,数据少也会过拟合第 3 节左图、第 8 节
神经网络原样照搬了大脑只借用了层、连接强度、阈值这一骨架。反向传播在大脑中尚未得到证实公共部分 D 的“无”标记
训练损失低就是好模型标准是在没见过的数据(验证·测试)上的性能第 8 节右图
准确率高就是好模型在不平衡数据中,“全部正常”的准确率也很高。要同时看精确率和召回率第 9 节阈值 0.95
Adam 永远是最好的它只是稳妥的默认选择。视问题而定,SGD + 动量有时更好第 7 节学习率“小”

检测题(点击展开解析)

Q1. 在没有激活函数的神经网络中堆叠 10 个隐藏层,能画出什么样的边界?

只能画出一条直线(高维中为一个平面)。因为多个线性变换合在一起仍是一个线性变换(W₂W₁x = Wx)。第 3 节的左图就是例子。

Q2. 用 ReLU 代替 Sigmoid,梯度消失减少的原因是什么?

Sigmoid 的梯度最大为 0.25,逐层相乘后迅速变小。ReLU 在正数区间的梯度为 1,往回传也不会衰减。但在负数区间为 0,可能出现熄灭的神经元。

Q3. 正确答案为 1、预测为 0.41 时,MSE 损失和 ∂L/∂y 是多少?

L = (1 − 0.41)² = 0.3481 ≈ 0.35。∂L/∂y = −2 × (1 − 0.41) = −1.18。与第 6 节仪表盘第一轮的值相同。

Q4. 训练损失一直下降,验证损失却从某一刻开始上升。这是什么状态,应该怎么做?

是过拟合。使用验证损失最低时的模型(早停),打开 Dropout、权重衰减,或增加数据。

Q5. 在次品率 10% 的检测中,回答“全部正常”的模型,准确率和召回率是多少?

准确率 90%,召回率 0%。一个次品也没找到。所以在不平衡数据中不能只看准确率。

Colab 作业

基础

在代码 1 中把 tanh 换成 ReLU(激活函数及其导数两行)。把隐藏神经元数改为 4、16、64,将验证准确率整理成表格,并用三句话写出最佳设置及其理由。

挑战

把代码 2 的数据换成自己的业务数据(2 个以上特征,正确答案为 0/1)。按 6:2:2 划分训练/验证/测试,报告测试数据的准确率、精确率、召回率。并给出依据,判断阈值 0.5 是否适合业务。

难度调整与延伸学习

入门者跳过第 4·7 节也不会打断流程。第 6 节用“下一步”按钮一起只看一轮
进阶先让学员手算第 6 节的“用数字跟踪”,再与代码 1 的 d1·d2·d3 行逐一对应。讨论在第 7 节中加入学习率衰减(调度)会怎样
延伸学习Sangsun Ahn,《面向商业的数据科学》讲义(数据科学总览) · STEP [K-数字] 人工智能自然语言处理(与 3-5·3-8 相关) · STEP [K-数字] 金融科技数据分析基础(与 3-6 相关)
讲师用资料检测题的评分标准和作业参考答案可在教师用答案页面(3-2)查看

辛苦了!

「3-2 神经网络的部件」篇读完啦。实验室的成员们各说一句,帮你总结一下。

博士
博士我们把组成神经网络的部件一个个组装了起来。
  • 一个神经元就是给加权和套上激活函数
  • 用反向传播逆着误差往回走,一点点修正权重
  • 用验证数据检查过拟合
助手
助手黑板上的公式现在不可怕了。
果蝇研究员
果蝇研究员顺着梯度一步一步走,已记下。