美文网首页
第六章 图像识别与卷积神经网络

第六章 图像识别与卷积神经网络

作者: 独立开发者Lau | 来源:发表于2019-09-18 08:56 被阅读0次

从MNIST实验结果可以看出,神经网络的结构会对神经网络的准确率产生巨大的影响。卷积神经网络应用广泛,在自然语言处理、医药发现、灾难气候发现及围棋人工智能程序中都有应用。本章主要通过卷积神经网络在图像识别上的应用来讲解卷积神经网络的基本原理以及如何使用TensorFlow实现卷积神经网络。

6.1 图像识别问题及经典数据集
相比真实环境下的图像识别问题,有两个最大的问题。第一、现实生活中的图片分辨率要远高于32*32,而且也不会是固定的。第二、现实生活中的物体类别很多,无论是10种还是100中都远远不够,而且一张图片中不会只出现一个种类的物体。为了贴近真实环境下的图像识别问题,李飞飞的ImageNet很大程度地解决了这两个问题。
ImageNet是一个基于WordNet的大型图像数据库。在ImageNet中,将近1500万图片关联到了WordNet的大约2000个名词同义词集上。目前每一个与ImageNet相关的WordNet同义词集都代表了现实世界中的一个实体,可以被认为是分类问题中的一个类别。在ImageNet的图片中,一张图片中可能出现多个同义词集所代表的实体。

6.2 卷积神经网络简介
在全连接神经网络中,每相邻两层之间的节点都有边相连,于是一般会将每一层全连接层中的节点组织成一列,这样方便显示连接结构。而对于卷积神经网络,相邻两层之间只有部分节点相连,为了展示每一层神经元的维度,一般会将每一层卷积层的节点组织成一个三维矩阵。
除了结构相似,卷积神经网络的输入输出以及训练流程与全连接神经网络也基本一致。以图像分类为例,卷积神经网络的输入层就是图像的原始像素,而输出层中的每一个节点代表了不同类别的可信度。这和全连接神经网络的输入输出是一致的。在TensorFlow中训练一个卷积神经网络的流程和训练一个全连接神经网络没有任何区别。卷积神经网络和全连接神经网络的唯一区别就在于神经网络中相邻两层的连接方式。
使用全连接神经网络处理图像的最大问题在于全连接层的参数太多。参数增多除了导致计算速度减慢,还很容易导致过拟合问题。所以需要一个更合理的神经网络结构来有效地减少神经网络中参数个数。卷积神经网络就可以达到这个目的。
一个卷积神经网络主要由以下5种结构组成:
1.输入层。在处理图像的卷积神经网络中,它一般代表了一张图片的像素矩阵。
2.卷积层。和全连接层不同,卷积层中每一个节点的输入只是上一层神经网络的一小块。卷积层将神经网络中的每一小块进行更加深入地分析从而得到抽象程度更高的特征。一般说,通过卷积层处理过的节点矩阵会变得更深。
3.池化层。池化层神经网络不会改变三维矩阵的深度,但是它可以缩小矩阵的大小。池化操作可以认为是将一张分辨率较高的图片转化为分辨率较低的图片。通过池化层,可以进一步缩小最后全连接层中节点的个数,从而减少整个神经网络中参数。
4.全连接层。在经过多轮卷积层和池化层的处理之后,最后一班会是由1到2个全连接来给出最后的分类结果。经过几轮卷几层和池化层的处理之后,可以认为图像中的信息已经被抽象成了信息含量更高的特征。可以将卷积层和池化层看成自动图像特征提取的过程。在特征提取完成之后,还是需要使用全连接层来完成分类。
5.Softmax层。和第4章中介绍的一样,Softmax层主要用于分类问题。通过Softmax层,可以得到当前样例属于不同种类的概率分布情况。

6.3 卷积神经网络常用结构
卷积层。介绍卷积层的结构以及其前向传播的算法。过滤器(或内核)将当前层神经网络上的一个子节点矩阵转化为下一层神经网络上的一个单位节点矩阵。单位节点矩阵指的是一个长和宽都为1,深度不限的节点矩阵。在一个卷积层中,过滤器所处理的节点矩阵的长和宽都是人工指定的,这个节点矩阵的尺寸也被称之为过滤器的尺寸。常用尺寸有33或55。过滤器中另外一个需要人工指定的设置是处理得到的单位节点矩阵的深度,这个设置称为过滤器的深度。注意过滤器的尺寸指的是一个过滤器输入节点矩阵的大小,而深度指的是输出单位节点矩阵的深度。
卷积层结构的前向传播过程就是通过将一个过滤器从神经网络当前层的左上角移动到右下角,并且在移动中计算每一个对应的单位矩阵得到的。
TensorFlow对卷积神经网络提供了非常好的支持。
池化层。有效缩小矩阵的尺寸,从而减少最后全连接层参数。实现加快计算速度也能有放置过拟合问题的作用。
池化层前向传播的过程也是通过移动一个类似过滤器的结构完成的。不过池化层过滤器中的计算不是节点的加权和,而是采用更加简单的最大值或平均值运算。
与卷积层的过滤类似,池化层的过滤器也需要人工设定过滤器的尺寸、是否使用全0填充以及过滤移动的步长等设置,且这些设置的意义一样。卷几层和池化层中过滤器移动的方式是相似的,唯一的区别在于卷积层使用的过滤器是横跨整个深度的,而池化层使用的过滤器只影响一个深度上的节点。所以池化层的过滤器除了在长和宽两个维度移动之外,还需要在深度维度移动。

6.4经典卷积网络模型
通过卷积层和池化层这些网络结构任意组合得到的神经网络有无限多重,怎样的神经网络更有可能解决真实的图像处理问题呢?本节介绍一些经典的卷积神经网络的网络结构。通过这些经典卷积神经网络的网络结构可以总结出卷积神经网络结构设计的一些模式。
LeNet--5模型。第一个成功应用于数字识别问题的卷积神经网络。在MNIST数据集上,可达99.2%的正确率。模型共7层。
Inception--v3模型。Inception结构是一种和LeNet-5结构完全不同的卷积神经网络结构。在LeNet-5模型中,不同卷积层通过串联的方式连接在一起,而Inception-v3模型中的Inception结构是将不同的卷积层通过并联的方式结合在一起。

6.5卷积神经网络迁移学习
所谓迁移学习,就是将一个问题上训练好的模型通过简单的调整使其适用于一个新的问题。在最后一层全连接层之前的网络层称之为瓶颈层。
将新的图像通过训练好的卷积神经网络直到瓶颈层的过程可以看成是对图像进行特征提取的过程。在训练好的Inception-v3模型中,因为将瓶颈层的输出再通过一个单层的全连接层神经网络可以很好地区分1000种类别的图像,所以有理由认为瓶颈层输出的节点向量可以被作为任何图像的一个更加精简且表达能力更强的特征向量。于是,在新数据集上,可以直接利用这个训练好的神经网络对图像进行特征提取,然后再将提取得到的特征向量作为输入来训练一个新的单层全连接神经网络处理新的分类问题。
一般来说,在数据量足够的情况下,迁移学习的效果不如完全重新训练。但是迁移学习所需要的训练时间和样本数要远远小于训练完整的模型。

相关文章

网友评论

      本文标题:第六章 图像识别与卷积神经网络

      本文链接:https://www.haomeiwen.com/subject/cihvkftx.html