DigiSim

数字/ 实验室

在您的设备上运行
交互式机器学习实验室

看见学习如何发生。

从你的手写字迹开始。追踪数值变化。亲手训练一个真实的神经网络。

未训练检查点 0
784 → 32 → 16 → 10
检查点 0 · 已冻结
拖拽以旋转视角·Shift+拖拽以平移·滚轮 / 双指捏合以缩放
正在准备立体几何体…
3D 空间隐藏层神经元占据宽度、高度与深度。间距调整仅改变视角,绝不影响模型本身。输入图像严格保持为 2D 平面。
像素:0 → 1ReLU 激活带符号的输出得分
选择一个神经元以检查其传入连接。计算中使用了全部 25,760 个连接。
从一个问题开始

它现在能认出你的手写字迹吗?

网络从随机权重开始,起初并不具备关于数字的知识。绘制一个数字或选择一个样本,然后追踪其预测背后的各项数值。

推理仅读取权重。只有明确的训练操作才会更改它们。
犯错。调整权重。再次尝试。

学习是一个可测量的变化过程。

0已完成轮数
0已处理样本数
0SGD 更新次数
—上一小批量平均损失
—验证准确率
交叉熵损失越低越好
有标签样本的准确率越高越好
训练验证 · 每个点均在固定检查点评估指定划分的全部数据。
检查图表上的每个点及其样本数量

每行均在某个固定检查点评估指定子集的全部样本。损失是这些样本的算术平均值;准确率为正确数 / n。修改训练数据量会改变训练曲线的样本数量(如下所示)。验证始终使用相同的保留集。

尝试一个实验:更大的学习步长学得更快吗?

重置并在 η = 0.07 下训练,观察验证曲线。随后重置回完全相同的初始检查点,并在 η = 2.0 下重复实验。对比测量结果;并不保证会有所改善。若要探索记忆效应(过拟合),请减少训练样本并对比训练与验证表现。将测试划分保留用于最终评估。

数字 / 实验室/像素 → 预测 → 错误 → 学习。真实数据。真实梯度。完全在您的浏览器中运行。
您的首个实验

先训练,再测试。

绘制一个数字或点击带标签的样本。网络初始为随机权重,因此看似合理的预测也可能是完全错误的。

1. 跟踪单次预测过程

使用单步执行预测。观察 784 个像素值如何转化为 32 个激活值,再转化为 16 个,最后形成 10 个得分与概率。选中任意球体或使用层/索引控件可检查每个输入项。

2. 跟踪单步训练过程

选择一个训练样本,或识别手绘数字并为其指定目标标签。使用教学此样本并依次查看损失、输出梯度、隐藏层梯度以及拟议的更新量。只有应用 SGD 更新才会真正更改权重。

3. 在更多手写样本上训练

使用开始真实训练。一个小批量会合并多个有标签样本的梯度。在批次边界处暂停可检查不可变的快照。更新检查器显示的是真实的批次平均梯度,而非当前展示样本的梯度。

4. 测试新样本

在测试集上评估;检查混淆矩阵和错误分类。然后尝试您自己的手写绘制。画布手写体可能与这个小型训练数据集存在较大差异;即使预测概率很高也可能会出错。

数据与隐私

自带数据集为 UCI Optical Digits,而非 MNIST:包含 1,797 个真实的 8×8 样本,归一化为 28×28 输入平面。可选的 MNIST 导入功能会从博物馆验证过的 CVDF 副本下载官方 IDX 归档。绘制内容与所有计算均保留在此浏览器中。关闭或刷新页面会重置实验室;导出权重或测量数据即可将其保存。

视角与辅助功能

拖动以旋转视角;按住 Shift 拖动或右键拖动以平移;滚动或双指开合以缩放。聚焦场景后可使用方向键、+/− 和 Home 键。无需 3D 视图即可选择所有神经元。教学播放可暂停,并遵循系统的减弱动态效果设置。