在大屏或电脑上体验更佳——动画和操作区域更宽敞。
输入

训练循环

训练循环反复执行前向计算、损失评估、反向求梯度、参数更新,让网络从初始权重中学习。基于梯度的神经网络训练广泛使用这套过程。本页默认两输入、四个隐藏神经元,共 17 个可训练参数,包含偏置。

40 个实心点是训练样本,参与梯度;20 个空心点是留出样本,只用于评估。画面把后者标为 test,但若反复查看它们选择模型与学习率,它们实际上承担验证集角色。最终无偏评估还需另一份未用于调参的数据。浏览器实时训练网络,让两条曲线的差异可见。

训练循环如何工作

网络有两个输入、可选 0、2、4、8 个 tanh 隐藏神经元、一个 sigmoid 输出。无隐藏层时就是逻辑回归。有隐藏层时:

  1. 前向。 所有训练点计算 h = tanh(W1·x + b1)、p = sigmoid(W2·h + b2),p 表示正类概率。
  2. 损失。 二元交叉熵比较 p 与真实标签,自信且错误的预测产生较大惩罚。
  3. 反向。 链式法则计算各参数梯度,机制见反向传播课。
  4. 更新。 沿负梯度按 η 更新参数,规则见梯度下降课。
  5. 评估。 计算 20 个留出点的损失和准确率,不把它们用于梯度。

本页使用 full-batch:每次更新读全部 40 个训练点,因此一个 epoch 对应一次更新循环。1× 播放时目标约为每秒 160 epoch(随倍速缩放),实际受设备与浏览器调度影响。

背景场用当前网络对平面位置做前向计算:靛蓝为正类倾向,品红为负类,p = 0.5 附近淡出。它与损失使用同一网络计算。数据与初始权重有固定种子,不打乱顺序,Reset 重放同一实验。

训练循环逐步演示

默认 XOR · η = 0.3 · hidden = 4 · clean,暂停在 epoch 0。单直线无法分开 XOR,四个 tanh 神经元则能表达并在本次运行学到非线性边界。

  1. Epoch 0。 权重随机,背景较淡,训练与留出损失接近 ln 2 ≈ 0.69,对应约 0.5 概率预测。
  2. 初期。 两条曲线下降,一段时间边界近似直线,先进行粗略分区。
  3. 边界弯曲。 四个隐藏单元组合,让 ++、−− 象限归一类,混合符号象限归另一类,一条直线做不到。
  4. 约在 epoch 878 自动暂停。 两损失接近零,训练与留出准确率均为 100%。规则是训练损失连续 200 epoch 低于 0.02;这是让演示结束的条件,不是通用收敛定理;检查按每批渲染的 epoch 进行,暂停可能晚几个 epoch。实际可使用迭代预算与验证表现。

这个固定样本中,两组表现一致,支持网络学到了可泛化到这些留出点的结构,但不是所有输入都正确的证明。三个预设展示不同问题:

  • Too hot,η=30。 损失跳动,背景在近似解与差解之间闪烁。本种子显示震荡,而非无限增大。sigmoid 配交叉熵对输出 logit 的导数 p−y 有界,不代表对全部网络权重的梯度或参数都必然有界。与二次碗的发散是不同示例。
  • Too simple,无隐藏层。 逻辑回归无法分开 XOR,曲线停在约 0.69,准确率不足以解决任务。这里已知限制是线性表达力,不是再训练几轮就能修复。
  • Overfit,circle · noisy · 8 neurons。 留出损失在前几百 epoch 达最低后上升到其两倍以上,训练损失继续降。最终训练准确率 100%,留出低于 80%。网络更贴合训练集的噪声,留出表现变差。

如何读两条损失曲线

实线是训练,虚线是留出评估。优化尝试降低训练损失,但步长过大时也会升高。留出曲线可以反映训练特有模式或噪声的影响,却不是精确检测过拟合开始时刻的仪器。

两者下降,支持当前学习有效;两者高位停滞,可能是欠拟合,也可能是优化或数据问题,本课无隐藏 XOR 才能明确归因于容量。训练降、留出升,提示过拟合,可根据验证表现保留较早检查点。两者剧烈振荡,本课 Too hot 应先检查学习率,但一般任务仍需排查其他原因。

真实训练还用小批次、Adam、正则化等机制,本页把它们省略,以观察前向、损失、反向、更新和独立评估的职责。

边界情况

  • 线性模式。 无隐藏层时 p=0.5 边界为 w·x+b=0,画布在背景上叠加直线,与感知机处理的几何对象相同。
  • 螺旋。 默认 η = 0.3 时,线性模型只略高于随机基线,2 单元吃力,8 单元能拟合大部分结构,展示容量对弯曲边界的影响;η = 30 时 8 单元也找不到解。
  • 慢不等于卡住。 干净 XOR 在 η=0.03 时,到 4000 epoch 上限两条曲线仍在下降;带噪数据的留出曲线可能已开始上升。与 Too simple 的停滞比较斜率,而非只看最终分数。
  • 暂停与结束不同。 中途暂停后 Play 接着训练;收敛、达到上限或震荡结束后,Play 从 epoch 0 重放。任何控件变化也以固定种子重启。

常见错误

  • 只看训练损失。 它下降说明对训练数据拟合改善,泛化还需留出证据;这些点被用于调参后就不能再充当独立最终测试。
  • 认为神经元越多越好。 带噪圆形中,额外容量可拟合噪声,留出表现可能更差。容量要与数据和正则化配合。
  • 认为学习率过大一定无限爆炸。 本运行表现为震荡,但不能用输出 logit 导数有界保证任意网络稳定。
  • 把自动暂停当收敛理论。 “连续 200 epoch 低于 0.02”是本演示条件,实际停止策略应依据任务与验证设计。