(关注公众号 AI新视野,发送‘资料’二字,免费获取50G人工智能视频教程!)
本文是图像分类算法的科普文,下图是分类是否为热狗图像的示意图。
手机能够拍摄照片并在几秒钟内告诉我们正在拍摄的内容似乎很神奇。实际上,上图是通过一种称为卷积神经网络CNN的图像处理方法实现的。
高级图像处理
我们在iPad上观看高清电影时,是通过里面的芯片1和0的快速输入和输出来实现的。所有计算机,手机和平板电脑都是通过处理1和0来完成特定的任务。
图像作为数字
我们在计算机上查看的图像其实是像素网格。想象一下,当您尝试在低分辨率图像上放大时所看到的内容,最终,您可以看到每个正方形创建像素化图像。
左边是松饼的高分辨率图像。在右侧,通过降低图像的分辨率,来表达图像如何存储为不同颜色的像素值。像素化方块中的每一个点都被计算机理解为红色,蓝色和绿色的强度值。
此时我们已经理解了,图片在电脑中是以像素值存储的,因此计算机可以像执行带数字的方程一样操作处理图像。
数据
下一步是了解如何构建预测模型。所有机器学习都依赖于数据,如果你想建立一个预测图像是否是热狗的模型,你需要给计算机提供成千上万的热狗图像和其他图像。您可以想象用于训练模型的图像为三堆成千上万的图像,每种颜色一个。计算机将其视为[图片数量X行像素X列像素X数量颜色桩]的矩阵。
这些数千张图像被提供给模型及其正确的类别,以教授在热狗图像中存在和不存在的模型模式。这个过程称为训练。在训练开始时,模型不能很好地猜测类别,因为它没有机会学到很多东西。由于它做出了错误的猜测,通过调整了它的评估方法,试图不再犯这个错误。由于它做出了正确的猜测,它强化了用于获得正确答案的过程。
谷歌图像搜索不断刮取互联网收集图像,为我们提供了一个有用的工具。与此同时,它正在创建一个大型数据集,将图像分类为几乎任何类别。在您存储或共享照片的任何地方,您可能正在为此任务使用的公司在幕后发生某种数据收集。
关于收集和利用我不会在这里收集的数据的公司的道德规范,有很多讨论。为了理解图像分类器,重要的是要理解它需要数千个图像来创建可以对该对象进行分类的工具。由于几个原因,图像分类变得越来越普遍,包括现在可以容易地获得大的图像集。
神经网络
用于处理图像的最有效的模型类型称为神经网络。神经网络以我们大脑中的神经元命名,因为它们用于处理信息并以模仿我们大脑中神经元的方式识别模式。
在神经网络中,信息从一个点(称为节点)传递到下一个点,以通过称为层的阶段移动。在下图中,每个方块都是一个节点,每列方块都是一个层。
输入层(最左边的列)由来自给定图像的所有像素信息组成。输出图层(最右边的列)由图像的每个分类类别组成。
在任何一对相邻层之间,存在从一层的所有节点到另一层的所有节点的数学运算。在下图中,为神经网络进行计算的每个关系添加了箭头。
为了进行分类,每个节点组合来自指向它的箭头的信息。这种组合使节点关闭或打开。不同强度的节点。如果该节点已打开,它将把信息传递到下一个节点,并重复此过程。
在输出层,选择打开到最高强度的类别的节点作为图像的分类。
这些层中的每一层都是称为密集层的特定类型的神经网络层 。
卷积神经网络
您可能已经注意到,在上面的示例中,像素以1D线而不是2D图像显示。如上所示,可以处理和分类开始展平的图像。然而,这与输入层是2D图像的神经网络几乎不起作用。
这是通过在上述示例的密集层之前添加层来完成的。这些层中的第一层将是卷积层。
卷积层输入像素的2维值。它通过在图像的一部分上放置指定像素尺寸的滤波器来处理该输入。在滤波器和该位置处的像素之间发生乘法的方法以确定结果值。
在左边我们有一个输入图像。在中心,我展示了一个用于表示6像素X 6像素滤镜的盒子。在右边,我们看到图像和滤镜之间的乘法输出。
该过程在输入图像的所有像素上继续以创建输出图像。然后使用不同的过滤器重复该过滤器以获得不同的输出图像,直到应用了指定数量的过滤器。
还有其他类型的层可用于压缩卷积层的结果信息,以制作更准确和更有效的模型,但这些层不是强制性的。
也可以添加几个卷积层。在卷积层,密集层和用于改进模型的其他层类型之间,图像分类神经网络具有十几个层并不罕见。
在所需数量的卷积层之后, 需要实现*展平层 *以将像素移动到正确的形状以发送到像上面所见的密集层。在此过程中,每列信息都堆叠在前一列之下,从而创建一维数组。
图像处理步骤
我们现在已经介绍了创建模型来处理图像的一般过程。让我们按顺序回顾一下所需的步骤。
首先,收集大量具有关联标签的图像以训练模型。
其次,将图像转换为红色,蓝色和绿色强度的数字网格。
第三,通过神经网络处理图像。每个图像按以下方式处理:
- 将小于图像的滤镜应用于图像的每个区域,并完成乘法过程以创建新的网格值(卷积层)
- 根据需要重复
- 将信息堆叠到一维数组(展平层)
- 计算一维数组与下一层中的节点之间的关系,以确定要激活的节点和多少(密集层)
- 根据需要重复
- 在输出层,确定哪个节点与给定的信息最匹配。将图像分类为该节点的值。
- 每次进行正确的预测时,都要加强导致该预测的方程式。每次进行不正确的预测时,修改导致该预测的等式。
最后,构建的模型可用于创建以前从未见过的新图像的预测。
虽然这些模型的工作方式还有很多深度,但我们已经涵盖了创建用于图像分类的卷积神经网络所需的所有信息。