卷积神经网络的基本内容

概念:由多个卷积层和池化层组成,卷积层负责对输入进行扫描以生成更抽象的特征表示,池化层对这些特征表示进行过滤,保留最关键的特征信息。

概念图如下:
img

卷积

概念:卷积是数学分析中的一种积分变化。(百度百科)

定义:卷积是两个变量在某范围内相乘后求和的结果。(百度百科)

看到上面的概念和定义,我相信大家都不不知道在是啥意思,说实话,让我看,我也看不出来。

卷积,只需要直到它是一种运算就好了,接下来,我们就看一下它是怎么进行计算的。

进行卷积操作,需要有两个部分:

  • 需要进行卷积的矩阵。(m×n)

  • 卷积核(也是矩阵)。(x×y)

在这里插入图片描述

从刚刚看到的定义,卷积就是两个变量在某个范围内相乘求和。从上图中,我们可知

两个变量:矩阵、卷积核

某个范围:卷积核核矩阵重叠的范围(上图用颜色进行表示)

所以它的计算结果就是:

在这里插入图片描述

聪明的小伙伴发现,计算结果不对啊计算结果怎么是一个矩阵?

原因1:因为矩阵和卷积核进行卷积操作还需要加上一个偏置项(一般是0或1)

原因2:你要让你的卷积核滑动起来,从左到右,从上到下,把你的矩阵全部计算一下,获得一个新的矩阵。

要往下看(下面的公式有限制条件哦!)

新矩阵的高:H = m - x + 1

新矩阵的宽:W = n - y + 1

这样做有什么好处呢?

  • 保留了输入矩阵之间的空间位置关系,能够提取到位置信息中包含的特征模式
  • 卷积核可以在整个矩阵上滑动,不同区域共用一个卷积核,与矩阵尺寸无关。

这用在矩阵上干啥呢?

当然不是用在普通的矩阵上面啦,对一堆数字矩阵进行卷积,获得的还是一个数字矩阵。

那图像呢?

图像的灰度图是由一堆灰度值像素点构成的,彩色图像多了几个通道,哎嘿,矩阵不就出来了?

为什么要对图像进行卷积?

当然是为了更好的提取特征啦

全连接层,把图像转化成一维向量,破坏了图像在空间位置上的完整性,空间位置上的特征模式一定程度上遭受了损坏。

填充

假设你对一个图像进行卷积操作,不想让它的大小发生变化,这时候我们就可以考虑一下对原图像进行填充操作了。

在这里插入图片描述

一般来说,填充采取等量填充,左边填了多少,右边也填多少。但是用上面的卷积核(2×2)计算,发现,不对啊,这次它的大小变化了,还变大了。

这里说明一下:卷积核通常采用奇数大小的卷积核(1×1)、(3×3)、(5×5)…

啥时候卷积后的图像尺寸与原图保持不变呢?

卷积核的长:H = (m - 1)/2

卷积核的宽:H = (n - 1)/2

步幅

我们把卷积核在矩阵中一次移动的距离称之为步幅。

首先看一下之前的图片

在这里插入图片描述

为啥卷积的结果一定是3×3呢?如下图,演示卷积核的移动,注意颜色(向左移动,向下同理)

在这里插入图片描述

原因:从上面的描述可知,卷积核可以移动,而导致上面的输出结果是因为卷积核每一个只移动1步(1个像素点)。

看矩阵可知,往左边移动三次就到底了,往下面移动三次也到底了,所以输出的结果就是一个3×3的矩阵

所以说输出图像的大小为:(上面也有一个公式,那个是针对步长为1,且没有填充的哦!)

高:h = ((m + 2×ph - x)/ sh ) + 1

宽:w = ((n + 2×pw - y)/ sw ) + 1

sw、sh:表示的对宽、高方向的步长

ph、pw:表示的对宽、高方向的填充

m、n、x、y见上

多输入通道

上面展示的其实是单通道的,例如图像中的灰度图,但是现在很多图像都是彩色图像,一般的彩色图像都有RGB三个通道(三基色),说白了,就是彩色图片可以变成三个矩阵,每一个矩阵对应着一个通道。那对于这样的图片怎么进行卷积呢?如下

在这里插入图片描述
其实发现好像和前面的卷积没啥区别,不就是每个通道都和自己对应的卷积核进行卷积一下,然后相加就ok了。

多输出通道

其实卷积的计算方式是没有变的,只是卷积核的数量不再是一个,是多个,这样得到的输出是多个的,不再是单个。

在这里插入图片描述

感受野

概念:输出特征图上每个点的数值,是由输入图片上大小为w×h的区域的元素与卷积核每个元素相乘再相加得到的,所以输入图像上w×h区域内每个元素数值的改变,都会影响输出点的像素值。将这个区域叫做输出特征图上对应点的感受野

  • 单层卷积的感受野:
    图像来自飞桨
    通过观察,我们发现,单层卷积核的感受野就是它的卷积核大小。
  • 多层卷积的感受野大小:
    在这里插入图片描述

通过观察,我们可以发现,它的感受野大小不是简单地划分成两个,这时候回归定义,原来是要找对应面积卷积前在特征图中对应的大小。

感受野计算公式:
r f s i z e = ( o u t − 1 ) ∗ s t r i d e + k s i z e rfsize = (out - 1) * stride + ksize rfsize=(out1)stride+ksize

out:要求感受野的像素大小
stride:步幅大小
ksize:卷积核大小

池化

定义:使某一位置相邻输出的总体统计特征来代替网络在该位置的输出

池化的两种方式

平均池化:对池化窗口覆盖区域内的像素取平均值,得到相应的输出特征图的像素值。

最大池化:对池化窗口覆盖区域内的像素取最大值,得到输出特征图的像素值

在这里插入图片描述
H o u t = H + p h 1 + p h 2 − k h s h + 1 H_{out}=\frac{H+p_{h1}+p_{h2}-k_{h}}{s_{h}}+1 Hout=shH+ph1+ph2kh+1
W o u t = W + p w 1 + p w 2 − k w s w + 1 W_{out}=\frac{W+p_{w1}+p_{w2}-k_{w}}{s_{w}}+1 Wout=swW+pw1+pw2kw+1

p是填充,s是步幅,k是池化大小

优点:当输入数据做出少量平移时,经过池化函数后的大多数输出还能保持不变。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值