卷积层提取特征

简介: 卷积层提取特征

问题

传统机器学习通过特征工程提取特征,作为Input参数进行输入,从而拟合一个相对合适的w参数,而CNN利用卷积层感知局部特征,然后更高层次对局部进行综合操作,从而得到全局信息,池化层层提取主要特征,从而自动提取特征。


方法

1、池化层的理解

pooling池化的作用则体现在降采样:保留显著特征、降低特征维度,增大kernel的感受野。另外一点值得注意:pooling也可以提供一些旋转不变性。

池化层可对提取到的特征信息进行降维,一方面使特征图变小,简化网络计算复杂度并在一定程度上避免过拟合的出现;一方面进行特征压缩,提取主要特征。最大池采样在计算机视觉中的价值体现在两个方面:(1)、它减小了来自上层隐藏层的计算复杂度;(2)、这些池化单元具有平移不变性,即使图像有小的位移,提取到的特征依然会保持不变。由于增强了对位移的鲁棒性,这样可以忽略目标的倾斜、旋转之类的相对位置的变化,以此提高精度,最大池采样方法是一个高效的降低数据维度的采样方法。需要注意的是:这里的pooling操作是特征图缩小,有可能影响网络的准确度,因此可以通过增加特征图的深度来弥补(这里的深度变为原来的2倍)。

在CNN网络中卷积池之后会跟上一个池化层,池化层的作用是提取局部均值与最大值,根据计算出来的值不一样就分为均值池化层与最大值池化层,一般常见的多为最大值池化层。池化的时候同样需要提供filter的大小、步长。

tf.nn.max_pool(value, ksize, strides, padding, name=None)

参数是四个,和卷积很类似:

第一个参数value:需要池化的输入,一般池化层接在卷积层后面,所以输入通常是feature map,依然是[batch, height, width, channels]这样的shape

第二个参数ksize:池化窗口的大小,取一个四维向量,一般是[1, height, width, 1],因为我们不想在batch和channels上做池化,所以这两个维度设为了1

第三个参数strides:和卷积类似,窗口在每一个维度上滑动的步长,一般也是[1, stride,stride, 1]

第四个参数padding:和卷积类似,可以取’VALID’ 或者’SAME’

返回一个Tensor,类型不变,shape仍然是[batch, height, width, channels]这种形式

2、padding的理解

之前在讨论卷积神经网络的时候,我们是使用filter来做元素乘法运算来完成卷积运算的。目的是为了完成探测垂直边缘这种特征。但这样做会带来两个问题。

卷积运算后,输出图片尺寸缩小;

越是边缘的像素点,对于输出的影响越小,因为卷积运算在移动的时候到边缘就结束了。中间的像素点有可能会参与多次计算,但是边缘像素点可能只参与一次。所以我们的结果可能会丢失边缘信息。为了解决这个问题,我们引入padding, 什么是padding呢,就是我们认为的扩充图片, 在图片外围补充一些像素点,把这些像素点初始化为0.

padding的用途:

  (1)保持边界信息,如果没有加padding的话,输入图片最边缘的像素点信息只会被卷积核操作一次,但是图像中间的像素点会被扫描到很多遍,那么就会在一定程度上降低边界信息的参考程度,但是在加入padding之后,在实际处理过程中就会从新的边界进行操作,就从一定程度上解决了这个问题。

  (2)可以利用padding对输入尺寸有差异图片进行补齐,使得输入图片尺寸一致。

  (3)卷积神经网络的卷积层加入Padding,可以使得卷积层的输入维度和输出维度一致。

  (4)卷积神经网络的池化层加入Padding,一般都是保持边界信息和

padding模式:SAME和VALID

SAME:是填充,填充大小, p = (f-1)/2;VALID:是不填充,直接计算输出。


结语

卷积神经网络由卷积核来提取特征,通过池化层对显著特征进行提取,经过多次的堆叠,得到比较高级的特征,最后可以用分类器来分类。这是CNN的一个大概流程,其具体实现的结构是丰富多样的,但总的思想是统一的

