第4章 神经网络的学习

覆盖数据驱动、训练/测试角色、损失、mini-batch、数值微分、梯度法与两层网络训练;用张量路径、单故障梯度轨迹和训练验收门完成独立复核。

学习目标

  • 能说明“第4章 神经网络的学习”如何覆盖数据驱动、训练/测试角色、损失、mini-batch、数值微分、梯度法与两层网络训练,并区分2016年原版、2018年中文译本与当前扩展
  • 能先预测“怎样从损失函数和中心差分得到可核对梯度,并让训练与测试数据承担互不污染的角色?”“第4章 神经网络的学习”会改变哪个数组、缓存、梯度或训练状态,再用shape与数值断言逐步复核
  • 能注入“根据测试精度调学习率/网络结构,或差分步长不稳仍把数值梯度当真值”,用“数据切分、损失、batch采样、差分步长、初始化、学习率、迭代数和测试隔离固定”决定接受、降级或拒绝实现结论

为什么从这个实现问题开始

学习页把“误差下降”拆成目标、梯度、更新和数据角色四项可反证条件。 “第4章 神经网络的学习”的贯穿任务是:在两层网络上计算交叉熵、数值梯度和mini-batch更新,并保留独立测试。 动手前先写下哪个输入、shape、缓存、梯度、参数或指标会变化;运行后补理由不算预测。

围绕“怎样从损失函数和中心差分得到可核对梯度,并让训练与测试数据承担互不污染的角色?”“第4章 神经网络的学习”建立参考、故障与恢复路径。只有它守住“数据切分、损失、batch采样、差分步长、初始化、学习率、迭代数和测试隔离固定”并交付切分索引、batch索引、损失实现、差分步长、逐参数数值梯度、更新轨迹、训练曲线与一次性测试报告。,代码、图形或指标才构成从零实现证据。

书目、211个原版层级与版本边界

“第4章 神经网络的学习”以O’Reilly Japan原版官方书页核对斋藤康毅著《ゼロから作るDeep Learning》于2016年9月24日出版、320页、ISBN 9784873117584,并以出版社完整目录逐项统计8个章标题、202个编号节/小节与附录A,共211个正式目录层级。出版社官方代码仓库提供可运行示例,官方勘误用于识别已知错误。

本项目没有取得原书完整正文授权,只以官方完整目录、示例代码和勘误限定范围;中文解释、代码实验、交互、练习与答案均为独立教学重写。O’Reilly中文在线书目只用于核对陆宇杰译、人民邮电出版社2018年7月、ISBN 9787115485588和中文目录,不用来证明日文原版正文。“第4章 神经网络的学习”以2016年日文原版与2018年中文译本目录为内容边界;当前Python/NumPy兼容修正、自动微分框架和后续架构只作带时间标签的独立核验。

本页另以技术核对 1技术核对 2技术核对 3核对算法定义、实现语义或数值诊断。外部资料能验证技术事实,不能反向证明原书采用了本站表述。

原版目录层级与实现机制

第4章 神经网络的学习

原版坐标 1/22。 在“第4章 神经网络的学习”的坐标1中,目录项「第4章 神经网络的学习」用于沿张量形状执行仿射、激活、稳定输出与批量推理;先冻结环境与shape,再以输入/权重/偏置shape、中间缓存、激活范围、概率和与批对照复核,出现矩阵轴错位、softmax溢出或批语义漂移时撤回结论。

4.1 从数据中学习

原版坐标 2/22。 目录项「4·1 从数据中学习」进入“第4章 神经网络的学习”后要回答第2个实现问题:它怎样以损失、数值微分和更新构造可检查训练循环、改变哪个数组或训练状态、由哪些数据角色、batch索引、损失、差分步长、梯度、学习率与曲线证明,并如何排除测试泄漏或不稳定数值梯度被当作基准。

4.1.1 数据驱动

