玖叶教程网

前端编程开发入门

卷积与ReLU(卷积与乘积运算规则)

1.特征提取

在我们深入了解卷积的细节之前,让我们先讨论一下网络中这些层的用途。我们将看到如何使用这三种操作(卷积、ReLU和最大池化)来实现特征提取过程。

数据库执行的特征提取包括三个基本操作:

  • 为特定特征过滤图像(卷积)
  • 在过滤图像中检测该特征(ReLU)
  • 压缩图像以增强功能(最大池化)

下一个图说明了这个过程。你可以看到这三个操作如何能够分离原始图像的某些特定特征。

通常,网络将在单个图像上并行执行多个提取。在现代convnet中,基层的最后一层生成1000多个独特的视觉特征并不少见。

2.过滤(Filter)

卷积层执行过滤步骤。可以在Keras模型中定义一个卷积层,如下所示:

我们可以通过理解权重和激活的关系来理解这些参数。

(1)权重(Weights)

convnet在训练期间学习的权重主要包含在其卷积层中。这些权重我们称之为核(kernels)。我们可以将它们表示为数组:

内核通过扫描图像并产生像素值的加权和来操作。这样,内核的行为就有点像偏光镜,强调或不强调某些信息模式。

内核定义了卷积层如何连接到后面的层。上面的内核将把输出中的每个神经元连接到输入中的9个神经元。通过使用kernel_size设置内核的维数,你可以告诉convnet如何形成这些连接。大多数情况下,内核的维数都是奇数——比如kernel_size=(3,3)或(5,5)——因此只有一个像素位于中心,但这不是必需的。

卷积层中的内核决定了它创建什么样的特征。在训练过程中,convnet尝试学习解决分类问题所需的特性。这意味着为内核找到最佳值。

(2)激活

我们称网络中的特征映射为激活。它们是当我们对图像应用过滤器时的结果;它们包含内核提取的视觉特征。下面是一些内核与它们生成的特征图。

从内核中的数字模式,可以看出它创建的特征映射的种类。通常,卷积在其输入中强调的内容将与内核中正数的形状相匹配。上面的左核和中核都将过滤水平形状。

使用filters参数,可以告诉卷积层要创建多少个特征映射作为输出。

3.用ReLU检测

过滤后,特征激活函数映射出来。整流函数的图形如下:

连接整流器的神经元称为整流线性单元(rectified linear unit)。因此,我们也可以将整流函数称为ReLU激活,甚至称为ReLU函数。

ReLU激活可以在它自己的激活层中定义,但大多数情况下,您只需要将它作为Conv2D的激活函数来包含。

你可以将激活函数视为根据某种重要性度量对像素值进行评分。ReLU激活表示负值不重要,因此将它们设置为0。(“一切不重要的都同样不重要。”)

这里是上面ReLU应用的特征图。注意它是如何成功地隔离特性的。

与其他激活函数一样,ReLU函数是非线性的。从本质上说,这意味着网络中所有层的总体效果与仅将这些效果相加得到的效果不同。非线性确保了特征在深入网络时会以有趣的方式结合起来。

4.例子

在本例中,我们将自己进行提取,以便更好地理解卷积网络在“幕后”做什么。


TensorFlow在其tf.nn模块中包含了许多由神经网络执行的常见操作。我们将使用conv2d和relu。这些只是Keras层的函数版本。

现在我们已经创建了一个功能图!像这样的图像用来解决分类问题的。我们可以想象,某些特征可能更具有汽车的特征,而另一些特征则更具有卡车的特征。convnet在训练期间的任务是创建能够找到这些特征的内核。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言