目录
相关文章
|
机器学习/深度学习
普通卷积、分组卷积和深度分离卷积概念以及参数量计算
普通卷积、分组卷积和深度分离卷积概念以及参数量计算
1239 0
普通卷积、分组卷积和深度分离卷积概念以及参数量计算
|
6月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进 - 注意力机制】SENetV2: 用于通道和全局表示的聚合稠密层,结合SE模块和密集层来增强特征表示
【YOLOv8改进 - 注意力机制】SENetV2: 用于通道和全局表示的聚合稠密层,结合SE模块和密集层来增强特征表示
|
5月前
|
机器学习/深度学习 编解码 计算机视觉
CNN 中卷积层和池化层的作用
【8月更文挑战第15天】
392 0
|
8月前
|
机器学习/深度学习 计算机视觉 Ruby
【池化层】基础回顾:带你认识神经网络中的池化层
【池化层】基础回顾:带你认识神经网络中的池化层
865 0
【池化层】基础回顾:带你认识神经网络中的池化层
|
机器学习/深度学习 存储 人工智能
用CNN做基础模型,可变形卷积InternImage实现检测分割新纪录!
用CNN做基础模型,可变形卷积InternImage实现检测分割新纪录!
244 0
|
机器学习/深度学习 数据挖掘 计算机视觉
卷积神经网络基础--输入层、卷积层
局部连接和权值共享是卷积层的两个最主要的特征:为提取数据的特征信息,需把数据中潜在的具有相关性的信息抽象化,便于进行以上两个特征操作。
407 0
卷积神经网络基础--输入层、卷积层
|
机器学习/深度学习 存储 编解码
分组卷积/转置卷积/空洞卷积/反卷积/可变形卷积/深度可分离卷积/DW卷积/Ghost卷积/
分组卷积/转置卷积/空洞卷积/反卷积/可变形卷积/深度可分离卷积/DW卷积/Ghost卷积/
分组卷积/转置卷积/空洞卷积/反卷积/可变形卷积/深度可分离卷积/DW卷积/Ghost卷积/
|
机器学习/深度学习
卷积模型分类图片
卷积层是一组平行的特征图(feature map),它通过在输入图像上滑动不同的卷积核并运行一定的运算而组成。此外,在每一个滑动的位置上,卷积核与输入图像之间会运行一个元素对应乘积并求和的运算以将感受野内的信息投影到特征图中的一个元素。这一滑动的过程可称为步幅 ,步幅是控制输出特征图尺寸的一个因素。卷积核的尺寸要比输入图像小得多,且重叠或平行地作用于输入图像中,一张特征图中的所有元素都是通过一个卷积核计算得出的,也即一张特征图共享了相同的权重和偏置项。
104 0
|
算法 固态存储 vr&ar
FPN(特征金字塔)结构笔记
FPN(特征金字塔)结构笔记
1039 0
FPN(特征金字塔)结构笔记
|
机器学习/深度学习 数据可视化 TensorFlow
ResNext架构解析:深度神经网络的聚合残差变换
我们提出了一种用于图像分类的简单、高度模块化的网络架构。我们的网络是通过重复一个构建块来构建的,该构建块聚合了一组具有相同拓扑的转换。我们简单的设计产生了一个同构的多分支架构,只需设置几个超参数。这个策略**暴露了一个新的维度,我们称之为“基数”(转换集的大小)**,作为除了深度和宽度维度之外的重要因素。在 ImageNet-1K 数据集上,我们凭经验表明,即使在保持复杂性的限制条件下,增加基数也能够提高分类精度。此外,当我们增加容量时,增加基数比更深或更宽更有效。我们的模型名为 ResNeXt,是我们进入 ILSVRC 2016 分类任务的基础,在该任务中我们获得了第二名。我们在 Image
542 0
ResNext架构解析:深度神经网络的聚合残差变换