原版坐标 3/22。 围绕“怎样从损失函数和中心差分得到可核对梯度,并让训练与测试数据承担互不污染的角色?”“第4章 神经网络的学习”在原版层级3把「4·1·1 数据驱动」落实为把目录坐标转为有代码、形状、梯度、训练和评估的实现合同;复核者先读取环境、输入输出、张量shape、缓存、梯度、训练轨迹、反例和时间边界,不能接受只复述代码或模型名称。

4.1.2 训练数据和测试数据

原版坐标 4/22。 对“第4章 神经网络的学习”而言,目录项「4·1·2 训练数据和测试数据」的最小实现合同是把目录坐标转为有代码、形状、梯度、训练和评估的实现合同,第4次检查保存环境、输入输出、张量shape、缓存、梯度、训练轨迹、反例和时间边界;若产生只复述代码或模型名称,就返回上一步。

4.2 损失函数

原版坐标 5/22。 第5个正式坐标「4·2 损失函数」服务于覆盖数据驱动、训练/测试角色、损失、mini-batch、数值微分、梯度法与两层网络训练,需要以解释器/包版本、值与类型、控制流、函数输入输出和异常呈现建立可复现语言环境和最小程序状态;运行成功掩盖类型、作用域或版本漂移会破坏“数据切分、损失、batch采样、差分步长、初始化、学习率、迭代数和测试隔离固定”。

4.2.1 均方误差

原版坐标 6/22。 在“第4章 神经网络的学习”的坐标6中,目录项「4·2·1 均方误差」用于以损失、数值微分和更新构造可检查训练循环;先冻结环境与shape,再以数据角色、batch索引、损失、差分步长、梯度、学习率与曲线复核,出现测试泄漏或不稳定数值梯度被当作基准时撤回结论。

4.2.2 交叉熵误差

原版坐标 7/22。 目录项「4·2·2 交叉熵误差」进入“第4章 神经网络的学习”后要回答第7个实现问题:它怎样以损失、数值微分和更新构造可检查训练循环、改变哪个数组或训练状态、由哪些数据角色、batch索引、损失、差分步长、梯度、学习率与曲线证明,并如何排除测试泄漏或不稳定数值梯度被当作基准。

4.2.3 mini-batch学习

原版坐标 8/22。 围绕“怎样从损失函数和中心差分得到可核对梯度,并让训练与测试数据承担互不污染的角色?”“第4章 神经网络的学习”在原版层级8把「4·2·3 mini-batch学习」落实为以损失、数值微分和更新构造可检查训练循环;复核者先读取数据角色、batch索引、损失、差分步长、梯度、学习率与曲线,不能接受测试泄漏或不稳定数值梯度被当作基准。

4.2.4 mini-batch版交叉熵误差的实现

原版坐标 9/22。 对“第4章 神经网络的学习”而言,目录项「4·2·4 mini-batch版交叉熵误差的实现」的最小实现合同是以损失、数值微分和更新构造可检查训练循环,第9次检查保存数据角色、batch索引、损失、差分步长、梯度、学习率与曲线;若产生测试泄漏或不稳定数值梯度被当作基准,就返回上一步。

4.2.5 为何要设定损失函数

原版坐标 10/22。 第10个正式坐标「4·2·5 为何要设定损失函数」服务于覆盖数据驱动、训练/测试角色、损失、mini-batch、数值微分、梯度法与两层网络训练,需要以解释器/包版本、值与类型、控制流、函数输入输出和异常呈现建立可复现语言环境和最小程序状态;运行成功掩盖类型、作用域或版本漂移会破坏“数据切分、损失、batch采样、差分步长、初始化、学习率、迭代数和测试隔离固定”。

4.3 数值微分

原版坐标 11/22。 在“第4章 神经网络的学习”的坐标11中,目录项「4·3 数值微分」用于以损失、数值微分和更新构造可检查训练循环;先冻结环境与shape,再以数据角色、batch索引、损失、差分步长、梯度、学习率与曲线复核,出现测试泄漏或不稳定数值梯度被当作基准时撤回结论。

