1 .特征提取
在了解卷积的细节之前,让我们先来讨论一下网络中这些层的用途。 下面我们来看一下如何使用这三种操作、卷积、ReLU和最大池化来实现特征提取过程。
数据库特征提取包括三个基本操作:
检测对图像进行过滤的(卷积滤波器图像中的这个特征) ReLU )压缩图像以增强功能)的最大池化)下图展示了这个过程。 可以看出这三种操作如何分离原始图像的特定特征。
网络通常在一个图像上并行执行多个提取。 在现代的convnet中,在末端的最下层生成1000个以上独特的视觉特征的情况并不少见。
2 .过滤(过滤器) )。
卷积层执行滤波步骤。 在Keras模型中,可以按如下方式定义卷积层:
这些参数可以通过理解权重和激活的关系来理解。
(1)权重) )。
convnet在训练中学习的权重主要包含在卷积层中。 这些权重称为核(kernels )。 可以将它们表示为数组。
内核通过扫描图像并生成像素值的加权和来工作。 这样,内核就像偏振光滤镜一样工作,不会强调或强调特定的信息模式。
内核定义卷积层如何连接到后面的层。 的内核将输出中的每个神经元连接到输入中的9个神经元。 通过使用kernel_size设置内核的维数,可以教convnet如何形成这些连接。 大多数情况下,内核的维数为奇数的——。 例如,由于kernel _ size=(3,3 )或(5,5 ) ——,因此中心只有一个像素,但这不是必须的。
卷积层中的内核决定了将创建哪些特征。 在培训过程中,convnet试图学习解决分类问题所需的特性。 这意味着要找到最适合内核的值。
)2)激活
网络中的特征映射称为激活。 对图像应用滤波器时的结果。包含内核提取的视觉特征。 以下是一些内核和它们生成的特征图。
通过内核中的数值阵列可以了解所创建的特征映射的类型。 卷积通常在其输入中强调的内容与内核中的正数形式一致。 的左核和中核均过滤水平形状。
filters参数允许您指定要在卷积层中作为输出创建的特征映射的数量。
用ReLU检测
过滤后,特征激活函数被映射。 整流函数的图表如下所示。
与整流器连接的神经元称为整流线性单元(rectified linear unit )。 因此,整流函数也可以称为ReLU激活,甚至称为ReLU函数。
虽然可以在自己的激活层中定义ReLU激活,但在大多数情况下,必须将其作为Conv2D的激活函数包括在内。
可以将激活函数看作是基于某种重要度的测量值来评价像素值。 ReLU激活时负值并不重要,因此将其设置为0。 “所有不重要的东西都同样不重要。 ”)
这里是上面的relu APP的特征图。 注意如何成功地分离了特性。
和其他激活函数一样,ReLU函数是非线性的。 本质上,这意味着网络中所有层的整体效果都不同于只需要将这些效果相加即可获得的效果。 非线性保证了特征深入网络时以有趣的方式结合在一起。
4 .示例
在本例中,为了更好地理解卷积网络在“背后”发生了什么,我们将自己提取。
TensorFlow在其tf.nn模块中包含了由神经网络执行的许多一般操作。 使用conv2d和relu。 这些只是Keras层的函数版本。
现在,功能图已经绘制完毕。 这样的图片是为了解决分类问题。 有些特征可能具有汽车的特征,但可以想象其他特征具有卡车的特征。 convnet在培训中的作用是创建一个内核来查找这些特性。