卷积神经网络

卷积神经网络

第一章 机器学习是什么
第二章 深度学习是什么
第三章 前馈神经网络
第四章 卷积神经网络



前言

卷积网络主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。由于它的特征检测层通过训练数据进行学习,所以在使用卷积网络时,避免了显式的特征抽取,而隐式地从训练数据中进行学习;再者由于同一特征映射面上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于神经元彼此相连网络的一大优势。卷积神经网络以其局部权值共享的特殊结构在语音识别和图像处理方面有着独特的优越性,其布局更接近于实际的生物神经网络,权值共享降低了网络的复杂性,特别是多维输入向量的图像可以直接输入网络这一特点避免了特征提取和分类过程中复杂的数据重建。

卷积网络特点

特点一:卷积网络有至少一个卷积层,用来提取特征。

特点二:卷积网络的卷积层通过权值共享的方式进行工作,大大减少权值w的数量,使得在训练中在达到同样识别率的情况下收敛速度明显快于全连接BP网络。


什么是卷积?

在泛函分析中,卷积( convolution)是一种函数的定义。它是通过两个函数f和g生成第三个函数的一种数学算子,表征函数f与g经过翻转和平移的重叠部分的面积。

卷积的数学定义如下:

在这里插入图片描述

那么如何理解上面的数学公式呢?这个积分式里面ft)g(x-t)是什么呢?其实是这样,f(t)先不动,g(-)相当于g(t)函数的图像沿着y轴(t=0)做了一次翻转。g(x-t)相当于g(-t)的整个图像沿着t轴进行了平移,向右平移了x个单位。

做过这个变换之后,可以想象这一共是有两个函数,一个是固定的函数,一个是滑动的函数,求它们相乘之后围起来的面积,滑动的变量就是x。

假设两个函数的图像如下:

在这里插入图片描述

f(t) 就是一个三角,在第二象限是一条过(-1,0)和(0,1)点的线段,在第一象限是一条过(0,1)和(1,0)点的线段。

函数g(t)是一个正方的脉冲波,t在[1,2]上有定义,在这段区间里g(t)=t。函数g(x-t)是左侧的这个做过翻转的图形,图示中还分别有x=—2,x=-1,x=0,x=1,x=2时的图像。

在这里插入图片描述
我们观察到,在这个不定积分完毕后,会形成两个函数叠加的部分,其中x是一个变量。假设x为0,或者我们当x压根不存在,那么就是t)和g(-t)这两个函数相乘后和y=0(t轴)围成的面积。


卷积核

在这里插入图片描述
卷积核的表达式为:

在这里插入图片描述
其中x为输入的特征图,w为卷积核的数值,如动图中的浅紫色部分,b为偏置项。

把浅紫色的方框操作从左到右,从上到下每次移动一个方格,就相当于前面我们说的(t)和g(x-t)两个函数通过x变化来滑动一样做这样一个卷积操作,那么右侧的Feature Map 的每个点的值也都能对应产生结果了。

这就是卷积层工作的大致方式。至于w和b在初始化之后,也是通过一轮一轮的训练,在降低损失函数的目的下不断变化而学习到的,而不是我们指定出来的。


填充(Padding)

Padding是指用多少个像素单位来填充输入图像(向量)的边界。就像图上所画,在这四周的区域里都进行 Padding,通常都是填充0值。

在这里插入图片描述

为什么要进行填充?

1.保持边界信息。因为如果不加Padding 的话,最边缘的像素点信息其实仅仅被卷积核扫描了一遍,而图像中间的像素点信息会被扫描多遍,在一定程度上等于降低了边界上信息的参考程度。Padding后就可以在一定程度上解决这个问题。在实际处理的过程中肯定是Padding了一些0值以后,再从Padding后的新边界开始扫描。

2.如果输入的图片尺寸有差异,可以通过Padding来进行补齐,使得输入的尺寸一致,以免频繁调整卷积核和其他层的工作模式。

池化

常见的池化层处理有两种方式:一种叫Max Pooing,一种叫Mean Pooling(也叫Average Pooling),顾名思义,一个做了最大化,一个做了平均化。除此之外还有Chunk-Max Pooling、Stochastic Pooling 等其他一些池化手段。

在这里插入图片描述
(图片来源:图片参考地址

Max Pooling就是在前面输出过来的数据上做一个取最大值的处理,比如以 Stride=2的2×2为Max Pooling Filter(滤波器,我们就理解为跟卷积类似的特征处理就好了)之后,左上角就出现了这样的变化。临近的4个点取一个最大值成为Max Pooling层中的储存值。

在这里插入图片描述
(图片来源:图片参考地址

Mean Pooling就是在前面输出过来的数据上做一个取平均值的处理,比如以 Stride=2的2×2为Mcan Pooling Filter之后,左上角就出现了这样的变化。临近的4个点取平均值输出到Mean Pooling中保存起来,如图所示。

池化的主要作用:

第一,它又进行了一次特征提取,所以肯定是能够减小下一层数据的处理量的。

第二,由于这个特征的提取,能够有更大的可能性进一步获取更为抽象的信息,从而防止过拟合,或者说提高一定的泛化性。

第三,由于这种抽象性,所以能够对输入的微小变化产生更大的容忍,也就是保持其不变性。这里的容忍包括图形的少量平移、旋转以及缩放等变化。


总结

卷积神经网络最重要的核心部分就是卷积核。在很多复杂的应用中,对于同一个输入的向量由不同尺寸的卷积核扫描,产生不同的特征描述Feature Map输入到后端,也可能在不同的层用不同尺寸的卷积核去提取特征。

卷积神经网络的特征就是有卷积层,进而带来的好处就是收敛速度比较快并且泛化能力会显得比较好。卷积核的优良特性使得它在很多网络中都有使用,它可能会由于模型上的需要仅仅出现在一个网络中的某几层的位置,也可能会在一个模型的多层中出现,总而言之应用起来还是非常灵活的。而是不是用了卷积核的网络都会被称作卷积神经网络这个倒是未必,至少很多网络由于其中应用了许多其他的结构而使得网络体现出来很多更为独特的特性的时候,命名时会更倾向使用标新立异的方式,后面我们看看深度残差网络就知道了。


本文参考文献:《白话讲深度学习与Tensorflow》高扬、卫峥 著

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值