卷积神经网络介绍(深度学习入门)

CNN(卷积神经网络)是深度学习入门的一个经典网络,我来解释一下卷积神经网络。如有错误,请积极指正。

前置

在开始介绍CNN之前,先简单说明一下如何把图片当作成一个模型的输入。在深度学习中图片被当作一个三维的tensor(张量)输入,简单来说就是一个三维的矩阵。这三维分别是图像的Height(高)、Width(宽)、Channels(通道数),图像的Height和Width决定了分辨率、大小等,通道数决定了图像的颜色,一般图像有RGB三个通道,分别代表了红绿蓝三个颜色分量,这三个分量组成了图像的完整颜色。

卷积层

卷积层是卷积神经网络的核心组成部分,可以从输入数据中提取特征。

卷积核

首先来介绍一下Kernal(卷积核)。在介绍卷积核之前先来说明一下Receptive Field(感受野),感受野可以理解为神经网络能够看到图片的区域范围,举个例子在下图中感受野的范围是3x3。

现在开始介绍卷积核。卷积核是一个小的权重矩阵,用于在输入图像上进行卷积操作,卷积核的大小可以理解为一个方形矩阵的大小,如上图红色方框的卷积核的大小是3x3x3(因为上图数据的通道数为3),卷积核的大小可以自己定义,如7x7、4x5等等。这里说一个不重要的事项,卷积核的大小不一定等于感受野的大小。因为卷积核是一个权重矩阵,所以每个卷积核都有其对应的Weights(权重),一个3x3x3的矩阵就有27个权重。

特征图

首先来简单介绍一下Feature Map(特征图),特征图是卷积核经过滑动与点积运算后的结果。一个卷积核只会产生一个特征图,多个卷积核可以产生多个特征图。

滑动

什么是滑动?滑动是卷积操作中的滑动窗口机制,它在数据上进行着逐个区域的滑动,如下图所示

卷积核每次滑动的距离由Stride(步长)来定义,步长影响着水平滑动与垂直滑动的距离,例如在上图中滑动的步长为2,即每次水平滑动两格,到边缘后在垂直滑动两格。

填充

Padding(填充)是在输入数据周围添加像素的操作。有时候为了更好地捕获边缘信息或者控制输出大小会对图像进行填充。填充一般分为有效填充(Valid Padding)、相同填充(Same Padding)、零填充(Zero Padding)。有效填充就是不填充,相同填充是通过计算得出填充量,零填充是用0来填充。下图所示就是零填充。

运算

接着就可以通过点积运算得到特征图了,如下图所示。

z

在上图中,右下的矩阵就是特征图,卷积核的权重在右上角,卷积核的大小为3x3,滑动步长为1。将卷积核内的权重与左边图像数据对应的数值一一相乘,相乘后会得到9个数字,再将这9个数字相加就会得到右边特征图的第一个数值3。接着向右滑动继续计算,最后就会得到特征图。

以上就是得到特征图的过程。

权重共享

简单介绍一下共享权重。权重共享是指在一个卷积层中,多个输入位置使用相同的卷积核。权重共享可以有效地减少参数的数量从而减小计算复杂度,但是共享权重也会丢失一些信息。

激活函数层

在得到特征图后,我们会将特征图放入激活函数中进行进一步的计算。一般我们会用ReLU函数作为激活函数。ReLU函数的定义是  

                                                   f(x)=max(x,0)

上面特征图经过激活函数后就变成了

                                                            \begin{bmatrix} 3 & 0 & 0 & 0\\ 0& 1& 0&0 \\ 0& 0& 0& 1\\ 3& 0 &0 &0 \end{bmatrix}

简单说明一下激活函数的作用:激活函数可以引入非线性、增强模型的表达能力、解决梯度消失问题等等。

池化层

Pooling(池化层)是对特征图进行降采样,通俗来讲就是就是减小特征图的尺寸与信息,从而减少参数的数量。池化层的优点有很多它可以减小计算量并防止过拟合。在池化层中有三种常见的池化操作,分别是Max Pooling(最大池化)、Average Pooling(平均池化)、Stochastic Pooling(随机池化)。

首先要定义一个池化窗口的大小和步幅,一般使用2x2的大小以及大小为2的步幅,选大小为2的步幅就不会有重叠区域,上图池化窗口的大小就是2x2的大小,步幅也是2。最大池化就是从窗口中选取最大的数。平均池化是取窗口中所有数字的平均值。随机池化是先将窗口中的数字归一化处理得到每个数字的概率值,然后按照概率值进行随机选择,概率越大被选中的可能也就越大。

全连接层

Fully Connected Layer(全连接层)通常位于模型的最后几层,把特征图展开成一维向量后输入到全连接层中,全连接层的输出一般会再使用一个激活函数将输出转化为概率值。

总结

现在我们来把整个网络的运行过程完整的叙述一遍。

图片作为输入的数据,首先经过卷积层,与多个卷积核运算后输出多个特征图;然后将特征图进行池化操作;之后将池化后的特征图再进行卷积操作并输出多个特征图;之后在进行池化操作;然后将池化的特征图输入两层全连接层,最后经过高斯层后输出最终的概率分布。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值