Deep Learning With Keras 简明教程
Deep Learning with Keras - Deep Learning
如引言所述,深度学习是一个用大量数据训练人工神经网络的过程。一旦经过训练,网络将能够对看不见的数据给我们预测。在我进一步解释深度学习是什么之前,让我们快速浏览一下在训练神经网络时使用的一些术语。
Neural Networks
人工神经网络的想法源自我们大脑中的神经网络。典型的神经网络由三层组成——输入层、输出层和隐藏层,如下图所示。
这也称为 {a0} 神经网络,因为它仅包含一个隐藏层。您可以在上述架构中添加更多隐藏层,以创建更复杂的架构。
Network Training
在你定义了网络架构后,可以为该网络进行训练,以进行特定类型的预测。训练网络是一个查找网络中每个链接的适当权重过程。在训练过程中,数据将通过各种隐藏层从输入层流向输出层。由于数据总是从输入到输出朝一个方向移动,我们将此网络称为前馈网络并将数据传播称为前向传播。
Handwritten Digit Recognition System
在此迷你项目中,您将应用前面描述的技术。您将创建一个用于识别手写数字的深度学习神经网络。在任何机器学习项目中,第一个挑战都是收集数据。特别是,对于深度学习网络来说,您需要大量数据。幸运的是,对于我们试图解决的问题,有人已经创建了一个用于训练的数据集。这被称为 mnist,它作为 Keras 库的一部分提供。该数据集包含几个 28x28 像素的手写数字图像。您将在该数据集的主要部分训练您的模型,而其余数据将用于验证您的训练模型。
Project Description
mnist 数据集包含 70000 个手写数字图像。这里复制了几幅示例图像供您参考
每一幅图像大小为 28 x 28 像素,总共为 768 个像素,具有各个灰度级别。大多数像素偏向于黑色阴影,而只有少数像素偏向于白色。我们将把这些像素的分布放入一个数组或一个向量中。例如,数字 4 和 5 的典型图像的像素分布如下所示。
每一幅图像大小为 28 x 28 像素,总共为 768 个像素,具有各个灰度级别。大多数像素偏向于黑色阴影,而只有少数像素偏向于白色。我们将把这些像素的分布放入一个数组或一个向量中。例如,数字 4 和 5 的典型图像的像素分布如下所示。
显然,您可以看到像素的分布(尤其是偏向白色调的像素)不同,这可以区分它们所代表的数字。我们将把这 784 个像素的分布作为输入馈送至我们的网络。该网络的输出将包含 10 个类别,表示介于 0 到 9 之间的数字。
我们的网络将包含 4 层 — 一层输入层、一层输出层和两层隐藏层。每个隐藏层将包含 512 个节点。每一层都与下一层完全连接。当我们训练网络时,我们将计算每个连接的权重。我们通过应用反向传播和梯度下降来训练网络,我们之前讨论过这些技术。