卷积层提取特征

简介: 卷积层提取特征

问题

传统机器学习通过特征工程提取特征,作为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的一个大概流程,其具体实现的结构是丰富多样的,但总的思想是统一的

目录
相关文章
|
6月前
|
机器学习/深度学习 算法 计算机视觉
卷积神经网络中的卷积层,如何提取图片的特征?
卷积神经网络中的卷积层,如何提取图片的特征?
|
6月前
|
机器学习/深度学习 计算机视觉
卷积神经网络中池化层的概念介绍
卷积神经网络中池化层的概念介绍
|
机器学习/深度学习
普通卷积、分组卷积和深度分离卷积概念以及参数量计算
普通卷积、分组卷积和深度分离卷积概念以及参数量计算
1190 0
普通卷积、分组卷积和深度分离卷积概念以及参数量计算
|
3月前
|
机器学习/深度学习 编解码 计算机视觉
CNN 中卷积层和池化层的作用
【8月更文挑战第15天】
117 0
|
4月前
|
编解码 计算机视觉 网络架构
【YOLOv10改进- 特征融合NECK】BiFPN:加权双向特征金字塔网络
YOLOv10专栏探讨了目标检测的效率提升,提出BiFPN,一种带加权和自适应融合的双向特征金字塔网络,优化了多尺度信息传递。EfficientDet系列利用这些创新在效率与性能间取得更好平衡,D7模型在COCO测试集上达到55.1 AP。YOLOv8引入MPDIoU,结合BiFPN学习分支权重,提高检测精度。详情见[YOLOv10 创新改进](https://blog.csdn.net/shangyanaf/category_12712258.html)和相关文章。
|
6月前
|
机器学习/深度学习 计算机视觉 Ruby
【池化层】基础回顾:带你认识神经网络中的池化层
【池化层】基础回顾:带你认识神经网络中的池化层
531 0
【池化层】基础回顾:带你认识神经网络中的池化层
|
机器学习/深度学习 编解码 算法
【Pytorch神经网络理论篇】 32 PNASNet模型:深层可分离卷积+组卷积+空洞卷积
PNASNet模型是Google公司的AutoML架构自动搜索所产生的模型,它使用渐进式网络架构搜索技术,并通过迭代自学习的方式,来寻找最优网络结构。即用机器来设计机器学习算法,使得它能够更好地服务于用户提供的数据。该模型在ImageNet数据集上Top-1准确率达到82.9%,Top-5准确率达到96。2%,是目前最好的图片分类模型之一。
206 0
|
机器学习/深度学习 数据挖掘 计算机视觉
卷积神经网络基础--输入层、卷积层
局部连接和权值共享是卷积层的两个最主要的特征:为提取数据的特征信息,需把数据中潜在的具有相关性的信息抽象化,便于进行以上两个特征操作。
381 0
卷积神经网络基础--输入层、卷积层
|
机器学习/深度学习 存储 编解码
分组卷积/转置卷积/空洞卷积/反卷积/可变形卷积/深度可分离卷积/DW卷积/Ghost卷积/
分组卷积/转置卷积/空洞卷积/反卷积/可变形卷积/深度可分离卷积/DW卷积/Ghost卷积/
分组卷积/转置卷积/空洞卷积/反卷积/可变形卷积/深度可分离卷积/DW卷积/Ghost卷积/
|
机器学习/深度学习
卷积模型分类图片
卷积层是一组平行的特征图(feature map),它通过在输入图像上滑动不同的卷积核并运行一定的运算而组成。此外,在每一个滑动的位置上,卷积核与输入图像之间会运行一个元素对应乘积并求和的运算以将感受野内的信息投影到特征图中的一个元素。这一滑动的过程可称为步幅 ,步幅是控制输出特征图尺寸的一个因素。卷积核的尺寸要比输入图像小得多,且重叠或平行地作用于输入图像中,一张特征图中的所有元素都是通过一个卷积核计算得出的,也即一张特征图共享了相同的权重和偏置项。
91 0