AI解剖课堂 · Part 2 机器是怎样学习的
第 26 章 动手试试:手写数字
Q. 我用手指写的数字,神经网络真的认得出来吗?
- 一张数字图有 28 × 28 = 784 格。每一格里是从 0(空白)到 1(浓墨)的一个数(第 6 章)。
- 这 784 个数就是输入。隐藏层的 64 个神经元各自算出 (输入 × 权重) 之和 + 偏置,再用 ReLU 折一下(第 16~19 章)。
- 10 个输出神经元给出 0~9 的分数,再用 Softmax 变成概率(第 14 章)。这张图:3 是 87.5%,5 是 11.3%。
- 训练用的是 6 万张手写数字,叫作 MNIST。前向传播、损失、反向传播、调整,按小批量反复进行(第 19~24 章)。
- 学完后,用没见过的 1 万张测试图来打分,答对了 97.96%。它就是装在这个应用里的那个神经网络。
- 把隐藏神经元的权重画成图,会看到像笔画片段一样的花纹。没有人教过它,是它自己找到的。
- 现在轮到你来画了。用手指在下面的格子里写一个数字,浏览器里的神经网络马上就能认出来。
本章小结
- 一张数字图 = 28 × 28 = 784 个数,这就是神经网络的输入。
- 784 → 64 个隐藏神经元(ReLU)→ 10 个输出 → Softmax 得出 0~9 的概率。
- 用 MNIST 的 6 万张训练,没见过的 1 万张里答对了约 98%。