为了让网络做好准备去训练,我们需要再选出三个东西作为编写的步骤:
失分方程——网络如何来衡量它在训练数据上的表现,以及它如何因此来使自己驱使向正确的方向。
优化——网络根据它看到的数据以及失分功能来更新自己的机制
在训练和测试时的用以监督的度量标准——这里,我们仅专注精度(正确分类了的那部分图片)
失分方程和优化的额外部分会在接下来的两章里说明清楚
在训练前,我们将会重新塑型数据成网络需求的形态并缩放他们的比例进[1,0]之间来进行预处理。之前,例如,我们训练的以(60000,28,28)uint8格式存储的有着[0,255]区间值的图片组。我们将它转变为以(60000,28,28)float32位格式存储的值在0到1之间的图片组
我们也需要明确的编辑标签,这一步在第三章有解释。
(略)
我们现在准备训练网络,这是Keras通过调用网络的fit方法做到的——我们fit模型来训练它的数据。
在训练的过程中这里有两个问题凸显出来:通过训练数据得到的网络的损失,以及通过训练数据得到的网络精度
我们很快就在训练数据上达到了0.989(98.9%)的精度。现在让我们看看模型是否在测试组也表现良好:
(略)
测试组达到了97.8%——这确实比训练组精度要低一点。训练精度与测试精度之间的微小差距就是过度适应的例子:事实上机器学习模型在新数据上的表现倾向于比在训练数据上糟糕。过度适应是第三章的主要内容。
我们第一个例子的总结——你仅仅看到了你怎样才能在20行python代码内建立并训练一个神经网络来分辨手写数字。在下一章,你会学到张量,进入网络中数据存储对象;由层制作的张量操作,和梯度下降,这让你的神经网络学习了它的训练例子。