CNN理解

DS-CNN计算实例
http://www.elecfans.com/d/783341.html汉语解释DS-CNN的优点说白了就是将标准分解使得计算量和参数少了;
1.边界检测示例
假如你有一张如下的图像,你想让计算机搞清楚图像上有什么物体,你可以做的事情是检测图像的垂直边缘和水平边缘。
在这里插入图片描述
如下是一个66的灰度图像,构造一个33的矩阵,在卷积神经网络中通常称之为filter,对这个66的图像进行卷积运算,以左上角的-5计算为例
3
1+00+1-1+11+50+8*-1+21+70+2*-1 = -5
其它的以此类推,让过滤器在图像上逐步滑动,对整个图像进行卷积计算得到一幅44的图像。
在这里插入图片描述
为什么这种卷积计算可以得到图像的边缘,下图0表示图像暗色区域,10为图像比较亮的区域,同样用一个3
3过滤器,对图像进行卷积,得到的图像中间亮,两边暗,亮色区域就对应图像边缘。
在这里插入图片描述
通过以下的水平过滤器和垂直过滤器,可以实现图像水平和垂直边缘检测。
在这里插入图片描述
以下列出了一些常用的过滤器,对于不同的过滤器也有着不同的争论,在卷积神经网络中把这些过滤器当成我们要学习的参数,卷积神经网络训练的目标就是去理解过滤器的参数。
在这里插入图片描述
2. padding
在上部分中,通过一个33的过滤器来对66的图像进行卷积,得到了一幅44的图像,假设输出图像大小为nn与过滤器大小为ff,输出图像大小则为(n−f+1)∗(n−f+1)此刻的步长是xy步长都是1且未padding。
这样做卷积运算的缺点是,卷积图像的大小会不断缩小,另外图像的左上角的元素只被一个输出所使用,所以在图像边缘的像素在输出中采用较少,也就意味着你丢掉了很多图像边缘的信息,为了解决这两个问题,就引入了padding操作,也就是在图像卷积操作之前,沿着图像边缘用0进行图像填充。对于3
3的过滤器,我们填充宽度为1时,就可以保证输出图像和输入图像一样大。
在这里插入图片描述
padding的两种模式:
Valid:no padding
输入图像nn,过滤器ff,输出图像大小为:(n−f+1)∗(n−f+1)此时输出图像和输入图像一样大

3.卷积步长
卷积步长是指过滤器在图像上滑动的距离,前两部分步长都默认为1,如果卷积步长为2,卷积运算过程为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下边的n+2p是充0后的维度,(充0是一圈都充0)p为充0的圈数,一般情况下就充1圈即p=1,如果充多圈p就要变了不再是1,根据实际情况定p的值不过一般都是一圈即p=1;在这里插入图片描述
在这里插入图片描述

filter的维度与输入是一样的,即输入维度是多少filter也是多少即输入3维filter也是三维并不是说输入是mnpfilter也是mnp只是空间维度一样,至于多少个filter就是个人定义了;

另外一个问题是,如果我们在不仅仅在图像总检测一种类型的特征,而是要同时检测垂直边缘、水平边缘、45度边缘等等,也就是多个过滤器的问题。如果有两个过滤器,最终生成图像为442的立方体,这里的2来源于我们采用了两个过滤器。如果有10个过滤器那么输出图像就是4410的立方体。
在这里插入图片描述
5.单层卷积网络
通过上一节的讲述,图像通过两个过滤器得到了两个44的矩阵,在两个矩阵上分别加入偏差b1b1和b2b2,然后对加入偏差的矩阵做非线性的Relu变换,得到一个新的44矩阵,这就是单层卷积网络的完整计算过程。用公式表示:
在这里插入图片描述
在这里插入图片描述
如果有10个过滤器参数个数有多少个呢?
每个过滤器都有333+1=28个参数,333为过滤器大小,1是偏差系数,10个过滤器参数个数就是2810=280个。不论输入图像大小参数个数是不会发生改变的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
卷积神经网络层的类型:
卷积层(convolution,conv)
池化层(pooling,pool)
全连接层(Fully connected,FC)
7.池化层
最大池化(Max pooling)
最大池化思想很简单,以下图为例,把4
4的图像分割成4个不同的区域,然后输出每个区域的最大值,这就是最大池化所做的事情。其实这里我们选择了22的过滤器,步长为2。在一幅真正的图像中提取最大值可能意味着提取了某些特定特征,比如垂直边缘、一只眼睛等等。
在这里插入图片描述
以下是一个过滤器大小为3
3,步长为1的池化过程,具体计算和上面相同,最大池化中输出图像的大小计算方式和卷积网络中计算方法一致,如果有多个通道需要做池化操作,那么就分通道计算池化操作。
在这里插入图片描述
平均池化和最大池化唯一的不同是,它计算的是区域内的平均值而最大池化计算的是最大值。在日常应用使用最多的还是最大池化。
在这里插入图片描述
池化的超参数:步长、过滤器大小、池化类型最大池化or平均池化

8.卷积神经网络示例
以下是一个完整的卷积神经网络,用于手写字识别,这并不是一个LeNet-5网络,但是设计令该来自于LeNet-5。
在这里插入图片描述
网络各层参数个数表:
在这里插入图片描述
每个过滤器(不算个数)的第三个参数即通道数都与输入的第三个参数一样被称为通道数,只有前两个是自己定义的,当输入是二维的也看成三维此时第三个参数是1;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值