卷积神经网络

一.发展不是一帆风顺的

1986 反向传播算法

1998 利用反向传播(BP)算法训练LeNet5网络,标志CNN面世

2006 Hinton提出深度学习的概念

2012 Hinton其学生Alex 在寝室利用一块GPU搭建了一个深度学习模型。

二.应用

图像分类

图像检索

目标检测

目标分割

图像描述

风格迁移

三.卷积神经网络中常见的全连接层,卷积层以及池化层

卷积神经网络(CNN)一般由输入层、卷积层、激活函数、池化层、全连接层组成,即INPUT(输入层)-CONV(卷积层)-RELU(激活函数)-POOL(池化层)-FC(全连接层)

3.1卷积层

目的:对图像进行特征提取

特性:局部感知、权值共享 滑动窗口在图像上滑动进行特征提取。

注:卷积核深度和输入特征层深度一致,输出特征矩阵channel和卷积核个数一致。

拓展:

卷积在图像处理领域被广泛的应用,像滤波、边缘检测、图片锐化等,都是通过不同的卷积核来实现的。在卷积神经网络中通过卷积操作可以提取图片中的特征,低层的卷积层可以提取到图片的一些边缘、线条、角等特征,高层的卷积能够从低层的卷积层中学到更复杂的特征,从而实现到图片的分类和识别。

反卷积也被称为转置卷积,反卷积其实就是卷积的逆过程。大家可能对于反卷积的认识有一个误区,以为通过反卷积就可以获取到经过卷积之前的图片,实际上通过反卷积操作并不能还原出卷积之前的图片,只能还原出卷积之前图片的尺寸。

卷积层输出值的计算

假设有一个55的图像,使用一个33的filter进行卷积,想得到一个3*3的Feature Map,如下所示:
在这里插入图片描述
为了清楚的描述卷积计算过程,我们首先对图像的每个像素进行编号,用Xi,j表示图像的第行第列元素;对filter的每个权重进行编号,用Wm,n表示第m行第n列权重,用Wb表示filter的偏置项;对Feature Map的每个元素进行编号,用ai,j表示Feature Map的第i行第j列元素;用f表示激活函数(这个例子选择relu函数作为激活函数)。然后,使用下列公式计算卷积:
在这里插入图片描述
例如,对于Feature Map左上角元素来说,其卷积计算方法为:
在这里插入图片描述
计算结果如下图所示:
在这里插入图片描述
接下来,Feature Map的元素的卷积计算方法为:
在这里插入图片描述
计算结果如下图所示:
在这里插入图片描述
可以依次计算出Feature Map中所有元素的值。下面的动画显示了整个Feature Map的计算过程:
在这里插入图片描述
注意:上面的计算过程中,步幅(stride)为1。步幅可以设为大于1的数。

前面我们已经讲了深度为1的卷积层的计算方法,如果深度大于1怎么计算呢?其实也是类似的。如果卷积前的图像深度为D,那么相应的filter的深度也必须为D。
在这里插入图片描述
以上就是卷积层的计算方法。这里面体现了局部连接和权值共享:每层神经元只和上一层部分神经元相连(卷积计算规则),且filter的权值对于上一层所有神经元都是一样的。对于包含两个333的fitler的卷积层来说,其参数数量仅有(333+1)*2=56个,且参数数量与上一层神经元个数无关。与全连接神经网络相比,其参数数量大大减少了。

3.2激活函数

引入非线性因素,使模型具备解决非线性问题的能力,使得神经网络可以更好地解决较为复杂的问题。

激活函数的定义及其相关概念

在ICML2016的一篇论文Noisy Activation Functions中,作者将激活函数定义为一个几乎处处可微的 h : R → R 。
Noisy Activation Functions下载链接地址 https://link.zhihu.com/?target=https%3A//arxiv.org/pdf/1603.00391v3.pdf
在这里插入图片描述
在实际应用中,我们还会涉及到以下的一些概念:
a.饱和
当一个激活函数h(x)满足

limn→+∞h′(x)=0limn→+∞h′(x)=0

时我们称之为右饱和。

当一个激活函数h(x)满足

limn→−∞h′(x)=0limn→−∞h′(x)=0

