CNN卷积神经网络的前向传播

CNN的前向传播

1. 输入层到卷积层的前向传播

假设输入的是RGB的彩色图像,因此输入X是3个矩阵,分别对应了R,G,B的矩阵。

因为输入层是三个维度,因此卷积层一个filter的维度也是3.

a表示当前层的输出,上标表示层数。σ表示激活函数,一般是Relu, *表示卷积操作,W表示卷积核

可以发现,CNN和标准的BPNN的前向传播很相似,只是,CNN不只是矩阵的乘积,还有张量的卷积。

CNN模型的参数:

1.卷积核的个数,以及kernel的大小

2.填充padding:在输入的矩阵周围加上N圈0,在进行卷积,因此padding=N

3.步幅stride:卷积过程中,每次移动的像素距离。

2. 隐含层到卷积层的前向传播

隐含层就是指除了输入层和输出层的中间层。

并没有多大的区别,只是卷积层的输入不再是原始的图片,而是经过卷积获得的特征图feature map.

此时输入到卷积层的维度不一定是3(RGB)和1(灰度图)。而是用户的设定的上一层filter的个数。

3. 隐含层到池化层的前向传播

比如输入的若干矩阵是NxN的,而我们的池化大小是kxk的区域,则输出的矩阵都是N/k\times N/k的。

池化层的参数:

1. 池化的区域大小k,如k=2或3

2. 池化的方式,Max或者Average

4. 隐含层到全连接层的前向传播

特征图需要经过Flatten压扁之后,才能和全连接成相连,此时的前向传播与一般BP神经网络的一样。

Flatten层会把512个7x7的特征图,变形成一维向量。

猜你喜欢

转载自blog.csdn.net/Tomxiaodai/article/details/82080808