4.3.1 导数

原版坐标 12/22。 目录项「4·3·1 导数」进入“第4章 神经网络的学习”后要回答第12个实现问题:它怎样以损失、数值微分和更新构造可检查训练循环、改变哪个数组或训练状态、由哪些数据角色、batch索引、损失、差分步长、梯度、学习率与曲线证明,并如何排除测试泄漏或不稳定数值梯度被当作基准。

4.3.2 数值微分的例子

原版坐标 13/22。 围绕“怎样从损失函数和中心差分得到可核对梯度,并让训练与测试数据承担互不污染的角色?”“第4章 神经网络的学习”在原版层级13把「4·3·2 数值微分的例子」落实为以损失、数值微分和更新构造可检查训练循环;复核者先读取数据角色、batch索引、损失、差分步长、梯度、学习率与曲线,不能接受测试泄漏或不稳定数值梯度被当作基准。

4.3.3 偏导数

原版坐标 14/22。 对“第4章 神经网络的学习”而言,目录项「4·3·3 偏导数」的最小实现合同是以损失、数值微分和更新构造可检查训练循环,第14次检查保存数据角色、batch索引、损失、差分步长、梯度、学习率与曲线;若产生测试泄漏或不稳定数值梯度被当作基准,就返回上一步。

4.4 梯度

原版坐标 15/22。 第15个正式坐标「4·4 梯度」服务于覆盖数据驱动、训练/测试角色、损失、mini-batch、数值微分、梯度法与两层网络训练,需要以数据角色、batch索引、损失、差分步长、梯度、学习率与曲线呈现以损失、数值微分和更新构造可检查训练循环;测试泄漏或不稳定数值梯度被当作基准会破坏“数据切分、损失、batch采样、差分步长、初始化、学习率、迭代数和测试隔离固定”。

4.4.1 梯度法

原版坐标 16/22。 在“第4章 神经网络的学习”的坐标16中,目录项「4·4·1 梯度法」用于以损失、数值微分和更新构造可检查训练循环;先冻结环境与shape,再以数据角色、batch索引、损失、差分步长、梯度、学习率与曲线复核,出现测试泄漏或不稳定数值梯度被当作基准时撤回结论。

4.4.2 神经网络的梯度

原版坐标 17/22。 目录项「4·4·2 神经网络的梯度」进入“第4章 神经网络的学习”后要回答第17个实现问题:它怎样沿张量形状执行仿射、激活、稳定输出与批量推理、改变哪个数组或训练状态、由哪些输入/权重/偏置shape、中间缓存、激活范围、概率和与批对照证明,并如何排除矩阵轴错位、softmax溢出或批语义漂移。

4.5 学习算法的实现

原版坐标 18/22。 围绕“怎样从损失函数和中心差分得到可核对梯度,并让训练与测试数据承担互不污染的角色?”“第4章 神经网络的学习”在原版层级18把「4·5 学习算法的实现」落实为以损失、数值微分和更新构造可检查训练循环;复核者先读取数据角色、batch索引、损失、差分步长、梯度、学习率与曲线,不能接受测试泄漏或不稳定数值梯度被当作基准。

4.5.1 2层神经网络的类

原版坐标 19/22。 对“第4章 神经网络的学习”而言,目录项「4·5·1 2层神经网络的类」的最小实现合同是建立可复现语言环境和最小程序状态,第19次检查保存解释器/包版本、值与类型、控制流、函数输入输出和异常;若产生运行成功掩盖类型、作用域或版本漂移,就返回上一步。

4.5.2 mini-batch的实现

