神经网络识数字 · NeuroLab
神经网络识别手写数字:在手写板上写一个数字,看信号在三维神经网络里逐层点亮、给出答案;亲手给一个神经元画权重,在浏览器里从随机权重开始现场训练,看卷积核扫过整张图,再看 AI 在旋转、平移和噪点面前怎样认错。
章节内容
图像就是数字
在右边的手写板上写一个数字。它会被缩成 28 × 28 个小格子,每个格子是一个像素,用 0(黑)到 1(白)之间的数表示有多亮。方块越高、越亮,这个像素的数就越大。
所以在计算机眼里,这张图只是 784 个数。后面所有的“识别”,都是对这 784 个数做加减乘除。
写之前还有一步预处理:先框出笔迹,缩放到 20 × 20 以内,再按“重心”放到正中间。训练用的 MNIST 数据集(7 万张真人手写数字)就是这样整理的,写得大小、位置不同也不要紧。
一个神经元
一个神经元只做一件事:把 784 个像素各乘上一个权重再全部加起来,加上偏置 b,得到 z;再经过激活函数,变成它的输出 a。
地上的方块:高度是像素,颜色是权重——蓝色是正权重(这里有笔画就加分),橙色是负权重(这里有笔画就扣分)。连到大球上的线越亮,这个像素的贡献越大。
选中右边的画笔,直接在地上的方块上拖动来“画权重”。试着设计一个只认“1”的神经元:中间一条竖线画成蓝色,两侧画成橙色,再用“试一个 1”“试一个 0”检验它。
多层网络
把很多神经元排成几层:第一层 32 个神经元各看整张图,第二层 16 个看第一层的结果,最后 10 个输出神经元分别代表 0 到 9。输出经过 softmax 变成概率,最高的就是识别结果。
写一个数字,看信号从左到右一层层流过去:连线只画贡献最大的那些,蓝线是“支持”,橙线是“反对”。
点第一层的任意一个方块,它头顶会浮出它的 784 个权重拼成的图——这就是它在找的笔画形状。这些权重不是人设计的,是网络看了 6 万张手写数字后自己学出来的。
现场训练
这一次,网络的权重全是随机数,什么也不会。点“开始训练”,它会一张张地看 3000 个带答案的手写数字:先猜,再用损失衡量猜得有多错,然后把每个权重朝“让损失变小”的方向挪一小步——这就是梯度下降。
看第一层头顶的 32 张权重图:一开始是雪花一样的噪点,训练中慢慢长出笔画的形状。右边的曲线里,损失在下降,准确率在上升。
每一步挪多远由学习率决定:太小学得慢,太大会在谷底两边来回跳,甚至越学越糟。训练好以后暂停,再用手写板考考它。
卷积网络
多层网络的每个神经元都盯着整张图,数字挪一下位置就不认识了。卷积网络换了个思路:用一个 5 × 5 的小窗口(卷积核)在图上逐格滑动,每到一处都问“这里有没有我要找的笔画”,结果排成一张特征图。
第一层有 6 个卷积核,找横、竖、斜这样的简单笔画;池化把每 2 × 2 取最大值,图变小但特征保留;第二层 12 个卷积核把简单笔画组合成拐角、圆弧;最后才判断是哪个数字。
看“扫描动画”,再点任意一张特征图看它的卷积核。它的参数比多层网络少得多,准确率反而更高。
AI 也会犯错
把数字旋转、挪到角落、加上噪点,看右边的置信度怎么一点点崩掉。训练时它没见过这样的图,就容易认错;多层网络对位置尤其敏感,卷积网络稳一些,但也不是不会错。
点“看它认错的数字”,翻翻测试集里它真的认错的例子——有些连人也要犹豫。再在手写板上画一个笑脸或字母:它只认识 0 到 9,没有“我不知道”这个选项,照样会自信地报出一个数字。
所以 AI 的判断要看训练数据是否全面,重要的事情还需要人来把关。
更多实验
- VoltLab 电学实验台
- 等高线 3D 课堂
- 大气环流粒子课堂
- 地球运动课堂
- 潮汐的形成 · TideLab
- 海陆的变迁
- 水循环三维沙盘 · WaterCycle
- 细胞 · 三维结构
- 显微镜实验台 · MicroLab
- 孟德尔豌豆杂交实验 · PeaLab
- 细胞的能量“货币” · ATPLab
- DNA 的结构 · DNALab
- 体液免疫 · ImmuneLab
- 植物的一生 · PlantLab
- 元素周期表 · PeriodicLab
- 实验室制取气体 · GasLab
- 化学分析实验台 · AnalytLab
- 反应机理 · 分子动画
- 分子构型 · VSEPR
- 原子轨道 · 电子云
- 化学反应 · 微观世界
- 立体几何 · GeoSpace
- 圆锥曲线 · ConicLab
- 函数图像 · FuncLab
- 尺规作图 · ConstructLab
- 勾股定理 · PythagoLab
- 趣味数学 · WonderLab
- 运动与力 · MotionLab
- 简单机械 · MachineLab
- 液体压强与浮力 · FloatLab
- 神舟发射与返回 · RocketLab
- 热力学 · ThermoLab
- 传热与物态变化 · HeatLab
- 光学实验台 · OpticsLab
- 振动与波 · WaveLab
- 电场与磁场 · FieldLab
- 著名战役沙盘 · WarTable
- 疆域变迁 · HistoryAtlas