时我们称之为左饱和。当一个激活函数,既满足左饱和又满足又饱和时,我们称之为饱和。

b.硬饱和与软饱和
对任意的xx,如果存在常数cc,当x>cx>c时恒有 h′(x)=0h′(x)=0则称其为右硬饱和,当x<cx<c时恒 有h′(x)=0h′(x)=0则称其为左硬饱和。若既满足左硬饱和,又满足右硬饱和,则称这种激活函数为硬饱和。但如果只有在极限状态下偏导数等于0的函数,称之为软饱和。

常见:

relu激活函数:缺点是在反向传播过程中有一个非常大的梯度经过时,可能导致权重分布中心小于0,导致该出的梯度始终为0,反向传播无法更新权重,即进入失活状态。
在这里插入图片描述
在这里插入图片描述
sigmoid激活函数:饱和时梯度非常小,故网络层数较深时会出现梯度消失。

在这里插入图片描述
优点:
1.Sigmoid函数的输出映射在(0,1)(0,1)之间,单调连续,输出范围有限,优化稳定,可以用作输出层。
2.求导容易。

缺点:
1.由于其软饱和性,容易产生梯度消失,导致训练出现问题。
2.其输出并不是以0为中心的。

tanh函数:现在,比起Sigmoid函数我们通常更倾向于tanh函数。

函数位于[-1, 1]区间上,对应的图像是:
在这里插入图片描述
优点:

1.比Sigmoid函数收敛速度更快。

2.相比Sigmoid函数,其输出以0为中心。

缺点:

还是没有改变Sigmoid函数的最大问题——由于饱和性产生的梯度消失。

3.3池化层

目的:对特征图进行稀疏处理,减少数据运算量。

通俗地说就是对输入的特征图进行压缩,一方面使特征图变小,简化网络计算复杂度;一方面进行特征压缩,提取主要特征,如下图:
在这里插入图片描述
分为最大池化、平均池化

特点:没有训练参数;只改变特征图的高度和宽度,不改变channel;一般poolsize和stride相同。
在这里插入图片描述
采用一个2*2的filter,max pooling是在每一个区域中寻找最大值,这里的stride=2,最终在原特征图中提取主要特征得到右图。

(Avy pooling现在不怎么用了(平均池化层),方法是对每一个22的区域元素求和,再除以4,得到主要特征),而一般的filter取22,最大取3*3,stride取2,压缩为原来的1/4.

注意:这里的pooling操作是特征图缩小,有可能影响网络的准确度,因此可以通过增加特征图的深度来弥补(这里的深度变为原来的2倍)。

3.4全连接层

全连接就是把局部特征重新通过权值矩阵组装成完整的特征图,即连接所有的特征,将输出值送给分类器(如softmax分类器)。

总的一个结构大致如下:
在这里插入图片描述
另外:CNN网络中前几层的卷积层参数量占比小,计算量占比大;而后面的全连接层正好相反,大部分CNN网络都具有这个特点。因此我们在进行计算加速优化时,重点放在卷积层;进行参数优化、权值裁剪时,重点放在全连接层。

参考:

卷积神经网络(CNN)中,卷积层、激活函数、池化层、全链接层术语解析_wangyuxi__的博客-CSDN博客_卷积神经网络激活函数 https://link.zhihu.com/?target=https%3A//blog.csdn.net/wangyuxi__/article/details/82714647%3Fops_request_misc%3D%25257B%252522request%25255Fid%252522%25253A%252522162268549316780262536426%252522%25252C%252522scm%252522%25253A%25252220140713.130102334…%252522%25257D%26request_id%3D162268549316780262536426%26biz_id%3D0%26utm_medium%3Ddistribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-6-82714647.first_rank_v2_pc_rank_v29%26utm_term%3D%25E5%258D%25B7%25E7%25A7%25AF%25E7%25A5%259E%25E7%25BB%258F%25E7%25BD%2591%25E7%25BB%259C%25E7%259A%2584%25E6%25BF%2580%25E6%25B4%25BB%25E5%2587%25BD%25E6%2595%25B0%26spm%3D1018.2226.3001.4187
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值