《深度学习入门》全书总复习
《深度学习入门》全书总复习覆盖211个权威目录层级,以数学推导、数组实现、交互实验和失败对照重建核心。
为什么从可核查的中间量开始
、、、、、共同构成本页坐标。以一个可重放的MNIST小网络串联数组、感知机、前向、损失、数值梯度、反向传播、优化技巧、CNN和深层应用。
“从零实现”的价值不是拒绝成熟框架,而是让每个数学对象都对应一个可检查的数组,让每次forward、loss、backward和update都能解释。实验先冻结样本身份、输入与标签shape、参数初值、随机种子、数据折分、浮点精度和停止规则;运行前先预测第一处会改变的中间量,运行后立即与手算或枚举基线比较。
本页沿“冻结输入与折分 -> 核对逐层前向 -> 核对损失概率 -> 核对解析梯度 -> 核对优化状态 -> 独立重放全链”组织证据。最终准确率、损失曲线或漂亮图像都只是末端现象;若shape、概率归一、局部导数、梯度尺度或数据隔离在更早位置失败,末端结果不能采信。修复后清空前向缓存、梯度、优化器状态与派生特征,从原始输入完整重放。
数学骨架与shape合同
方程实现前先声明标量、向量、矩阵或四维张量的轴语义,再核对有限值、归一化、导数符号和更新尺度。相同终点可能由错误广播、标签错位、批量分母或缓存污染偶然产生;所以验收以最早分叉为准,并保留更新前后的独立重算结果。
核心机制
- 第一道验收是表示:样本、特征、通道、高宽和类别轴有明确shape,广播和聚合只沿指定轴。输入从Python/NumPy进入网络前,dtype、范围、标签编码和数据折分已经冻结。
- 第二道验收是前向:感知机展示线性边界与多层组合,神经网络按Affine与非线性逐层传递,softmax沿类别归一。每层输出既要数值有限,也要与手算小例一致。
- 第三道验收是学习:交叉熵将概率变成标量目标,mini-batch近似总体损失,中心差分提供小规模梯度基线。参数更新前后分别重算损失,不能复用旧缓存制造下降。
- 第四道验收是反向:局部backward遵循链式法则,返回shape与输入一致;广播参数梯度累加,共享路径梯度求和。解析梯度只有通过数值检查后才具备训练资格。
- 第五道验收是训练与泛化:优化器状态、初始化、BatchNorm模式、Dropout掩码和正则项都可追踪。验证集选择超参数,测试集只在全部决定冻结后开启一次。
- 第六道验收是结构与应用:CNN输出尺寸、im2col重叠累加和池化argmax都可逆向核对;更深、GPU、分布式和低精度的收益在相同协议下比较,应用采用任务专属指标。
- 复习不以记住名词结束,而以定位首个分叉结束。若概率不归一,停止在softmax;若解析梯度偏离数值梯度,停止在局部层;若验证好测试差,检查过拟合、泄漏和分布偏移。
- 最终闭环从原始样本重放:预处理、forward、loss、backward、update、validation和test均保留输入输出摘要。只要某一步无法解释或复现,就回退到最近通过的合同,而不是继续扩大模型。
从原书路线定位本页
全书权威路线为:第1章 Python入门 -> 第2章 感知机 -> 第3章 神经网络 -> 第4章 神经网络的学习 -> 第5章 误差反向传播法 -> 第6章 与学习相关的技巧 -> 第7章 卷积神经网络 -> 第8章 深度学习 -> 附录A Softmax-with-Loss层的计算图。当前页面不是把主题任意重组,而是在这条依赖链上恢复原书位置。前置章节提供数组、表示和可微目标,后续章节使用这里的中间证据继续推导;跨章引用时必须写明复用的是数学定义、代码接口还是实验状态。
对照实验只改变一个变量:shape、偏置、激活、batch、学习率、初始化、网络深度或任务输出。保持输入、参数、随机状态和评价预算不变,先写出按方程应最先变化的量,再比较基线与边界模式。这样才能区分机制收益、实现错误和随机波动。
权威目录逐项讲解
第1章 Python入门
“Python入门”放回本章主线分析其输入、数学变换、输出和边界。复现时保存关键中间量,并用最小样本验证“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”。
验收“第1章 Python入门”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.1 Python是什么
环境层必须记录Python与NumPy版本、安装来源和随机状态。版本差异会改变默认dtype、API和依赖行为,因此可运行环境本身就是复现实验的一部分。
验收“1.1 Python是什么”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.2 Python的安装
环境层必须记录Python与NumPy版本、安装来源和随机状态。版本差异会改变默认dtype、API和依赖行为,因此可运行环境本身就是复现实验的一部分。
验收“1.2 Python的安装”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.2.1 Python版本
环境层必须记录Python与NumPy版本、安装来源和随机状态。版本差异会改变默认dtype、API和依赖行为,因此可运行环境本身就是复现实验的一部分。
验收“1.2.1 Python版本”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.2.2 使用的外部库
环境层必须记录Python与NumPy版本、安装来源和随机状态。版本差异会改变默认dtype、API和依赖行为,因此可运行环境本身就是复现实验的一部分。
验收“1.2.2 使用的外部库”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.2.3 Anaconda发行版
环境层必须记录Python与NumPy版本、安装来源和随机状态。版本差异会改变默认dtype、API和依赖行为,因此可运行环境本身就是复现实验的一部分。
验收“1.2.3 Anaconda发行版”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.3 Python解释器
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“1.3 Python解释器”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.3.1 算术计算
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“1.3.1 算术计算”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.3.2 数据类型
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“1.3.2 数据类型”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.3.3 变量
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“1.3.3 变量”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.3.4 列表
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“1.3.4 列表”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.3.5 字典
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“1.3.5 字典”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.3.6 布尔型
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“1.3.6 布尔型”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.3.7 if语句
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“1.3.7 if语句”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.3.8 for语句
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“1.3.8 for语句”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.3.9 函数
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“1.3.9 函数”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.4 Python脚本文件
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“1.4 Python脚本文件”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.4.1 保存为文件
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“1.4.1 保存为文件”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.4.2 类
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“1.4.2 类”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.5 NumPy
先写出每个数组的shape、dtype和轴语义,再执行索引、广播或矩阵运算;结果不仅核对数值,还核对样本轴、特征轴、通道轴是否保持预期。
验收“1.5 NumPy”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.5.1 导入NumPy
先写出每个数组的shape、dtype和轴语义,再执行索引、广播或矩阵运算;结果不仅核对数值,还核对样本轴、特征轴、通道轴是否保持预期。
验收“1.5.1 导入NumPy”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.5.2 生成NumPy数组
先写出每个数组的shape、dtype和轴语义,再执行索引、广播或矩阵运算;结果不仅核对数值,还核对样本轴、特征轴、通道轴是否保持预期。
验收“1.5.2 生成NumPy数组”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.5.3 NumPy的算术运算
先写出每个数组的shape、dtype和轴语义,再执行索引、广播或矩阵运算;结果不仅核对数值,还核对样本轴、特征轴、通道轴是否保持预期。
验收“1.5.3 NumPy的算术运算”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.5.4 NumPy的N维数组
先写出每个数组的shape、dtype和轴语义,再执行索引、广播或矩阵运算;结果不仅核对数值,还核对样本轴、特征轴、通道轴是否保持预期。
验收“1.5.4 NumPy的N维数组”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.5.5 广播
先写出每个数组的shape、dtype和轴语义,再执行索引、广播或矩阵运算;结果不仅核对数值,还核对样本轴、特征轴、通道轴是否保持预期。
验收“1.5.5 广播”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.5.6 访问元素
先写出每个数组的shape、dtype和轴语义,再执行索引、广播或矩阵运算;结果不仅核对数值,还核对样本轴、特征轴、通道轴是否保持预期。
验收“1.5.6 访问元素”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.6 Matplotlib
可视化用于暴露曲线、像素或特征图的结构,但必须与原始数值摘要并列;坐标轴、取值范围、归一化和样本身份都要可追踪。
验收“1.6 Matplotlib”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.6.1 绘制简单图形
可视化用于暴露曲线、像素或特征图的结构,但必须与原始数值摘要并列;坐标轴、取值范围、归一化和样本身份都要可追踪。
验收“1.6.1 绘制简单图形”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.6.2 pyplot的功能
“pyplot的功能”放回本章主线分析其输入、数学变换、输出和边界。复现时保存关键中间量,并用最小样本验证“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”。
验收“1.6.2 pyplot的功能”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.6.3 显示图像
可视化用于暴露曲线、像素或特征图的结构,但必须与原始数值摘要并列;坐标轴、取值范围、归一化和样本身份都要可追踪。
验收“1.6.3 显示图像”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
1.7 小结
把本章的输入、核心变换、中间证据和失效边界重新连成闭环;验收重点是能从冻结输入重放到“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”,而不是只复述术语。
验收“1.7 小结”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
第2章 感知机
把模型写成加权和加偏置再过阶跃函数,利用二维决策边界解释表示能力;多层组合重新编码输入,使线性不可分关系可被分段边界表达。
验收“第2章 感知机”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
2.1 感知机是什么
把模型写成加权和加偏置再过阶跃函数,利用二维决策边界解释表示能力;多层组合重新编码输入,使线性不可分关系可被分段边界表达。
验收“2.1 感知机是什么”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
2.2 简单逻辑电路
逐个代入四个二值输入,保存加权和、边界余量和阈值输出;XOR需要由多个线性区域组合,不能由单个超平面表示。
验收“2.2 简单逻辑电路”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
2.2.1 与门
逐个代入四个二值输入,保存加权和、边界余量和阈值输出;XOR需要由多个线性区域组合,不能由单个超平面表示。
验收“2.2.1 与门”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
2.2.2 与非门和或门
逐个代入四个二值输入,保存加权和、边界余量和阈值输出;XOR需要由多个线性区域组合,不能由单个超平面表示。
验收“2.2.2 与非门和或门”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
2.3 感知机的实现
把模型写成加权和加偏置再过阶跃函数,利用二维决策边界解释表示能力;多层组合重新编码输入,使线性不可分关系可被分段边界表达。
验收“2.3 感知机的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
2.3.1 简单的实现
“简单的实现”放回本章主线分析其输入、数学变换、输出和边界。复现时保存关键中间量,并用最小样本验证“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”。
验收“2.3.1 简单的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
2.3.2 导入权重和偏置
把模型写成加权和加偏置再过阶跃函数,利用二维决策边界解释表示能力;多层组合重新编码输入,使线性不可分关系可被分段边界表达。
验收“2.3.2 导入权重和偏置”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
2.3.3 使用权重和偏置的实现
把模型写成加权和加偏置再过阶跃函数,利用二维决策边界解释表示能力;多层组合重新编码输入,使线性不可分关系可被分段边界表达。
验收“2.3.3 使用权重和偏置的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
2.4 感知机的局限性
把模型写成加权和加偏置再过阶跃函数,利用二维决策边界解释表示能力;多层组合重新编码输入,使线性不可分关系可被分段边界表达。
验收“2.4 感知机的局限性”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
2.4.1 异或门
逐个代入四个二值输入,保存加权和、边界余量和阈值输出;XOR需要由多个线性区域组合,不能由单个超平面表示。
验收“2.4.1 异或门”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
2.4.2 线性和非线性
把模型写成加权和加偏置再过阶跃函数,利用二维决策边界解释表示能力;多层组合重新编码输入,使线性不可分关系可被分段边界表达。
验收“2.4.2 线性和非线性”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
2.5 多层感知机
把模型写成加权和加偏置再过阶跃函数,利用二维决策边界解释表示能力;多层组合重新编码输入,使线性不可分关系可被分段边界表达。
验收“2.5 多层感知机”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
2.5.1 已有门电路的组合
“已有门电路的组合”放回本章主线分析其输入、数学变换、输出和边界。复现时保存关键中间量,并用最小样本验证“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”。
验收“2.5.1 已有门电路的组合”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
2.5.2 异或门的实现
逐个代入四个二值输入,保存加权和、边界余量和阈值输出;XOR需要由多个线性区域组合,不能由单个超平面表示。
验收“2.5.2 异或门的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
2.6 从与非门到计算机
逐个代入四个二值输入,保存加权和、边界余量和阈值输出;XOR需要由多个线性区域组合,不能由单个超平面表示。
验收“2.6 从与非门到计算机”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
2.7 小结
把本章的输入、核心变换、中间证据和失效边界重新连成闭环;验收重点是能从冻结输入重放到“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”,而不是只复述术语。
验收“2.7 小结”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
第3章 神经网络
“神经网络”放回本章主线分析其输入、数学变换、输出和边界。复现时保存关键中间量,并用最小样本验证“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”。
验收“第3章 神经网络”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.1 从感知机到神经网络
把模型写成加权和加偏置再过阶跃函数,利用二维决策边界解释表示能力;多层组合重新编码输入,使线性不可分关系可被分段边界表达。
验收“3.1 从感知机到神经网络”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.1.1 神经网络的例子
按Affine与激活顺序记录逐层shape和数值范围;分类输出沿类别轴做稳定softmax,回归输出保留恒等映射,二者不能混用目标语义。
验收“3.1.1 神经网络的例子”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.1.2 复习感知机
把模型写成加权和加偏置再过阶跃函数,利用二维决策边界解释表示能力;多层组合重新编码输入,使线性不可分关系可被分段边界表达。
验收“3.1.2 复习感知机”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.1.3 激活函数登场
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“3.1.3 激活函数登场”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.2 激活函数
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“3.2 激活函数”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.2.1 sigmoid函数
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“3.2.1 sigmoid函数”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.2.2 阶跃函数的实现
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“3.2.2 阶跃函数的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.2.3 阶跃函数的图形
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“3.2.3 阶跃函数的图形”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.2.4 sigmoid函数的实现
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“3.2.4 sigmoid函数的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.2.5 sigmoid函数和阶跃函数的比较
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“3.2.5 sigmoid函数和阶跃函数的比较”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.2.6 非线性函数
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“3.2.6 非线性函数”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.2.7 ReLU函数
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“3.2.7 ReLU函数”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.3 多维数组的运算
先写出每个数组的shape、dtype和轴语义,再执行索引、广播或矩阵运算;结果不仅核对数值,还核对样本轴、特征轴、通道轴是否保持预期。
验收“3.3 多维数组的运算”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.3.1 多维数组
先写出每个数组的shape、dtype和轴语义,再执行索引、广播或矩阵运算;结果不仅核对数值,还核对样本轴、特征轴、通道轴是否保持预期。
验收“3.3.1 多维数组”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.3.2 矩阵乘法
先写出每个数组的shape、dtype和轴语义,再执行索引、广播或矩阵运算;结果不仅核对数值,还核对样本轴、特征轴、通道轴是否保持预期。
验收“3.3.2 矩阵乘法”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.3.3 神经网络的内积
先写出每个数组的shape、dtype和轴语义,再执行索引、广播或矩阵运算;结果不仅核对数值,还核对样本轴、特征轴、通道轴是否保持预期。
验收“3.3.3 神经网络的内积”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.4 3层神经网络的实现
按Affine与激活顺序记录逐层shape和数值范围;分类输出沿类别轴做稳定softmax,回归输出保留恒等映射,二者不能混用目标语义。
验收“3.4 3层神经网络的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.4.1 符号确认
“符号确认”放回本章主线分析其输入、数学变换、输出和边界。复现时保存关键中间量,并用最小样本验证“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”。
验收“3.4.1 符号确认”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.4.2 各层间信号传递的实现
按Affine与激活顺序记录逐层shape和数值范围;分类输出沿类别轴做稳定softmax,回归输出保留恒等映射,二者不能混用目标语义。
验收“3.4.2 各层间信号传递的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.4.3 代码实现小结
把本章的输入、核心变换、中间证据和失效边界重新连成闭环;验收重点是能从冻结输入重放到“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”,而不是只复述术语。
验收“3.4.3 代码实现小结”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.5 输出层的设计
按Affine与激活顺序记录逐层shape和数值范围;分类输出沿类别轴做稳定softmax,回归输出保留恒等映射,二者不能混用目标语义。
验收“3.5 输出层的设计”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.5.1 恒等函数和softmax函数
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“3.5.1 恒等函数和softmax函数”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.5.2 实现softmax函数时的注意事项
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“3.5.2 实现softmax函数时的注意事项”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.5.3 softmax函数的特征
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“3.5.3 softmax函数的特征”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.5.4 输出层的神经元数量
按Affine与激活顺序记录逐层shape和数值范围;分类输出沿类别轴做稳定softmax,回归输出保留恒等映射,二者不能混用目标语义。
验收“3.5.4 输出层的神经元数量”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.6 手写数字识别
将图像样本冻结为明确输入shape和像素范围,逐样本与批量推理对照;类别由logit最大值确定,概率归一与预测索引都逐行核对。
验收“3.6 手写数字识别”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.6.1 MNIST数据集
将图像样本冻结为明确输入shape和像素范围,逐样本与批量推理对照;类别由logit最大值确定,概率归一与预测索引都逐行核对。
验收“3.6.1 MNIST数据集”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.6.2 神经网络的推理处理
将图像样本冻结为明确输入shape和像素范围,逐样本与批量推理对照;类别由logit最大值确定,概率归一与预测索引都逐行核对。
验收“3.6.2 神经网络的推理处理”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.6.3 批处理
先写出每个数组的shape、dtype和轴语义,再执行索引、广播或矩阵运算;结果不仅核对数值,还核对样本轴、特征轴、通道轴是否保持预期。
验收“3.6.3 批处理”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
3.7 小结
把本章的输入、核心变换、中间证据和失效边界重新连成闭环;验收重点是能从冻结输入重放到“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”,而不是只复述术语。
验收“3.7 小结”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
第4章 神经网络的学习
“神经网络的学习”放回本章主线分析其输入、数学变换、输出和边界。复现时保存关键中间量,并用最小样本验证“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”。
验收“第4章 神经网络的学习”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.1 从数据中学习
训练数据产生参数和所有数据依赖决策,测试数据只估计冻结模型的泛化;预处理、停止规则或阈值若读取测试信息,就构成泄漏。
验收“4.1 从数据中学习”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.1.1 数据驱动
训练数据产生参数和所有数据依赖决策,测试数据只估计冻结模型的泛化;预处理、停止规则或阈值若读取测试信息,就构成泄漏。
验收“4.1.1 数据驱动”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.1.2 训练数据和测试数据
训练数据产生参数和所有数据依赖决策,测试数据只估计冻结模型的泛化;预处理、停止规则或阈值若读取测试信息,就构成泄漏。
验收“4.1.2 训练数据和测试数据”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.2 损失函数
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“4.2 损失函数”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.2.1 均方误差
把预测质量变成连续标量目标,并明确按样本求和还是平均。损失提供参数变化方向,离散准确率只能作为评价,不能替代可微目标。
验收“4.2.1 均方误差”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.2.2 交叉熵误差
把预测质量变成连续标量目标,并明确按样本求和还是平均。损失提供参数变化方向,离散准确率只能作为评价,不能替代可微目标。
验收“4.2.2 交叉熵误差”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.2.3 mini-batch学习
保存抽样索引、批量大小和归一化分母,用小批量梯度近似全数据梯度;标签表示和类别轴必须显式,避免同一公式在索引标签与one-hot标签间错用。
验收“4.2.3 mini-batch学习”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.2.4 mini-batch版交叉熵误差的实现
把预测质量变成连续标量目标,并明确按样本求和还是平均。损失提供参数变化方向,离散准确率只能作为评价,不能替代可微目标。
验收“4.2.4 mini-batch版交叉熵误差的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.2.5 为何要设定损失函数
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“4.2.5 为何要设定损失函数”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.3 数值微分
用中心差分建立小规模真值,逐坐标恢复参数原值;负梯度给出局部下降方向,学习率决定步长,更新后必须重新forward计算新损失。
验收“4.3 数值微分”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.3.1 导数
用中心差分建立小规模真值,逐坐标恢复参数原值;负梯度给出局部下降方向,学习率决定步长,更新后必须重新forward计算新损失。
验收“4.3.1 导数”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.3.2 数值微分的例子
用中心差分建立小规模真值,逐坐标恢复参数原值;负梯度给出局部下降方向,学习率决定步长,更新后必须重新forward计算新损失。
验收“4.3.2 数值微分的例子”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.3.3 偏导数
用中心差分建立小规模真值,逐坐标恢复参数原值;负梯度给出局部下降方向,学习率决定步长,更新后必须重新forward计算新损失。
验收“4.3.3 偏导数”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.4 梯度
用中心差分建立小规模真值,逐坐标恢复参数原值;负梯度给出局部下降方向,学习率决定步长,更新后必须重新forward计算新损失。
验收“4.4 梯度”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.4.1 梯度法
用中心差分建立小规模真值,逐坐标恢复参数原值;负梯度给出局部下降方向,学习率决定步长,更新后必须重新forward计算新损失。
验收“4.4.1 梯度法”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.4.2 神经网络的梯度
用中心差分建立小规模真值,逐坐标恢复参数原值;负梯度给出局部下降方向,学习率决定步长,更新后必须重新forward计算新损失。
验收“4.4.2 神经网络的梯度”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.5 学习算法的实现
把predict、loss、gradient与accuracy组织成一致接口,训练循环只使用训练批次更新;评价阶段切换为只读并保留独立预测。
验收“4.5 学习算法的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.5.1 2层神经网络的类
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“4.5.1 2层神经网络的类”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.5.2 mini-batch的实现
保存抽样索引、批量大小和归一化分母,用小批量梯度近似全数据梯度;标签表示和类别轴必须显式,避免同一公式在索引标签与one-hot标签间错用。
验收“4.5.2 mini-batch的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.5.3 基于测试数据的评价
训练数据产生参数和所有数据依赖决策,测试数据只估计冻结模型的泛化;预处理、停止规则或阈值若读取测试信息,就构成泄漏。
验收“4.5.3 基于测试数据的评价”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
4.6 小结
把本章的输入、核心变换、中间证据和失效边界重新连成闭环;验收重点是能从冻结输入重放到“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”,而不是只复述术语。
验收“4.6 小结”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
第5章 误差反向传播法
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“第5章 误差反向传播法”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.1 计算图
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“5.1 计算图”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.1.1 用计算图求解
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“5.1.1 用计算图求解”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.1.2 局部计算
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“5.1.2 局部计算”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.1.3 为何用计算图解题
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“5.1.3 为何用计算图解题”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.2 链式法则
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“5.2 链式法则”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.2.1 计算图的反向传播
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“5.2.1 计算图的反向传播”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.2.2 什么是链式法则
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“5.2.2 什么是链式法则”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.2.3 链式法则和计算图
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“5.2.3 链式法则和计算图”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.3 反向传播
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“5.3 反向传播”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.3.1 加法节点的反向传播
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“5.3.1 加法节点的反向传播”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.3.2 乘法节点的反向传播
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“5.3.2 乘法节点的反向传播”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.3.3 苹果的例子
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“5.3.3 苹果的例子”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.4 简单层的实现
“简单层的实现”放回本章主线分析其输入、数学变换、输出和边界。复现时保存关键中间量,并用最小样本验证“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”。
验收“5.4 简单层的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.4.1 乘法层的实现
层的forward保存反向所需输入,backward返回与原输入同shape的梯度;加法复制上游梯度,乘法交换另一个前向因子。
验收“5.4.1 乘法层的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.4.2 加法层的实现
层的forward保存反向所需输入,backward返回与原输入同shape的梯度;加法复制上游梯度,乘法交换另一个前向因子。
验收“5.4.2 加法层的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.5 激活函数层的实现
这一单元建立从交互验证到可复现脚本的编程基础:明确对象类型、控制流、函数输入输出与类状态,并把一次性试算保存为可重复执行的最小程序。
验收“5.5 激活函数层的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.5.1 ReLU层
比较函数值、导数与饱和区:非线性阻止多层矩阵坍缩,导数决定梯度能否穿过该层;实现同时检查极端输入的有限性。
验收“5.5.1 ReLU层”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.5.2 Sigmoid层
把每种运算封装为成对forward/backward,参数梯度单独保存;解析结果与中心差分逐元素比较,通过后再接入完整学习循环。
验收“5.5.2 Sigmoid层”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.6 Affine/Softmax层的实现
把每种运算封装为成对forward/backward,参数梯度单独保存;解析结果与中心差分逐元素比较,通过后再接入完整学习循环。
验收“5.6 Affine/Softmax层的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.6.1 Affine层
把每种运算封装为成对forward/backward,参数梯度单独保存;解析结果与中心差分逐元素比较,通过后再接入完整学习循环。
验收“5.6.1 Affine层”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.6.2 批版本的Affine层
把每种运算封装为成对forward/backward,参数梯度单独保存;解析结果与中心差分逐元素比较,通过后再接入完整学习循环。
验收“5.6.2 批版本的Affine层”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.6.3 Softmax-with-Loss层
把每种运算封装为成对forward/backward,参数梯度单独保存;解析结果与中心差分逐元素比较,通过后再接入完整学习循环。
验收“5.6.3 Softmax-with-Loss层”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.7 误差反向传播法的实现
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“5.7 误差反向传播法的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.7.1 神经网络学习的全貌图
把每种运算封装为成对forward/backward,参数梯度单独保存;解析结果与中心差分逐元素比较,通过后再接入完整学习循环。
验收“5.7.1 神经网络学习的全貌图”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.7.2 对应误差反向传播法的神经网络的实现
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“5.7.2 对应误差反向传播法的神经网络的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.7.3 误差反向传播法的梯度确认
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“5.7.3 误差反向传播法的梯度确认”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.7.4 使用误差反向传播法的学习
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“5.7.4 使用误差反向传播法的学习”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
5.8 小结
把本章的输入、核心变换、中间证据和失效边界重新连成闭环;验收重点是能从冻结输入重放到“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”,而不是只复述术语。
验收“5.8 小结”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
第6章 与学习相关的技巧
“与学习相关的技巧”放回本章主线分析其输入、数学变换、输出和边界。复现时保存关键中间量,并用最小样本验证“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”。
验收“第6章 与学习相关的技巧”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.1 参数的更新
固定初值、批次顺序和更新次数,比较参数轨迹、损失与状态变量;优化器差异来自梯度历史的使用方式,不能用不同预算制造优劣。
验收“6.1 参数的更新”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.1.1 探险家的故事
“探险家的故事”放回本章主线分析其输入、数学变换、输出和边界。复现时保存关键中间量,并用最小样本验证“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”。
验收“6.1.1 探险家的故事”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.1.2 SGD
固定初值、批次顺序和更新次数,比较参数轨迹、损失与状态变量;优化器差异来自梯度历史的使用方式,不能用不同预算制造优劣。
验收“6.1.2 SGD”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.1.3 SGD的缺点
固定初值、批次顺序和更新次数,比较参数轨迹、损失与状态变量;优化器差异来自梯度历史的使用方式,不能用不同预算制造优劣。
验收“6.1.3 SGD的缺点”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.1.4 Momentum
固定初值、批次顺序和更新次数,比较参数轨迹、损失与状态变量;优化器差异来自梯度历史的使用方式,不能用不同预算制造优劣。
验收“6.1.4 Momentum”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.1.5 AdaGrad
固定初值、批次顺序和更新次数,比较参数轨迹、损失与状态变量;优化器差异来自梯度历史的使用方式,不能用不同预算制造优劣。
验收“6.1.5 AdaGrad”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.1.6 Adam
固定初值、批次顺序和更新次数,比较参数轨迹、损失与状态变量;优化器差异来自梯度历史的使用方式,不能用不同预算制造优劣。
验收“6.1.6 Adam”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.1.7 使用哪种更新方法
固定初值、批次顺序和更新次数,比较参数轨迹、损失与状态变量;优化器差异来自梯度历史的使用方式,不能用不同预算制造优劣。
验收“6.1.7 使用哪种更新方法”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.1.8 基于MNIST数据集的更新方法比较
将图像样本冻结为明确输入shape和像素范围,逐样本与批量推理对照;类别由logit最大值确定,概率归一与预测索引都逐行核对。
验收“6.1.8 基于MNIST数据集的更新方法比较”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.2 权重的初始值
初始化既要打破同层对称,又要让层间方差稳定。通过多层激活均值、方差、饱和率和非零率判断信号是否消失或爆炸。
验收“6.2 权重的初始值”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.2.1 可以将权重初始值设为0吗
“可以将权重初始值设为0吗”放回本章主线分析其输入、数学变换、输出和边界。复现时保存关键中间量,并用最小样本验证“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”。
验收“6.2.1 可以将权重初始值设为0吗”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.2.2 隐藏层激活值的分布
初始化既要打破同层对称,又要让层间方差稳定。通过多层激活均值、方差、饱和率和非零率判断信号是否消失或爆炸。
验收“6.2.2 隐藏层激活值的分布”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.2.3 ReLU的权重初始值
比较函数值、导数与饱和区:非线性阻止多层矩阵坍缩,导数决定梯度能否穿过该层;实现同时检查极端输入的有限性。
验收“6.2.3 ReLU的权重初始值”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.2.4 基于MNIST数据集的权重初始值比较
将图像样本冻结为明确输入shape和像素范围,逐样本与批量推理对照;类别由logit最大值确定,概率归一与预测索引都逐行核对。
验收“6.2.4 基于MNIST数据集的权重初始值比较”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.3 Batch Normalization
训练时使用当前批均值方差并更新移动统计,推理时使用冻结统计;gamma和beta恢复可学习尺度,模式切换必须显式。
验收“6.3 Batch Normalization”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.3.1 Batch Normalization的算法
训练时使用当前批均值方差并更新移动统计,推理时使用冻结统计;gamma和beta恢复可学习尺度,模式切换必须显式。
验收“6.3.1 Batch Normalization的算法”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.3.2 Batch Normalization的评估
训练时使用当前批均值方差并更新移动统计,推理时使用冻结统计;gamma和beta恢复可学习尺度,模式切换必须显式。
验收“6.3.2 Batch Normalization的评估”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.4 正则化
比较训练与验证差距,并分别追踪权重范数或随机掩码。正则机制只读训练数据,Dropout在推理时关闭,不能让测试信息决定强度。
验收“6.4 正则化”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.4.1 过拟合
比较训练与验证差距,并分别追踪权重范数或随机掩码。正则机制只读训练数据,Dropout在推理时关闭,不能让测试信息决定强度。
验收“6.4.1 过拟合”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.4.2 权值衰减
比较训练与验证差距,并分别追踪权重范数或随机掩码。正则机制只读训练数据,Dropout在推理时关闭,不能让测试信息决定强度。
验收“6.4.2 权值衰减”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.4.3 Dropout
比较训练与验证差距,并分别追踪权重范数或随机掩码。正则机制只读训练数据,Dropout在推理时关闭,不能让测试信息决定强度。
验收“6.4.3 Dropout”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.5 超参数的验证
用验证集选择学习率、正则强度、网络宽度与停止轮次,保留所有候选;测试集直到选择冻结后只开启一次。
验收“6.5 超参数的验证”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.5.1 验证数据
用验证集选择学习率、正则强度、网络宽度与停止轮次,保留所有候选;测试集直到选择冻结后只开启一次。
验收“6.5.1 验证数据”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.5.2 超参数的最优化
用验证集选择学习率、正则强度、网络宽度与停止轮次,保留所有候选;测试集直到选择冻结后只开启一次。
验收“6.5.2 超参数的最优化”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.5.3 超参数最优化的实现
用验证集选择学习率、正则强度、网络宽度与停止轮次,保留所有候选;测试集直到选择冻结后只开启一次。
验收“6.5.3 超参数最优化的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
6.6 小结
把本章的输入、核心变换、中间证据和失效边界重新连成闭环;验收重点是能从冻结输入重放到“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”,而不是只复述术语。
验收“6.6 小结”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
第7章 卷积神经网络
“卷积神经网络”放回本章主线分析其输入、数学变换、输出和边界。复现时保存关键中间量,并用最小样本验证“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”。
验收“第7章 卷积神经网络”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.1 整体结构
按NCHW与滤波器shape计算窗口覆盖和输出尺寸;局部连接保留空间结构,权重共享让同一模式可在不同位置响应。
验收“7.1 整体结构”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.2 卷积层
按NCHW与滤波器shape计算窗口覆盖和输出尺寸;局部连接保留空间结构,权重共享让同一模式可在不同位置响应。
验收“7.2 卷积层”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.2.1 全连接层存在的问题
“全连接层存在的问题”放回本章主线分析其输入、数学变换、输出和边界。复现时保存关键中间量,并用最小样本验证“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”。
验收“7.2.1 全连接层存在的问题”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.2.2 卷积运算
按NCHW与滤波器shape计算窗口覆盖和输出尺寸;局部连接保留空间结构,权重共享让同一模式可在不同位置响应。
验收“7.2.2 卷积运算”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.2.3 填充
按NCHW与滤波器shape计算窗口覆盖和输出尺寸;局部连接保留空间结构,权重共享让同一模式可在不同位置响应。
验收“7.2.3 填充”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.2.4 步幅
按NCHW与滤波器shape计算窗口覆盖和输出尺寸;局部连接保留空间结构,权重共享让同一模式可在不同位置响应。
验收“7.2.4 步幅”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.2.5 3维数据的卷积运算
按NCHW与滤波器shape计算窗口覆盖和输出尺寸;局部连接保留空间结构,权重共享让同一模式可在不同位置响应。
验收“7.2.5 3维数据的卷积运算”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.2.6 结合方块思考
按NCHW与滤波器shape计算窗口覆盖和输出尺寸;局部连接保留空间结构,权重共享让同一模式可在不同位置响应。
验收“7.2.6 结合方块思考”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.2.7 批处理
先写出每个数组的shape、dtype和轴语义,再执行索引、广播或矩阵运算;结果不仅核对数值,还核对样本轴、特征轴、通道轴是否保持预期。
验收“7.2.7 批处理”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.3 池化层
前向在局部窗口保存最大值位置,反向只把梯度送回argmax;空间缩小与位移鲁棒性要和信息损失一起评价。
验收“7.3 池化层”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.3.1 池化层的特征
前向在局部窗口保存最大值位置,反向只把梯度送回argmax;空间缩小与位移鲁棒性要和信息损失一起评价。
验收“7.3.1 池化层的特征”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.4 卷积层和池化层的实现
按NCHW与滤波器shape计算窗口覆盖和输出尺寸;局部连接保留空间结构,权重共享让同一模式可在不同位置响应。
验收“7.4 卷积层和池化层的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.4.1 4维数组
先写出每个数组的shape、dtype和轴语义,再执行索引、广播或矩阵运算;结果不仅核对数值,还核对样本轴、特征轴、通道轴是否保持预期。
验收“7.4.1 4维数组”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.4.2 基于im2col的展开
将滑动窗口展开成行并用矩阵乘法计算卷积;反向col2im把重叠窗口贡献累加回原像素,不能当成普通reshape。
验收“7.4.2 基于im2col的展开”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.4.3 卷积层的实现
按NCHW与滤波器shape计算窗口覆盖和输出尺寸;局部连接保留空间结构,权重共享让同一模式可在不同位置响应。
验收“7.4.3 卷积层的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.4.4 池化层的实现
前向在局部窗口保存最大值位置,反向只把梯度送回argmax;空间缩小与位移鲁棒性要和信息损失一起评价。
验收“7.4.4 池化层的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.5 CNN的实现
将滑动窗口展开成行并用矩阵乘法计算卷积;反向col2im把重叠窗口贡献累加回原像素,不能当成普通reshape。
验收“7.5 CNN的实现”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.6 CNN的可视化
可视化用于暴露曲线、像素或特征图的结构,但必须与原始数值摘要并列;坐标轴、取值范围、归一化和样本身份都要可追踪。
验收“7.6 CNN的可视化”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.6.1 第1层权重的可视化
可视化用于暴露曲线、像素或特征图的结构,但必须与原始数值摘要并列;坐标轴、取值范围、归一化和样本身份都要可追踪。
验收“7.6.1 第1层权重的可视化”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.6.2 基于分层结构的信息提取
从第一层边缘滤波器到深层组合特征逐级观察表示;比较架构时同时固定数据、增强、训练预算与评价指标。
验收“7.6.2 基于分层结构的信息提取”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.7 具有代表性的CNN
从第一层边缘滤波器到深层组合特征逐级观察表示;比较架构时同时固定数据、增强、训练预算与评价指标。
验收“7.7 具有代表性的CNN”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.7.1 LeNet
从第一层边缘滤波器到深层组合特征逐级观察表示;比较架构时同时固定数据、增强、训练预算与评价指标。
验收“7.7.1 LeNet”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.7.2 AlexNet
从第一层边缘滤波器到深层组合特征逐级观察表示;比较架构时同时固定数据、增强、训练预算与评价指标。
验收“7.7.2 AlexNet”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
7.8 小结
把本章的输入、核心变换、中间证据和失效边界重新连成闭环;验收重点是能从冻结输入重放到“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”,而不是只复述术语。
验收“7.8 小结”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
第8章 深度学习
“深度学习”放回本章主线分析其输入、数学变换、输出和边界。复现时保存关键中间量,并用最小样本验证“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”。
验收“第8章 深度学习”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.1 加深网络
深层组合扩大有效感受野和函数复用能力,同时增加优化路径;必须用同协议消融层数、参数量和训练预算,才能归因深度收益。
验收“8.1 加深网络”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.1.1 向更深的网络出发
深层组合扩大有效感受野和函数复用能力,同时增加优化路径;必须用同协议消融层数、参数量和训练预算,才能归因深度收益。
验收“8.1.1 向更深的网络出发”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.1.2 进一步提高识别精度
深层组合扩大有效感受野和函数复用能力,同时增加优化路径;必须用同协议消融层数、参数量和训练预算,才能归因深度收益。
验收“8.1.2 进一步提高识别精度”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.1.3 加深层的动机
深层组合扩大有效感受野和函数复用能力,同时增加优化路径;必须用同协议消融层数、参数量和训练预算,才能归因深度收益。
验收“8.1.3 加深层的动机”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.2 深度学习的小历史
这些节点体现大数据、重复小卷积、多分支和残差捷径的架构演进;重点比较信息路径和优化条件,而非只记网络名称。
验收“8.2 深度学习的小历史”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.2.1 ImageNet
这些节点体现大数据、重复小卷积、多分支和残差捷径的架构演进;重点比较信息路径和优化条件,而非只记网络名称。
验收“8.2.1 ImageNet”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.2.2 VGG
这些节点体现大数据、重复小卷积、多分支和残差捷径的架构演进;重点比较信息路径和优化条件,而非只记网络名称。
验收“8.2.2 VGG”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.2.3 GoogLeNet
从第一层边缘滤波器到深层组合特征逐级观察表示;比较架构时同时固定数据、增强、训练预算与评价指标。
验收“8.2.3 GoogLeNet”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.2.4 ResNet
这些节点体现大数据、重复小卷积、多分支和残差捷径的架构演进;重点比较信息路径和优化条件,而非只记网络名称。
验收“8.2.4 ResNet”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.3 深度学习的高速化
把总时间拆成计算、内存、通信和同步,低精度还要检查数值范围。吞吐提高只有在目标与评价保持一致时才是有效加速。
验收“8.3 深度学习的高速化”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.3.1 需要努力解决的问题
把总时间拆成计算、内存、通信和同步,低精度还要检查数值范围。吞吐提高只有在目标与评价保持一致时才是有效加速。
验收“8.3.1 需要努力解决的问题”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.3.2 基于GPU的高速化
把总时间拆成计算、内存、通信和同步,低精度还要检查数值范围。吞吐提高只有在目标与评价保持一致时才是有效加速。
验收“8.3.2 基于GPU的高速化”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.3.3 分布式学习
把总时间拆成计算、内存、通信和同步,低精度还要检查数值范围。吞吐提高只有在目标与评价保持一致时才是有效加速。
验收“8.3.3 分布式学习”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.3.4 运算精度的位数缩减
把总时间拆成计算、内存、通信和同步,低精度还要检查数值范围。吞吐提高只有在目标与评价保持一致时才是有效加速。
验收“8.3.4 运算精度的位数缩减”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.4 深度学习的应用案例
先定义输出结构,再选择任务指标:检测包含类别与框,分割输出像素标签,标题生成输出序列;分类准确率不能替代这些评价。
验收“8.4 深度学习的应用案例”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.4.1 物体检测
先定义输出结构,再选择任务指标:检测包含类别与框,分割输出像素标签,标题生成输出序列;分类准确率不能替代这些评价。
验收“8.4.1 物体检测”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.4.2 图像分割
先定义输出结构,再选择任务指标:检测包含类别与框,分割输出像素标签,标题生成输出序列;分类准确率不能替代这些评价。
验收“8.4.2 图像分割”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.4.3 图像标题的生成
先定义输出结构,再选择任务指标:检测包含类别与框,分割输出像素标签,标题生成输出序列;分类准确率不能替代这些评价。
验收“8.4.3 图像标题的生成”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.5 深度学习的未来
应用需说明训练信号、推理输出、独立指标和高代价失败。生成质量、驾驶安全与累积奖励都有超出分类精度的边界条件。
验收“8.5 深度学习的未来”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.5.1 图像风格变换
应用需说明训练信号、推理输出、独立指标和高代价失败。生成质量、驾驶安全与累积奖励都有超出分类精度的边界条件。
验收“8.5.1 图像风格变换”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.5.2 图像的生成
应用需说明训练信号、推理输出、独立指标和高代价失败。生成质量、驾驶安全与累积奖励都有超出分类精度的边界条件。
验收“8.5.2 图像的生成”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.5.3 自动驾驶
应用需说明训练信号、推理输出、独立指标和高代价失败。生成质量、驾驶安全与累积奖励都有超出分类精度的边界条件。
验收“8.5.3 自动驾驶”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.5.4 Deep Q-Network(强化学习)
应用需说明训练信号、推理输出、独立指标和高代价失败。生成质量、驾驶安全与累积奖励都有超出分类精度的边界条件。
验收“8.5.4 Deep Q-Network(强化学习)”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
8.6 小结
把本章的输入、核心变换、中间证据和失效边界重新连成闭环;验收重点是能从冻结输入重放到“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”,而不是只复述术语。
验收“8.6 小结”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
附录A Softmax-with-Loss层的计算图
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“附录A Softmax-with-Loss层的计算图”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
A.1 正向传播
逐节点保存稳定化logit、指数、归一分母、概率与交叉熵;反向结果应为预测分布减目标分布,并通过梯度和为0与中心差分双重核对。
验收“A.1 正向传播”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
A.2 反向传播
前向缓存局部输入,反向接收上游梯度并乘局部导数;分叉路径的贡献在变量处相加,使复杂复合函数可由简单节点重放。
验收“A.2 反向传播”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
A.3 小结
把本章的输入、核心变换、中间证据和失效边界重新连成闭环;验收重点是能从冻结输入重放到“任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。”,而不是只复述术语。
验收“A.3 小结”时先写出预期的输入、输出和第一处可观察变化,再运行一个固定小样本。若终点看似合理但该中间证据未出现,应停止并检查轴、广播、归一化、缓存、梯度或数据隔离。
常见失败与边界
本章回顾
以一个可重放的MNIST小网络串联数组、感知机、前向、损失、数值梯度、反向传播、优化技巧、CNN和深层应用。 验收底线是:任何结论都能回到冻结输入、逐层shape、损失、解析/数值梯度和独立测试;211个正式目录层级无遗漏、无错误拆章。。学习完成的标准不是记住名称,而是能从冻结输入预测中间状态,解释单变量为何改变答案,并在失败样本中指出第一处违背前提的位置。