卷积神经网络CNN概述下(RGB图像卷积与单层神经网络)

以下内容转载自:https://blog.csdn.net/ice_actor/article/details/78648780

侵删!!!

黑白图像卷积请参考:

卷积神经网络CNN概述上(黑白图像卷积)

彩色图像的卷积

以上讲述的卷积都是灰度图像的,如果想要在RGB图像上进行卷积,过滤器的大小不在是3*3而是有3*3*3,最后的3对应为通道数(channels),卷积生成图像中每个像素值为3*3*3过滤器对应位置和图像对应位置相乘累加,过滤器依次在RGB图像上滑动,最终生成图像大小为4*4。

另外一个问题是,如果我们在不仅仅在图像总检测一种类型的特征,而是要同时检测垂直边缘、水平边缘、45度边缘等等,也就是多个过滤器的问题。如果有两个过滤器,最终生成图像为4*4*2的立方体,这里的2来源于我们采用了两个过滤器。如果有10个过滤器那么输出图像就是4*4*10的立方体。

单层卷积网络

通过上一节的讲述,图像通过两个过滤器得到了两个4*4的矩阵,在两个矩阵上分别加入偏差b1b1b2b2,然后对加入偏差的矩阵做非线性的Relu变换,得到一个新的4*4矩阵,这就是单层卷积网络的完整计算过程。用公式表示:

其中输入图像为a[0]a[0],过滤器用w[1]w[1]表示,对图像进行线性变化并加入偏差得到矩阵z[1]z[1]a[1]a[1]是应用Relu激活后的结果。

  • 如果有10个过滤器参数个数有多少个呢?
    每个过滤器都有3*3*3+1=28个参数,3*3*3为过滤器大小,1是偏差系数,10个过滤器参数个数就是28*10=280个。不论输入图像大小参数个数是不会发生改变的。

简单卷积网络示例

卷积神经网络层的类型:

  • 卷积层(convolution,conv)
  • 池化层(pooling,pool)
  • 全连接层(Fully connected,FC)

池化层

最大池化(Max pooling)
最大池化思想很简单,以下图为例,把4*4的图像分割成4个不同的区域,然后输出每个区域的最大值,这就是最大池化所做的事情。其实这里我们选择了2*2的过滤器,步长为2。在一幅真正的图像中提取最大值可能意味着提取了某些特定特征,比如垂直边缘、一只眼睛等等。

以下是一个过滤器大小为3*3,步长为1的池化过程,具体计算和上面相同,最大池化中输出图像的大小计算方式和卷积网络中计算方法一致,如果有多个通道需要做池化操作,那么就分通道计算池化操作。

平均池化和最大池化唯一的不同是,它计算的是区域内的平均值而最大池化计算的是最大值。在日常应用使用最多的还是最大池化。

池化的超参数:步长、过滤器大小、池化类型最大池化or平均池化

卷积神经网络示例

以下是一个完整的卷积神经网络,用于手写字识别,这并不是一个LeNet-5网络,但是设计令该来自于LeNet-5。


网络各层参数个数表:

转载自CSDN:https://blog.csdn.net/ice_actor/article/details/78648780

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注