深度学习笔记(三十一)三维卷积及卷积神经网络

508 阅读3分钟

一、RGB三维图像的卷积

首先复习以下二维卷积运算的过程:

在这里插入图片描述 然后让我们看看三维图像如何进行有效的卷积运算。 在这里插入图片描述 计算方法和二维卷积类似,从三维图像中划分出3×3×33\times3\times3的方块(称为卷积立方体),对这27个像素点进行卷积,即逐个元素与过滤器相乘求和,得到输出二维矩阵中的一个值。 在这里插入图片描述 三维图像和过滤器可以有不同的高和宽,但是必须有相同的通道数。在RGB这个例子中,就是有R G B三个颜色通道(组成图像中的任意颜色)

二、叠加过滤器

试想一个问题,用前面的方法可以实现垂直边缘检测和水平边缘检测,但是如果我们要检测的是更一般的边缘呢(换句话说:想检测更多的特征信息 )?比如43°。这个时候需要一种方法,叫做过滤叠加。

  • 使用垂直边缘检测过滤器,得到垂直边缘检测结果【二维】。
  • 使用水平边缘检测过滤器,得到水平边缘检测结果【二维】。
  • 将垂直和水平边缘检测矩阵叠加得到【三维】结果。
  • 该【三维】结果叠加了垂直和水平检测的效果。

来看看老师的示意图: 在这里插入图片描述

三、维度总结

三维图像:n×n×ncn\times n\times n_c 过滤器:f×f×ncf\times f\times n_c 卷积输出:nf+1×nf+1×ncn-f+1\times n-f+1\times n_c' 其中,nc=n_c'= #filtersfilters 注意,这里用到的padding=valid,stride=1. 所以更一般的卷积输出如下: n+2pf+1s×n+2pf+1s×nc\frac{n+2p-f+1}{s}\times \frac{n+2p-f+1}{s}\times n_c' 输出的通道数ncn_c'等于过滤器的数量,也等于检测的特征数(在上述RGB图像例子中,检测垂直和水平边缘两个特征)

四、单层卷积网络

在这里插入图片描述 计算单层网络中参数的个数 单层中图像是3×3×33\times3\times3,过滤器数量为10,问该层有多少个参数?

  • 每层27个位置,卷积运算后加上1个偏置值b,得到每个过滤器卷积时需要28个参数。
  • 一共10个过滤器,作10次上述过程,共计280个参数。

可以看到,不管图像有多大,参数并不多,取决于过滤器的数量和大小,这个在卷积神经网络中称为避免过拟合

五、符号说明

f[l]f^{[l]}:第ll层的过滤器大小

p[l]p^{[l]}:第ll层的padding数量

s[l]s^{[l]}:第ll层的stride步长

nc[l]n_c^{[l]}:第ll层的过滤器数量

f[l]×f[l]×nc[l1]f^{[l]}\times f^{[l]}\times n_c^{[l-1]}:第ll层的过滤器维度

f[l]×f[l]×nc[l1]×nc[l]f^{[l]}\times f^{[l]}\times n_c^{[l-1]}\times n_c^{[l]}:第ll层的权重维度

nc[l]:1×1×1×nc[l]n_c^{[l]} :1\times1\times1\times n_c^{[l]}:第ll层的偏置维度

nH[l1]×nW[l1]×nc[l1]n_{H}^{[l-1]}\times n_{W}^{[l-1]}\times n_c^{[l-1]}:第ll层的输入维度

nH[l]×nW[l]×nc[l]n_{H}^{[l]}\times n_{W}^{[l]}\times n_c^{[l]}:第ll层的输出维度

m×nH[l]×nW[l]×nc[l]m\times n_{H}^{[l]}\times n_{W}^{[l]}\times n_c^{[l]}:第ll层【m个样本】的输出维度(深度学习中的向量化技术)

nH[l]=nH[l1]+2p[l]f[l]s[l]+1n_{H}^{[l]}=\lfloor{\frac{n_{H}^{[l-1]}+2p^{[l]}-f^{[l]}}{s^{[l]}}+1}\rfloor

nW[l]=nW[l1]+2p[l]f[l]s[l]+1n_{W}^{[l]}=\lfloor{\frac{n_{W}^{[l-1]}+2p^{[l]}-f^{[l]}}{s^{[l]}}+1}\rfloor

六、卷积神经网络作图像分类

第一次卷积: 在这里插入图片描述 第二次卷积: 在这里插入图片描述 第三次卷积: 在这里插入图片描述 对最后一次卷积结果展开成一列向量,logistic/softmax回归得到预测结果。 在这里插入图片描述

七、卷积神经网络中的典型层类型

  • 卷积层 Convolution(CONV)
  • 池化层 Pooling(POOL)
  • 全连接层 Fully Connected(FC)

虽然只搭建卷积层可以实现卷积神经网络,但是神经网络架构师通常会用上池化层和全连接层搭建神经网络,这两层网络比卷积层更容易搭建。将这三者结合起来,能搭建更为强大的神经网络。