卷积神经网络简介

卷积神经网络简介

       目前卷积神经网络的应用非常广泛,主要应用于图像识别、自然语言处理等人工智能领域,它的突出表现让人觉得非常神奇又有趣。因此,就学习一下卷积神经网络,拓宽已有的知识面,充实现有的技能库。

       下面的内容都是看书笔记,参考书是郑泽宇等著的《TensorFlow实战Google深度学习框架》,书中的每个部分都写的很好,所有代码都有详细的注释,看得出作者的高水平和用心,强烈推荐。

        一、卷积神经网络为什么能更好处理图像问题?

        一是全连接神经网络参数太多,容易导致过拟合;二是卷积神经网络计算速度更快。例如:一张图片的像素大小为30*30*1,对于三层的全连接神经网络,相当于输入节点为30*30*1,又假设隐藏层为1000个节点,那输入层与隐藏层之间的参数达到30*30*1000+1000=901000个。

        二、卷积神经网络与全连接神经网络的结构有哪些不同点?

两者结构类似,最大的区别是卷积神经网络中相邻两层之间只有部分节点相连,而不是每个节点之间都有边相连,因此输入数据组织方式也不一样。

        三、卷积神经网络的基本结构

        整体架构:输入层——卷积层——池化层——全连接层——输出层

      

                                              LeNet-5模型结构图

       (1)输入层:以图片为例,输入的是一个三维像素矩阵,长和宽表示图像的像素大小,深度表示色彩通道(黑白为1,RGB彩色为3)

       (2)卷积层:卷积层也是一个三维矩阵,它的每个节点(单位节点矩阵)都是上一层的一小块节点(子节点矩阵)加权得来,一小块的尺寸一般取3*3或5*5。此层的作用是对每一小快节点进行深入分析,从而提取图片更高的特征。

       (3)池化层:池化层不会改变三维矩阵的深度,其作用是缩小矩阵,从而减少网络的参数。

       (4)全连接层:跟全连接神经网络作用一样。

       (5)Softmax层:得到当前样例属于不同种类的概率分布,并完成分类。

        四、卷积层前向传播工作机理

        卷积层是整体结构中最重要的部分,也称过滤器(filter)或内核(kernel),作用是将输入矩阵的一个子节点矩阵转化为下一层神经网络上的一个单位节点矩阵(指的是长和宽都为1的矩阵)

        (1)卷积层几个重要的概念

        1.过滤器的尺寸(也即子节点矩阵的大小):常用3*3或5*5

        2.过滤器的深度(也即单位节点矩阵的深度):视情况而设定,往后将逐层递增,一般乘以2

        3.移动步长:指的是子节点矩阵每次的移动距离,一般为1或2

        (2)具体前向传播过程实例

        1.以黑白照片为例:假设这张照片的像素大小为5*5*1,如下所示,里面是它的像素值,现要通过卷积层将它转化为深度为3的3*3*6三维矩阵,选取的过滤器尺寸为3*3,移动步长为1。

权重矩阵和b分别表示3层深度过滤器中第一层的权重值(随机生成)和偏置值,以此类推,还将有第二层和第三层的权重值和偏置值。每一层的权重值共享,也即是说无论过滤器移动到哪,均共用此权重矩阵计算单位节点矩阵的值。

②第一层第一个单位节点矩阵值的计算公式:ReLU{1*1+(-1)*(-1)+0*1+1*(-1)+2*2+(-1)*1+0*0+(-2)*1+1*(-1)+1}=ReLU{2}=2(注:ReLU=max(0,x)),即先计算子节点矩阵和权重矩阵中的值对应相乘之和并加上偏置项,再通过ReLU函数去线性化。

接着,计算第一层第二个单位节点矩阵的值、第三、…、第九个...然后再计算第二层和第三层的单位节点矩阵的值。

最后,卷积运算后得到3*3*5的三维矩阵,此矩阵将进入池化层作进一步处理。此外,若想要卷积后的矩阵大小不变,可使用0填充原矩阵后再运算。

2.RGB照片为例:假设这张照片的像素大小为5*5*3,如下所示,数字是它的像素值,过滤器尺寸、速度、移动步长都与前面相同。

 

        ①运算过程与前面完全相同,唯一不同点是权重矩阵的维数与前面的不一样,这是因为RGB输入的子节点矩阵是三维的,权重矩阵也要是三维才能预制对应相乘。

卷积运算后进入池化层的矩阵同样为3*3*5的矩阵。

五、池化层前向传播工作机理

池化层的主要功能是缩小矩阵,减少模型参数。一般有两种方法池化,常用的是最大池化层,过滤器尺寸的选取、是否使用0填充、移动步长的设定都与卷积层的设置类似。

1)最大池化层:取过滤器中的最大值,如下图示例

       

        2)平均池化层:取过滤器中的平均值,如下图示例 

       

         总结,卷积神经网络的卷积层和池化层主要是用于提取图片的深特征。

posted @ 2019-09-06 11:34  cccurry  阅读(337)  评论(0)    收藏  举报