什么是卷积神经网络?
也许你想谷歌是如何让你只需上传一张自己的照片就可以在网上搜索类似的照片。这些特性是计算机视觉的例子,它们由卷积神经网络(CNNs)提供动力。然而卷积神经网络到底是什么?让我们深入了解一下CNNs的架构,了解它们是如何运作的。
什么是神经网络?
在我们开始讨论卷积神经网络之前,让我们花点时间来定义规则神经网络。简单地说,它们是受人脑启发的计算模型。神经网络的工作原理是接收数据并通过调整“权重”来操作数据,权重是关于输入特征之间以及对象类之间如何关联的假设。当网络被训练时,权值会被调整,并且它们有望收敛到能够准确捕捉特征之间关系的权重上。
这就是前馈神经网络的工作原理,CNNs由两部分组成:一个前馈神经网络和一组卷积层。
什么是卷积神经网络(CNN)?
卷积神经网络中发生的“卷积”是什么?卷积是一种数学运算,它创建一组权重,本质上是创建图像部分的表示。这组权重称为内核或过滤器。创建的滤波器比整个输入图像小,只覆盖图像的一部分。过滤器中的值与图像中的值相乘。然后将滤波器移到图像的一个新部分的表示,然后重复该过程,直到整个图像被覆盖为止。
另一种考虑这一点的方法是想象一堵砖墙,砖块代表输入图像中的像素。一扇“窗户”正沿着墙壁前后滑动,这就是过滤器。通过窗口可以看到的砖块是其值乘以过滤器中的值的像素。因此,使用过滤器创建权重的这种方法通常被称为“滑动窗口”技术。
围绕整个输入图像移动的过滤器的输出是表示整个图像的二维数组。这个数组被称为“特征映射”。
为什么卷积是必要的
创建卷积的目的是什么?因为图像中的像素必须能够解释为卷积值。卷积层的作用是将图像转换成神经网络可以解释的数值,然后从中提取相关的模式。卷积网络中滤波器的工作是创建一个二维值数组,这些值可以传递到神经网络的后面的层,这些层将学习图像中的模式。
过滤器和通道
CNN不仅仅使用一个过滤器从输入图像中学习模式。使用多个过滤器,因为不同过滤器创建的不同数组会导致输入图像更复杂、更丰富的表示。使用多个过滤器,因为不同过滤器创建的不同数组会导致输入图像更复杂、更丰富的表示。CNN的常用过滤器数为32、64、128和512。过滤器越多,CNN就有越多的机会检查输入数据并从中学习。
CNN分析像素值的差异以确定物体的边界。在灰度图像中,CNN只会观察黑与白、从亮到暗的区别。当图像是彩色图像时,CNN不仅考虑了暗和光,而且还必须考虑到三种不同的颜色通道——红色、绿色和蓝色。在这种情况下,滤波器有3个通道,就像图像本身一样。一个过滤器的通道数被称为它的深度,过滤器中的通道数必须与图像中的通道数相匹配。
卷积神经网络结构
让我们来看看卷积神经网络的完整结构。在每个卷积网络的起始处都有一个卷积层,这是将图像数据转换成数值阵列的必要条件。然而,卷积层也可以在其他卷积层之后出现,这意味着这些层可以堆叠在另一层之上。具有多个卷积层意味着来自一个层的输出可以经历进一步的卷积,并以相关模式组合在一起。实际上,通过图像的卷积特征来识别图像的复杂层次。
ConvNet的早期层负责提取低级特征,例如构成简单线条的像素。ConvNet的后续层将把这些线条连接在一起形成形状。这种从表面分析到深层分析的过程一直持续到ConvNet识别出动物、人脸和汽车等复杂形状。
当数据通过所有的卷积层后,进入CNN的密集连接部分。密集连接层是传统前馈神经网络的外观,一系列节点排列成层,彼此相连。数据经过这些密集连接的层,这些层学习卷积层提取的模式,这样网络就能够识别对象。