原版坐标 20/22。 第20个正式坐标「4·5·2 mini-batch的实现」服务于覆盖数据驱动、训练/测试角色、损失、mini-batch、数值微分、梯度法与两层网络训练,需要以数据角色、batch索引、损失、差分步长、梯度、学习率与曲线呈现以损失、数值微分和更新构造可检查训练循环;测试泄漏或不稳定数值梯度被当作基准会破坏“数据切分、损失、batch采样、差分步长、初始化、学习率、迭代数和测试隔离固定”。

4.5.3 基于测试数据的评价

原版坐标 21/22。 在“第4章 神经网络的学习”的坐标21中,目录项「4·5·3 基于测试数据的评价」用于把目录坐标转为有代码、形状、梯度、训练和评估的实现合同;先冻结环境与shape,再以环境、输入输出、张量shape、缓存、梯度、训练轨迹、反例和时间边界复核,出现只复述代码或模型名称时撤回结论。

4.6 小结

原版坐标 22/22。 目录项「4·6 小结」进入“第4章 神经网络的学习”后要回答第22个实现问题:它怎样复核Softmax-with-Loss的稳定正向和批量反向、改变哪个数组或训练状态、由哪些logit/标签shape、稳定平移、概率、损失归约、反向梯度与差分误差证明,并如何排除标签编码或batch归约错误。

先预测,再操作三个章专属实现实验

分步1 / 3

1. 张量、算子与程序状态

固定“在两层网络上计算交叉熵、数值梯度和mini-batch更新,并保留独立测试。”,在参考与反例间切换,逐阶段查看“冻结数据角色、计算批损失、数值微分、梯度更新、独立测试”的输入、代码动作、输出和shape检查。

张量信号路径

选择运行情形,逐步核对形状、算子与输出

怎样从损失函数和中心差分得到可核对梯度,并让训练与测试数据承担互不污染的角色?

输入设置

在两层网络上计算交叉熵、数值梯度和mini-batch更新,并保留独立测试。 固定环境、数据、shape、初值、顺序、容差和种子。

事前预测

沿“冻结数据角色 → 计算批损失 → 数值微分 → 梯度更新 → 独立测试”得到可复核实现结果。

适用边界

全过程必须满足“数据切分、损失、batch采样、差分步长、初始化、学习率、迭代数和测试隔离固定”。

输入张量或程序状态

第4章 神经网络的学习:锁定解释器、依赖、输入与数据角色,保持其余实现合同不变

本步算子或代码动作

冻结版本、dtype、shape、轴、种子和允许读取的信息,并持续满足“数据切分、损失、batch采样、差分步长、初始化、学习率、迭代数和测试隔离固定”

输出张量或训练状态

冻结数据角色产生可追溯输入状态

形状、梯度与数值检查

可追溯输入状态、shape与数值断言;出现“根据测试精度调学习率/网络结构,或差分步长不稳仍把数值梯度当真值”时停止

原版坐标:第4章 神经网络的学习、4.1 从数据中学习、4.1.1 数据驱动、4.1.2 训练数据和测试数据、4.2 损失函数、4.2.1 均方误差、4.2.2 交叉熵误差、4.2.3 mini-batch学习、4.2.4 mini-batch版交叉熵误差的实现、4.2.5 为何要设定损失函数、4.3 数值微分、4.3.1 导数、4.3.2 数值微分的例子、4.3.3 偏导数、4.4 梯度、4.4.1 梯度法、4.4.2 神经网络的梯度、4.5 学习算法的实现、4.5.1 2层神经网络的类、4.5.2 mini-batch的实现、4.5.3 基于测试数据的评价、4.6 小结

第4章 神经网络的学习的可重放实现协议

