MLP 小课堂AI FOR KIDS
BONUS 02 · 训练好的网络

让网络认数字

这个网络不是我们临时搭的,而是用 PyTorch 认认真真训练出来的。你在黑板上写一个 0–9,它会先看一张 16×16 的点阵图,再猜你写的是几。

PyTorch 训练 MNIST 数据集 16×16 输入 2790 个权重
01

先写一个数字

用鼠标或手指,在深色黑板上写 0–9。写大一点、粗一点,它更容易认出来。

写字板

0–9

写的时候不用管位置,它会自动把笔迹挪到中间。

网络看到的图

16 × 16

你的笔迹会被缩成 16×16 个小格子:深色是 1,浅色是 0。

一共 256 个格子,就是网络的 256 个输入。

02

它是怎么猜的

网络会给 0–9 每个数字打一个分,再把分数变成概率。概率最高的那个,就是它的答案。

它觉得是 ?

先写一个数字吧,0–9 都可以。

每根条越长,网络就越觉得你写的是这个数字。

03

把网络拆开看

这张网络有 4 层:256 个输入 → 10 个神经元 → 10 个神经元 → 10 个输出。

256输入格子
10第 1 层
10第 2 层
10输出 0–9

点下面的按钮,看看刚才写的数字在每一层变成了什么。

最后概率最高的,就是它猜的数字。

给大人:手动输入 256 个 0/1

和训练时一样,一行 16 个,一共 16 行。也可以用空格、逗号分隔,或者直接连着写。

04

三个小挑战

看看这个网络什么时候很自信,什么时候会犯迷糊。

1 写一个 8

先写一个工整的 8,再写一个歪歪扭扭的 8,看看概率差多少。

2 让它犹豫一下

试着写一个又像 3、又像 5 的数字,观察哪几个概率一起变高。

3 挑战 0

写一个瘦瘦的 0,再写一个胖胖的 0,看看它是不是都认得。

想一想:它只见过 16×16 的黑白数字。如果写字太细、太斜,或者只写了一半,它也会犯迷糊。这说明网络的答案,和它见过的东西很有关系。
← 上一站 加餐:神经网络游乐场 玩够了 → 返回课程首页