深度学习——CNN(卷积神经网络)(超详细)

目录

一、卷积神经网络(CNN)定义
二、DNN与CNN的区别
三、CNN五种结构组成
1、输入层
2、卷积层(Convolution Layer)
3、池化层(Pooling Layer)
4、全连接层
5、Softmax层

一、卷积神经网络(CNN)定义

卷积神经网络(convolutional neural network, CNN),是一种专门用来处理具有类似网格结构的数据的神经网络卷积网络是指那些至少在网络的一层中使用卷积运算来替代一般的矩阵乘法运算的神经网络。

二、DNN与CNN的区别

在这里插入图片描述
上图为DNN神经网络图,DNN内部的神经网络层可以分为三类,输入层,隐藏层和输出层,一般来说第一层是输出层,最后一层是输出层,而中间的层数都是隐藏层。
在这里插入图片描述
上图为CNN神经网络
【总结】
(1)DNN是一种最简单的神经网络。各个神经元分别属于不同的层,每个神经元和前一层的所有神经元相连接,信号从输入层向输出层单向传播。
(2)CNN是一种通过卷积计算的前馈神经网络,其是受生物学上的感受野机制提出的,具有平移不变性,使用卷积核,最大的应用了局部信息,保留了平面结构信息。
(3)DNN以向量形式输入,未考虑平面的结构信息,而在图像领域和自然语言处理领域,平面信息很重要,因此CNN比DNN处理结果更好。由于DNN、CNN的输入、输出长度固定,而自然语言处理中的语句长度通常不固定,所以DNN、CNN处理这种问题效率较低,且无法处理时序相关的序列问题.为了解决这些问题,出现了循环神经网络RNN。(RNN本文暂不讲解,后续文章会讲到)

三、CNN五种结构组成

1、输入层

在处理图像的CNN中,输入层一般代表了一张图片的像素矩阵。可以用三维矩阵代表一张图片。三维矩阵的长和宽代表了图像的大小,而三维矩阵的深度代表了图像的色彩通道。比如黑白图片的深度为1,而在RGB色彩模式下,图像的深度为3。

2、卷积层(Convolution Layer)

卷积层是CNN最重要的部分。它与传统全连接层不同,卷积层中每一个节点的输入只是上一层神经网络的一小块。卷积层被称为过滤器(filter)或者内核(kernel),Tensorflow的官方文档中称这个部分为过滤器(filter)
【注意】在一个卷积层中,过滤器(filter)所处理的节点矩阵的长和宽都是由人工指定的,这个节点矩阵的尺寸也被称为过滤器尺寸。常用的尺寸有3x3或5x5,而过滤层处理的矩阵深度和当前处理的神经层网络节点矩阵的深度一致。
下图为卷积层过滤器(filter)结构示意图
在这里插入图片描述
下图为卷积过程
在这里插入图片描述
详细过程如下,Input矩阵是像素点矩阵,Kernel矩阵是过滤器(filter)
在这里插入图片描述

3、池化层(Pooling Layer)

池化层不会改变三维矩阵的深度,但是它可以缩小矩阵的大小。通过池化层,可以进一步缩小最后全连接层中节点的个数,从而达到减少整个神经网络参数的目的。使用池化层既可以加快计算速度也可以防止过拟合。池化层filter的计算不是节点的加权和,而是采用最大值或者平均值计算。使用最大值操作的池化层被称之为最大池化层(max pooling)(最大池化层是使用的最多的磁化层结构)。使用平均值操作的池化层被称之为平均池化层(mean pooling)。
下图分别表示不重叠的4个2x2区域的最大池化层(max pooling)、平均池化层(mean pooling)
在这里插入图片描述
在这里插入图片描述

4、全连接层

在经过多轮卷积层和池化层的处理之后,在CNN的最后一般会由1到2个全连接层来给出最后的分类结果。经过几轮卷积层和池化层的处理之后,可以认为图像中的信息已经被抽象成了信息含量更高的特征。我们可以将卷积层和池化层看成自动图像特征提取的过程。在提取完成之后,仍然需要使用全连接层来完成分类任务。

5、Softmax层

通过Softmax层,可以得到当前样例属于不同种类的概率分布问题。

发布了38 篇原创文章 · 获赞 194 · 访问量 4736

猜你喜欢

转载自blog.csdn.net/weixin_37763870/article/details/103098532
今日推荐