一篇文章“简单”认识《卷积神经网络》

2021-05-13 15:29:02 浏览数 (1)

一、概念了解

前言

卷积神经网络(Convolutional Neural Network, CNN),对于图像处理有出色表现,在计算机视觉中得到了广泛的应用。

卷积神经网络通过卷积层池化层的叠加实现对输入数据的特征提取,最后连接全连接层实现分类。

基于什么提出卷积神经网络?

动物视觉系统对外界的感知是:

  • 视觉皮层的每个神经元只响应某些特定区域的刺激(感受野)
  • 从局部到全局(信息分层处理机制)

卷积神经网络

每个神经元只需对 局部图像 进行感知;

在更高层将局部的信息综合起来,得到全局信息;

卷积(Convolution)

每一个卷积核,相对于一个滤波器;它会筛选合适的信息,过滤不匹配的信息;卷积层能提取特征,比如:提取一幅图像的特征。

比如,卷积核a,它是用来提取出图片的形状信息;卷积核b,它是用来提取出图片的颜色信息;

池化 (Pooling)

池化操作是降采样(Subsampling)中的一种;为了描述大的图像,可以对不同位置的特征进行聚合统计;

通常卷积层 后面 接着一个池化层,池化层能对卷积层提取到特征,进行降低特征图参数量,同时保留图像显著特征;池化层还能降低过拟合、扩大感知野和解决图像不变性。

池化一般分为最大池化平均池化;采用图像区域上某个特征的平均值或最大值,维度低且有效(不容易过拟合)。

全连接层

全连接层可以用来将最后得到的特征(卷积层 与 池化层 提取到的特征),映射到线性可分的空间,在整个卷积神经网络中起到“分类器”的作用。

优势

卷积神经网络十分合适用于大尺寸图像的学习;

  • 训练参数少(卷积操作、权值共享、池化操作 减少了训练的参数)
  • 平移不变性(图像被平移,卷积依然保证能检测到它的特征)
  • 模式具有空间层次(当浅层的神经元学习到较小的局部模式后,后面的卷积层会将前一层学习到的模式组合成更高的模式)

二、进一步理解

前言

卷积神经网络(Convolutional Neural Network, CNN),是一种前馈神经网络,对于图像处理有出色表现,在计算机视觉中得到了广泛的应用。

卷积神经网络 主要包括卷积层(convolution layer)池化层(pooling layer)全连接层(fully connected layer)。

卷积神经网络通过卷积层与池化层的叠加实现对输入数据的特征提取,最后连接全连接层实现分类

卷积神经网络通过卷积操作池化操作学习输入特征的局部模式;随着网络层数的增加,卷积神经网络对这些局部模式不断地进行组合、抽象,最终学习到高级特征。

卷积神经网络 能提取图像的特征,避免了对图像的复杂前期预处理,而可以直接输入图像原始图像。即:卷积层 池化层 用来提取特征;全连接层用来分类等。

基于什么提出卷积神经网络?

动物视觉系统对外界的感知是:

  • 视觉皮层的每个神经元只响应某些特定区域的刺激(感受野)
  • 从局部到全局(信息分层处理机制)

一般认为人对外界的认知是从局部到全局,图像像素点的空间联系也是局部的像素联系较为紧密,而距离较远的像素相关性则较弱。

卷积神经网络

每个神经元只需对 局部图像 进行感知;

在更高层将局部的信息综合起来,得到全局信息;

卷积(Convolution)

简介

卷积滤波,每一个卷积核,相对于一个滤波器;它会筛选合适的信息,过滤不匹配的信息。

比如,卷积核a,它是用来提取出图片的形状信息;卷积核b,它是用来提取出图片的颜色信息;

一个卷积核提取到的特征对应一个通道(上图:二维矩阵),不同卷积核得到的特征进行堆叠,形成具有多个不同通道的特征立方体。

卷积操作

几个重要的参数

  • 卷积和尺寸:感受野的大小,通常指卷积核的长和宽;比如:3*3,5*5的卷积核
  • 卷积核步长:卷积核在长度方向核宽度方向上每次一点的距离。比如:步长为1,每次移动一格;步长为3,每次移动三格;
  • 卷积核数量:卷积核的数量对应卷积核输出特征的深度,每个卷积核的输出为一个通道,多个卷积核的输出进行堆叠,形成一个特征立方体。比如:一共有4个不同的卷积核,那么形成4个平面组成的立方体。

图像化

卷积和尺寸:感受野的大小,通常指卷积核的长和宽;比如:3*3,5*5的卷积核

卷积核步长:卷积核在长度方向核宽度方向上每次一点的距离。比如:步长为1,每次移动一格;步长为3,每次移动三格;移动方向,通常是从左到右:

卷积核数量:卷积核的数量对应卷积核输出特征的深度,每个卷积核的输出为一个通道,多个卷积核的输出进行堆叠,形成一个特征立方体。比如:一共有4个不同的卷积核,那么形成4个通道(特征平面)组成的立方体。