阶段允许动作必留证据拒绝条件
冻结数据角色在“第4章 神经网络的学习”执行冻结数据角色,只改变声明的代码、数组或训练状态环境、输入、dtype/shape、数据角色与版本环境或shape不可追溯
计算批损失在“第4章 神经网络的学习”执行计算批损失,只改变声明的代码、数组或训练状态层、参数、缓存、梯度、优化器状态与输出根据测试精度调学习率/网络结构,或差分步长不稳仍把数值梯度当真值
数值微分在“第4章 神经网络的学习”执行数值微分,只改变声明的代码、数组或训练状态层、参数、缓存、梯度、优化器状态与输出根据测试精度调学习率/网络结构,或差分步长不稳仍把数值梯度当真值
梯度更新在“第4章 神经网络的学习”执行梯度更新,只改变声明的代码、数组或训练状态层、参数、缓存、梯度、优化器状态与输出根据测试精度调学习率/网络结构,或差分步长不稳仍把数值梯度当真值
独立测试在“第4章 神经网络的学习”执行独立测试,只改变声明的代码、数组或训练状态梯度误差、曲线、独立评估、反例与复现无法重放或缺少独立测试
unit: "dls-04"
question: "怎样从损失函数和中心差分得到可核对梯度,并让训练与测试数据承担互不污染的角色?"
scenario: "在两层网络上计算交叉熵、数值梯度和mini-batch更新,并保留独立测试。"
stages: ["冻结数据角色", "计算批损失", "数值微分", "梯度更新", "独立测试"]
invariant: "数据切分、损失、batch采样、差分步长、初始化、学习率、迭代数和测试隔离固定"
fault: "根据测试精度调学习率/网络结构,或差分步长不稳仍把数值梯度当真值"
evidence: "切分索引、batch索引、损失实现、差分步长、逐参数数值梯度、更新轨迹、训练曲线与一次性测试报告。"
reset: restore_case_stage_trace_mode_step_gates_and_artifact

该协议要求“第4章 神经网络的学习”在相同环境、数据角色、dtype/shape、初值、顺序、容差和种子下重放。重置后若案例、阶段、轨迹模式、步骤、训练门或证据包没有回到基线,交互状态已经污染比较。

本页回顾

掌握“第4章 神经网络的学习”不是背诵代码或API,而是能围绕“怎样从损失函数和中心差分得到可核对梯度,并让训练与测试数据承担互不污染的角色?”重建环境、shape、前向、梯度、训练与评估证据,并用“数据切分、损失、batch采样、差分步长、初始化、学习率、迭代数和测试隔离固定”拒绝“根据测试精度调学习率/网络结构,或差分步长不稳仍把数值梯度当真值”。最终交付为切分索引、batch索引、损失实现、差分步长、逐参数数值梯度、更新轨迹、训练曲线与一次性测试报告。

练习与答案

练习

  1. 问题 1:实现合同。 “第4章 神经网络的学习”为什么必须先冻结环境、数据角色、dtype/shape、初值、顺序、容差和种子?
  1. 问题 2:目录逐项覆盖。 怎样证明原版目录坐标已经进入机制、交互和练习?
  1. 问题 3:故障恢复。 怎样证明“根据测试精度调学习率/网络结构,或差分步长不稳仍把数值梯度当真值”已经被修正?

名词解释

名词解释

本章出现的专业名词,用大白话再讲一遍。

神经网络的学习

检索键 dls-A 对应目录坐标「第4章 神经网络的学习」;在“第4章 神经网络的学习”中用于沿张量形状执行仿射、激活、稳定输出与批量推理,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

从数据中学习

检索键 dls-B 对应目录坐标「4·1 从数据中学习」;在“第4章 神经网络的学习”中用于以损失、数值微分和更新构造可检查训练循环,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

数据驱动

检索键 dls-C 对应目录坐标「4·1·1 数据驱动」;在“第4章 神经网络的学习”中用于把目录坐标转为有代码、形状、梯度、训练和评估的实现合同,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

训练数据和测试数据

检索键 dls-D 对应目录坐标「4·1·2 训练数据和测试数据」;在“第4章 神经网络的学习”中用于把目录坐标转为有代码、形状、梯度、训练和评估的实现合同,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

损失函数

