在深度学习中,卷积神经网络 (CNN) 是一种特殊类型的神经网络,旨在通过多层数组处理数据。 CNN 非常适合图像识别等应用,尤其常用于人脸识别软件。
在 CNN 中,卷积层是使所有魔法发生的基本构建块。 在典型的图像识别应用中,卷积层由多个滤波器组成,用于检测图像的各种特征。 用一个类比来最好地说明这项工作的方式。
同样,在 CNN 中,您有多个包含各种滤镜(或通常称为内核)的层,负责检测您尝试检测的目标的特定特征。 前一层试图关注广泛的特征,而后一层试图检测非常具体的特征。
在 CNN 中,每个卷积层中各种滤波器的值是通过在特定训练集上训练获得的。 在训练结束时,您将拥有一组独特的滤镜,用于检测数据集中的特定特征。 使用这组滤镜值,您可以将它们应用于新图像,以便您可以对图像中包含的内容进行预测。
数据集
深度学习中的经典示例之一是 MNIST 数据集。我将在我们的示例中使用它。MNIST 数据库(Modified National Institute of Standards and Technology database)是一个大型手写数字数据库,常用于训练各种图像处理系统。
使用 TensorFlow,您可以按如下方式加载 MNIST 数据:
我现在要做的是使用该数据集中的特定项目,提取其数据,然后将其保存到 CSV 文件中。下面的代码片段就是这样做的。
如果您打开保存的 mnist.csv 文件,您将看到以下内容:
可视化它的更好方法是使用 Excel 打开它:
您现在可以非常生动地看到该数据集表示数字“2”。
Excel中对图像应用滤镜
为了可视化过滤器的工作原理,让我们使用 Excel 并创建一个新工作表。
首先,使用以下值创建一个 28x28 网格(稍后我们将使用 MNIST 数字的数据;现在我将向您展示一些更容易理解的内容):
假设 28x28 网格中的每个值代表一种颜色(255 代表白色,0 代表黑色)。
接下来,创建另一个 28x28 网格,其值是通过将第一个网格中的每个值除以 255 来获得的:
接下来,我们创建一个表示过滤器(内核)的 3x3 网格:
滤镜代表我们在图像中寻找的图案类型,其中 1 代表白色,-1 代表黑色。 在上面的滤镜中,我正在寻找图像中颜色从白色变为黑色的垂直边缘,如下所示:
将滤镜应用于网格只是将滤镜中的每个值与网格中的相应值相乘的问题:
由此产生的网格是我们试图寻找的特征图。 看这些值,我们不容易知道特征图的重要性。 因此,让我们为原始图像和特征图添加一些颜色编码,以便我们可以清楚地看到我们在寻找什么。
对于此图像网格,我们希望通过选择整个网格然后选择格式 | 条件格式,为其应用颜色…:
在“管理规则”窗口中,单击对话框左下角的 + 按钮:
如下设置颜色,然后单击“确定”两次:
网格现在看起来像这样:
Excel可视化模板
详情参阅 - 亚图跨际