多层卷积层

通过不同的卷积核提取图像的局部特征信息。

上图所示:有6个不同的卷积核,分别扫描提取同一幅图像的特征信息。

在多层卷积层中,能看到较低(靠前)的卷积层提取图像边缘信息,中间的卷积层提取图像的局部信息,较高(越往后)的卷积层能提取图像全局信息。

随着网络层数的增加,卷积神经网络对这些局部模式不断地进行组合、抽象,最终学习到高级特征。

下面分别看看每层卷积层提取一幅图像的特征后的效果:

第一层 卷积层


第二层 卷积层


第三层 卷积层


第四层 卷积层


第五层 卷积层

五层卷积层 提取特征的效果:

在多层卷积层中,能看到较低(靠前)的卷积层提取图像边缘信息,中间的卷积层提取图像的局部信息,较高(越往后)的卷积层能提取图像全局信息。

随着网络层数的增加,卷积神经网络对这些局部模式不断地进行组合、抽象,最终学习到高级特征。

池化(Pooling)

池化操作是降采样(Subsampling)中的一种;为了描述大的图像,可以对不同位置的特征进行聚合统计;

左图通过池化后得到右图,右图是左图的1/4的大小,能看到特征图参数量降低了,同时保留图像显著特征。

池化一般分为最大池化和平均池化。

  • 最大池化:采用图像区域上某个特征的最大值,来代替这个图像区域的特征。
  • 平均池化:采用图像区域上某个特征的平均值,来代替这个图像区域的特征。

采用图像区域上某个特征的平均值或最大值,维度低且有效(不容易过拟合)。

例如:最大池化

在橙色区域,提取最大值5;浅绿色区域提取最大值7;蓝色区域提取最大值4;灰色区域提取最大值8;形成最大池化操作的输出值分别为:5、7、4、8

池化作用:

降低特征图参数量、保留图像显著特征、降低过拟合、扩大感知野和解决图像不变性。

全连接层

全连接层可以用来将最后得到的特征映射到线性可分的空间,在整个卷积神经网络中起到“分类器”的作用。

特征维度变化

卷积神经网络中的卷积层核池化层会改变输入特征的维度;

CNN核心思想——参数共享

同一图像在不同位置、不同角度的旋转、不同大小、不同光照等条件下,都会别识别为同一物体,这一特点称为不变性。

因此可以用参数相同的卷积核去扫描整幅图像;这能掘金图像位置不变性的问题;减少计算和内存需求。

优势

卷积神经网络十分合适用于大尺寸图像的学习;

  • 训练参数少(卷积操作、权值共享、池化操作 减少了训练的参数)
  • 平移不变性(图像被平移,卷积依然保证能检测到它的特征)
  • 模式具有空间层次(当浅层的神经元学习到较小的局部模式后,后面的卷积层会将前一层学习到的模式组合成更高的模式)

经典的卷积神经网络

LeNet模型

LeNet-5 输入的二维图像,先经过两次的( 卷积层->池化层 ),再经过全连接层,最后使用softmax分类作为输出层。

LeNet-5 是用于手写体字符识别的卷积神经网络。

输入:32*32的手写字体图片,这些手写字体包含0~9数字,也就是相当于10个类别的图片

输出:分类结果,0~9之间的一个数

VGGNet模型

VGGNet模型是2014年的 ImageNet分类的亚军,物体检测冠军,使用了更小的卷积核(3x3),并且连续多层组合使用。VGG Net 经常被用来提取图像特征。

该模型有多种网络架构,较为常用的是VGG16和VGG19。

VGG由5层卷积层、3层全连接层、softmax输出层构成,层与层之间使用max-pooling(最大化池)分开,所有隐层的激活单元都采用ReLU函数。

GoogLeNet模型

GoogLeNet模型是2014年的ImageNet分类的冠军, GoogleNet提出了一种 Inception结构,该结构可以将不同的卷积层通过并联的方式结合在一起。 Inception历经了1、V2、3、V4等多个版本的发展,不断趋于完善。

保持网络结构的稀疏性,又能利用密集矩阵的高计算性能。

卷积神经网络应用

  • 图像分类
  • 目标检测
  • 目标跟踪
  • 语义分割
  • 实例分割

参考:

1)西安电子科技大学《人工智能导论》课程;

2)北京交通大学《图像处理与机器学习》课程;

3)华为云学院《 AI技术领域课程--深度学习》课程;

4)http://yann.lecun.com/exdb/lenet/index.html

5)https://zhuanlan.zhihu.com/p/43143470

6)https://my.oschina.net/u/876354/blog/1632862

7)https://www.cnblogs.com/ai-learning-blogs/p/11110391.html

8)https://leonardoaraujosantos.gitbook.io/artificial-inteligence/machine_learning/deep_learning/googlenet

9)Visualizing and Understanding Convolutional Networks Matthew D. Zeiler and Rob Fergus

如有错误,欢迎指出;欢迎交流~

声明:本篇文章,未经许可,谢绝转载。

0 人点赞