检索键 dls-E 对应目录坐标「4·2 损失函数」;在“第4章 神经网络的学习”中用于建立可复现语言环境和最小程序状态,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

均方误差

检索键 dls-F 对应目录坐标「4·2·1 均方误差」;在“第4章 神经网络的学习”中用于以损失、数值微分和更新构造可检查训练循环,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

交叉熵误差

检索键 dls-G 对应目录坐标「4·2·2 交叉熵误差」;在“第4章 神经网络的学习”中用于以损失、数值微分和更新构造可检查训练循环,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

mini-batch学习

检索键 dls-H 对应目录坐标「4·2·3 mini-batch学习」;在“第4章 神经网络的学习”中用于以损失、数值微分和更新构造可检查训练循环,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

mini-batch版交叉熵误差的实现

检索键 dls-I 对应目录坐标「4·2·4 mini-batch版交叉熵误差的实现」;在“第4章 神经网络的学习”中用于以损失、数值微分和更新构造可检查训练循环,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

为何要设定损失函数

检索键 dls-J 对应目录坐标「4·2·5 为何要设定损失函数」;在“第4章 神经网络的学习”中用于建立可复现语言环境和最小程序状态,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

数值微分

检索键 dls-K 对应目录坐标「4·3 数值微分」;在“第4章 神经网络的学习”中用于以损失、数值微分和更新构造可检查训练循环,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

导数

检索键 dls-L 对应目录坐标「4·3·1 导数」;在“第4章 神经网络的学习”中用于以损失、数值微分和更新构造可检查训练循环,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

数值微分的例子

检索键 dls-M 对应目录坐标「4·3·2 数值微分的例子」;在“第4章 神经网络的学习”中用于以损失、数值微分和更新构造可检查训练循环,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

偏导数

检索键 dls-N 对应目录坐标「4·3·3 偏导数」;在“第4章 神经网络的学习”中用于以损失、数值微分和更新构造可检查训练循环,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

梯度

检索键 dls-O 对应目录坐标「4·4 梯度」;在“第4章 神经网络的学习”中用于以损失、数值微分和更新构造可检查训练循环,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

梯度法

检索键 dls-P 对应目录坐标「4·4·1 梯度法」;在“第4章 神经网络的学习”中用于以损失、数值微分和更新构造可检查训练循环,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

神经网络的梯度

检索键 dls-Q 对应目录坐标「4·4·2 神经网络的梯度」;在“第4章 神经网络的学习”中用于沿张量形状执行仿射、激活、稳定输出与批量推理,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

学习算法的实现

检索键 dls-R 对应目录坐标「4·5 学习算法的实现」;在“第4章 神经网络的学习”中用于以损失、数值微分和更新构造可检查训练循环,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

2层神经网络的类

检索键 dls-S 对应目录坐标「4·5·1 2层神经网络的类」;在“第4章 神经网络的学习”中用于建立可复现语言环境和最小程序状态,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

mini-batch的实现

检索键 dls-T 对应目录坐标「4·5·2 mini-batch的实现」;在“第4章 神经网络的学习”中用于以损失、数值微分和更新构造可检查训练循环,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

基于测试数据的评价

检索键 dls-U 对应目录坐标「4·5·3 基于测试数据的评价」;在“第4章 神经网络的学习”中用于把目录坐标转为有代码、形状、梯度、训练和评估的实现合同,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

小结

检索键 dls-V 对应目录坐标「4·6 小结」;在“第4章 神经网络的学习”中用于复核Softmax-with-Loss的稳定正向和批量反向,需要连接原版范围、代码/shape、梯度轨迹与独立评估证据。

资料与写作方式声明

本章以斋藤康毅著《ゼロから作るDeep Learning》权威目录界定学习范围,并结合正文列出的技术资料独立重写;不宣称复现原书正文,也不沿用原作表述。

原作版权归作者与出版社所有;本站原创教学结构与表述仅供学习交流。

讨论

评论区加载中…