1.7 单层卷积网络(One layer of a convolutional network)

卷积神经网络的单层结构如下所示:

相比之前的卷积过程,CNN的单层结构多了激活函数ReLUReLU和偏移量bb。整个过程与标准的神经网络单层结构非常类似:

Z[l]=W[l]A[l1]+b[l]Z^{[l]}=W^{[l]}A^{[l-1]}+b^{[l]}
A[l]=g[l](Z[l])A^{[l]}=g^{[l]}(Z^{[l]})

卷积运算对应着上式中的乘积运算,滤波器组数值对应着权重W[l]W^{[l]},所选的激活函数为ReLUReLU

每个滤波器组有3x3x3=27个参数,还有1个偏移量bb,则每个滤波器组有27+1=28个参数,两个滤波器组总共包含28x2=56个参数。选定滤波器组后,参数数目与输入图片尺寸无关。所以不存在由于图片尺寸过大,造成参数过多的情况,这就是卷积神经网络的一个特征,叫作“避免过拟合”。例如一张1000x1000x3的图片,标准神经网络输入层的维度将达到3百万,而在CNN中,参数数目只由滤波器组决定,数目相对来说要少得多,这是CNN的优势之一

设层数为ll,CNN单层结构的所有标记符号:

  • f[l]f^{[l]}= filter size

  • p[l]p^{[l]}= padding

  • s[l]s^{[l]}= stride

  • nc[l]n_c^{[l]}= number of filters

输入维度为:nH[l1]×nW[l1]×nc[l1]n_H^{[l-1]}\times n_W^{[l-1]}\times n_c^{[l-1]},因为是上一层的激活值 每个滤波器组维度为:f[l]×f[l]×nc[l1]f^{[l]}\times f^{[l]}\times n_c^{[l-1]}

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

偏置维度为:1×1×1×nc[l]1 \times 1\times 1 \times n_c^{[l]}

输出维度为:nH[l]×nW[l]×nc[l]n_H^{[l]}\times n_W^{[l]}\times n_c^{[l]}

其中:

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

如果有mm个样本,进行向量化运算,相应的输出维度为:

m×nH[l]×nW[l]×nc[l]m \times n_H^{[l]}\times n_W^{[l]}\times n_c^{[l]}

Last updated