卷积神经网络是如何实现不变性特征提取的

图像特征

传统的图像特征提取(特征工程)主要是基于各种先验模型,通过提取图像关键点、生成描述子特征数据、进行数据匹配或者机器学习方法对特征数据二分类/多分类实现图像的对象检测与识别。卷积神经网络通过计算机自动提取特征(表示工程)实现图像特征的提取与抽象,通过MLP实现数据的回归与分类。二者提取的特征数据都具不变性特征。

卷积神经网络为什么能提取到图像特征,其关键在于卷积神经网络有两种不同类型的层 -卷积层(convolution layers/detection layers) -池化层(pooling layers)

卷积层

卷积层是一系列滤波器集合(filters set)、它的输出结果被称为特征映射(feature maps),每个feature map都一个filter在图像上卷积得到的输出。一般情况下都会输出结果加线性修正,对卷积层常用就是ReLU

这样做的好处是:

  1. 卷积是一个线性操作,我们需要一个非线性组合,否则两个卷积卷积层还不如一个卷积层
  2. 两个相反方向的边缘不应该被取消
  3. 使图像梯度值更加的稀疏、有助于提高反向传播的效果 假设灰度输入图像,有两个filter,卷积层生成过程如下所示:

假设灰度输入图像,有两个filter,卷积层生成过程如下所示:

膨胀卷积

通常我们常见的卷积层操作使用的filter都是基于连续邻近像素的,除了这种卷积filter之后另外还有一张卷积filter被称为膨胀卷积,其算子的分布更加的稀疏,图示如下:

膨胀卷积在不增加网络总参数的情况下,提升每个感受野的尺度大小。

1x1卷积

1x1的卷积首次使用是在Network In Network网络模型中,后来受到越来越多的关注,在一般情况下我们的卷积是2D的,1x1的卷积操作是毫无意义的,但是对卷积神经网络来说,它的卷积层是三维的,所以1x1的卷积操作是有意义的。

卷积层大小计算:

对于一个输入大小WxW的feature map,假设Filter的大小位FxF,卷积时填充边缘P个像素、卷积步长(stride)为S则输出的大小为:

在多数深度学习框架中支持两种输出大小计算:

padding = “same” 意味着使用填充边缘的方式,输出大小与输入的feature map大小保持不变 padding = “valid” 意味着不使用边缘填充,即P=0此时输出大小为:

池化层

在卷积层提取到的特征数据不具备空间不变性(尺度与迁移不变性特征),只有通过了池化层之后才会具备空间不变性特征。池化层是针对每个feature map进行池化操作,池化操作的窗口大小可以指定为任意尺寸,主要有两种类型的池化操作 -下采样池化(均值池化) -最大值池化

下采样池化

对每个窗口大小取均值,然后乘以标量beta加上我们增益偏置b的输出

最大值池化

无论是选择哪种池化方式都会输出一个新低分辨率feature map,多数时候这个过程中会包含一定的信息损失,所以卷积神经网络一般通过扩展深度(增加feature map的数量)来补偿。

重叠窗口与稀疏窗口 在进行池化的时候我们如果选择步长=1进行池化,通过这样的池化方式输出的结果我们称为重叠池化输出,它不利于特征的稀疏生成,重叠窗口池化与均值池化都有这样的缺点,所以经常采样的是最大值池化,同时不会进行窗口重叠,有实验结果表明,在卷积层保持相同feature map与参数的情况下,最大值池化的结果明显优于重叠池化与均值池化,而且网络的深度越深,两者之间的准确度差异越大。

总结

最终卷积神经网络经过池化层操作对单位像素迁移和亮度影响进行了校正,做到了图像的迁移与亮度不变性的特征提取、而且在池化过程中通过不断的降低图像分辨率,构建了图像的多尺度特征,所以还具备尺度空间不变性,完成了图像不变性特征提取工作。

原文发布于微信公众号 - OpenCV学堂(CVSCHOOL)

原文发表时间:2018-10-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

前Twitter资深工程师详解YOLO 2与YOLO 9000目标检测系统

AI研习社按:YOLO是Joseph Redmon和Ali Farhadi等人于2015年提出的第一个基于单个神经网络的目标检测系统。在今年CVPR上,Jose...

5516
来自专栏IT派

用Python实现机器学习算法——简单的神经网络

导读:Python 被称为是最接近 AI 的语言。最近一位名叫Anna-Lena Popkes的小姐姐在GitHub上分享了自己如何使用Python(3.6及以...

1070
来自专栏AI科技评论

深度 | 详解CVPR2017最佳论文提名的 YOLO 2与 YOLO 9000物体检测系统

AI 科技评论按:YOLO是Joseph Redmon和Ali Farhadi等人于2015年提出的第一个基于单个神经网络的目标检测系统。在今年CVPR上,Jo...

5037
来自专栏杂七杂八

matlab留出法实现

留出法(hold-out) 方法:直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T,即.在S上训练出模型后,用T来评估其作为测...

7129
来自专栏机器学习原理

深度学习——目标检测(1)什么是目标检测?RCNNRCNN的检测流程:Bounding-box回归

前言:深度学习在图像的应用中目标检测是最基本也是最常用的,下面介绍几种常见的目标检测算法或者模型

1752
来自专栏SIGAI学习与实践平台

反向传播算法推导-卷积神经网络

在SIGAI之前的公众号文章“反向传播算法推导-全连接神经网络”中,我们推导了全连接神经网络的反向传播算法。其核心是定义误差项,以及确定误差项的递推公式,再根据...

1053
来自专栏决胜机器学习

卷积神经网络(一)——卷积、边缘化与池化层

卷积神经网络(一) ——卷积、边缘化与池化层 (原创内容,转载请注明来源,谢谢) 一、概述 卷积神经网络网络(Convolutional Neural Netw...

69311
来自专栏算法修养

文本分类学习 (八)SVM 入门之线性分类器

SVM 和线性分类器是分不开的。因为SVM的核心:高维空间中,在线性可分(如果线性不可分那么就使用核函数转换为更高维从而变的线性可分)的数据集中寻找一个最优的超...

621
来自专栏null的专栏

简单易学的机器学习算法——神经网络之BP神经网络

一、BP神经网络的概念     BP神经网络是一种多层的前馈神经网络,其主要的特点是:信号是前向传播的,而误差是反向传播的。具体来说,对于如下的只含一个隐层的神...

3584
来自专栏企鹅号快讯

大牛教你使用7种卷积神经网络进行物体检测!

-欢迎加入AI技术专家社群>> 当我们讨论对图片进行预测时,到目前为止我们都是谈论分类。我们问过这个数字是0到9之间的哪一个,这个图片是鞋子还是衬衫,或者下面这...

39110

扫码关注云+社区

领取腾讯云代金券