[深度学习]卷积神经网络CNN-卷积层

这是我参与8月更文挑战的第18天,活动概略检查:8月更文挑战

卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积核算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一。卷积神经网络具有表征学习(representation learning)才能,能够按其阶层结构对输入信息进行平移不变分类(shift-invariant classification),因此也被称为“平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN)”。(转自百度百科)

作为一个调参侠,CNN是我们常见的网络,在许多图像处理的范畴都能看见它的影子,这章中我将介绍卷积神经网络中的中心-卷积层,并介绍该层参数量的核算。

一、卷积核

首要我们先来看看什么是卷积核:

[深度学习]卷积神经网络CNN-卷积层

卷积核是一个二维的n*n序列(n一般为奇数,如1*1,3*3,5*5等),上面就是一个3*3的卷积核。

再引入一个单层的5*5“图像”:

[深度学习]卷积神经网络CNN-卷积层

所谓“卷积”,就是用卷积核按次第与“图像”内积求和的进程:

[深度学习]卷积神经网络CNN-卷积层

上面进程的核算如下图:

[深度学习]卷积神经网络CNN-卷积层

设步长s=1(步长是可以调的),下一步核算:

[深度学习]卷积神经网络CNN-卷积层

下面是完好进程(图片来源):

[深度学习]卷积神经网络CNN-卷积层

二、神经元

每个神经元是n个卷积核加上一个偏置值b组成的,n的值与输入图像的层数相同,如:我们要对一张RGB三色组成的照片进行卷积,就需要3个卷积核。对上述内积求和的和再求和(用人话讲就是一个卷积核对自己负责的层进行卷积,将三个得到的成果加起来),最终将成果加上转置值b,就得到了一个得数(上一张经典图,最初学习也是看这张图会的):

[深度学习]卷积神经网络CNN-卷积层

别的要留心的点是,假设图像的长度不能刚好被卷积核包含进去,会在周围进行扩充,即图中灰色标0的格子。

重复中的操作,我们就能使用一个神经元得到了一层输出。假设使用多个神经元,就能得到多层的输出,即输出的深度。

因此,卷积层输出的深度是由神经元的个数抉择的。当然,卷积核标准要完全共同。

下面放出完好动图(入门必看图,转了好几手了):
[深度学习]卷积神经网络CNN-卷积层

三、卷积方式

要留心,卷积方式也不止一种,分为三类:

  1. full
  2. same
  3. valid

full

初步和结束的标志是:卷积核边碰到图像边:

[深度学习]卷积神经网络CNN-卷积层

(选中部分是卷积核)

这种卷积方式好像不太常见到(也可能是我学的还不行深化)。

same

初步和结束的标志是:卷积核中心与图像边重合:

[深度学习]卷积神经网络CNN-卷积层

之所以叫same,是因为当步长s=1时,卷积层输出层的标准和输入标准是完全共同的(再次着重深度由神经元数量抉择,和卷积方式无关)。

valid

初步和结束的标志是:卷积核完全进入与图像:

[深度学习]卷积神经网络CNN-卷积层

valid就是我们上面介绍的卷积方式,是最常见到的方式,上面现已介绍很多了,这里放出一个输出层大小核算公式:

图像大小 -> a*a*d
卷积核标准 -> i*i
神经元数量 -> n
步长 -> s
神经元:d个卷积核加一个转置数b
输出层大小: [(a-i)/s + 1]*[(a-i)/s + 1]*n

(重要的作业说三遍,输出层数由神经元数量抉择)

四、参数量的核算

卷积层的参数主要坐落卷积核中,上面我们进行了那么多核算的卷积核是由反向传达调整出来的。

还有一个比较简单遗忘的当地(应该就我忘了⊙﹏⊙∥)是转置值b也是参数的一部分,用于全体调度。

也就是整个神经元的量(不是神经元还能是啥╮(╯-╰)╭),因此得出下列核算公式:

图像大小 -> a*a*d
卷积核标准 -> i*i
神经元数量 -> n
参数量:n*(i*i*d+1)

(留心:步长不影响参数量,但会影响核算量)

举个比如:

一张图像大小:150*150*3

我们对其进行继续卷积操作,使输出为146*146*32

要完结这个卷积操作,我们令步长s=1,卷积核大小i*i=5*5,神经元数量n=32(我觉得不必再重复说明了)。

参数量=32*(5*5*3+1)=2432。

发表评论

提供最优质的资源集合

立即查看 了解详情