如何简单理解CNN卷积神经网络

如何快速简单理解卷积神经网络(CNN)

CNN卷积神经网络常用于图像识别分类的训练,对图像分类具有很好的适应性。
一张图片,通常是由成千上万个像素点组成的,如下:
计算机如何看到图像。- 来源:http://cs231n.github.io/classification/
卷积神经网络,需要理解以下三点:

  • 什么是卷积运算
  • 什么是reLU运算
  • 什么是pooling
    下面一一介绍。

卷积运算

怎么运算的

卷积运算就是将原始图片的与特定的Feature Detector(filter)做卷积运算(符号⊗),卷积运算就是将下图两个3x3的矩阵作相乘后再相加,以下图为例矩阵点乘:0 x0 + 0 x0 + 0 x1+ 0 x1 + 1 x0 + 0 x0 + 0 x0 + 0 x1 + 0 x1 =0
在这里插入图片描述

每次移动一步,最终移动完毕我们可以得到以下结果:
在这里插入图片描述

图像完成一次卷积操作结果

实际上,我们会用很多个随机生成的Filter对同一幅图像进行卷积运算并都保存下来方便下一步的计算。同时,我们发现对原图形做卷积运算往往会使图形矩阵的宽高发生改变(减小),再者原图形矩阵边缘在做卷积运算时不在卷积filter中心。为了解决这个问题,通常我们会对原图形边缘进行填充。添加一层零值像素以使用零环绕输入,这样我们的要素图就不会缩小。除了在执行卷积后保持空间大小不变,填充还可以提高性能并确保内核和步幅大小适合输入。

在卷积点成运算后,我们往往会像神经网络层计算一样加入偏置项,综上,实际的卷积运算可以通过下图理解:
(来源:http://cs231n.github.io/convolutional-networks/)
在这里插入图片描述
第1列大矩阵为填充后的输入图形矩阵,浅蓝色中心部分为原图形矩阵,灰色部分为0填充的边缘。这个图形有三个通道(可以简单理解为RGB三通道),第2列为随机生成的1个filter,也有三个通道分别对图形矩阵做卷积运算再加上b0偏置项就得到了运算结果如第四列矩阵展示。第3列也是随机生成的1个filter,也有三个通道分别对图形矩阵做卷积运算再加上b1偏置项就得到了运算结果如第四列矩阵展示。

卷积运算的作用

卷积运算可以提取图像的特征,我们把卷积运算后的矩阵叫做特征图。如下:
在这里插入图片描述
通过特定的卷积运算,我们提取了图像的轮廓特征,当然选用不同的卷积filter就会提取到不同的图像特征。

ReLU

Reku是一种激活函数,作用于卷积层和全连接神经网络层,与其他激活函数不同,reLU在特征图矩阵值为负的地方将其变为0.使用Relu函数去掉负值,更能提取出物体的形状。
在这里插入图片描述

pooling

在卷积层之后,通常在CNN层之间添加池化层。池化的功能是不断降低维数,以减少网络中的参数和计算次数。这缩短了训练时间并控制过度拟合。最常见的池类型是max pooling,它在每个窗口中占用最大值。需要事先指定这些窗口大小。这会降低特征图的大小,同时保留重要信息。
在这里插入图片描述
这里选用了2x2的窗口,选取窗口内最大值保留到池化后的特征矩阵图pooled feature map中。
在这里插入图片描述
池化完毕,我们发现特征图由5x5变成了3x3矩阵,这说明pooling一个很重要的作用就是图像压缩,但又保留了最重要的信息。

全连接神经网络计算

通过特定次数的卷积运算和max_pooling,我们得到了很多的特征图,将这些特征图按行展开成一维向量作为我们全连接神经网络的输入。以一个特征图展开为例如下
在这里插入图片描述

CNN全过程理解

通过以上的认识,我们可以把CNN理解为一个 特征筛选+全连接神经网络训练的过程。
多次进行卷积运算和pool,是特征筛选的过程,目的在于减少特征个数,加快运算效率。
全连接神经网络,通常采用梯度下降算法进行多次更新,就是真正的训练过程。
在这里插入图片描述

                              			理解模型1

CNN步骤:

扫描二维码关注公众号,回复: 9684070 查看本文章
  • 1.输入图形矩阵,我们先将其边缘0填充
  • 2.随机生成特定shape的filter,比如我们生成了15个(如下图),通过卷积运算就会得到15个特征图矩阵。
  • 3.设置窗口,选取窗口内最大值进行存储(maxpooling),得到矩阵数量急剧减少的特征图矩阵。
  • 4.重复2,3过程,直到矩阵元素较少或满足限定条件。
  • 5.将得到的所有特征图按行展开并连接为一维向量,作为全连接神经网络的输入。(当然,在训练中,我们知道每一幅图像的class)
  • 6.神经网络训练

为了帮助理解,顺几张网上的概念图如下:
在这里插入图片描述

										概念图1

在这里插入图片描述

						概念图2 原图形没有进行边缘填充

手动分割

以上就是我学习CNN后的一些初略理解,如果有错误和疑问欢迎指正。

发布了80 篇原创文章 · 获赞 332 · 访问量 70万+

猜你喜欢

转载自blog.csdn.net/qq_40527086/article/details/89953250