简要笔记-CNN网络

        以下是CNN网络的简要介绍。

1 CNN的发展简述

        CNN可以有效降低传统神经网络(全连接)的复杂性,常见的网络结构有LeNet、AlexNet、ZFNet、VGGNet、GoogleNet、ResNet等。

1.1 CNN常见的网络结构

        (1)LeNet(1998年 ): 首个CNN网络结构

        (2)AlexNet(2012年 ): 错误率 15.3%

        (3)ZFNet(2013年 ): 错误率 14.8%

        (4)VGGNet(2014年 ): ILSVRC2014比赛分类项目亚军,错误率 7.3%

        (5)GoogleNet(2014年 ): ILSVRC2014比赛分类项目冠军,错误率 6.67 %

        (6)ResNet(2015年 ): 错误率 3.6 %

1.2 CNN的应用场景

        (1)图像分类

        (2)目标检测

        (3)图像分割

        (4)语义分割

2 CNN网络的主要结构

2.1 输入层(Input Layer)

        网络数据输入之前要进行数据预处理。

        (1)为什么要数据预处理

        主要原因是输入数据的单位如果不一样,会导致神经网络收敛速度慢。激活函数是有值域限制的,所以需要将输入数据映射到激活函数的值域范围内。

        (2)数据预处理的常见方式

        1)去均值

        2)归一化

        3)PCA降维、白化

        白化:在PCA的基础上,对转换后的数据 每个特征轴上进行归一化处理。实际应用中,一般并不会使用PCA和白化的操作。

2.2 卷积层(CONV Layer)

        卷积层的输出也被称为特征映射(feature map),因为它可以被视为一个输入映射到下一层的空间维度的转换器。
        在卷积神经网络中,对于某一层的任意元素 𝑥 ,其感受野(receptive field)是指在前向传播期间可能影响 𝑥 计算的所有元素(来自所有先前层)。

        而权值共享:给定一张输入图片,用一个filter去扫描这张图,filter里面的数就叫做权重,而这张图的每个位置是被同样的filter扫的,所以卷积计算的权重是一样的,这就是权值共享。

        下图是卷积计算过程示例:

        在卷积之前还有填充的处理以及步幅的选择,在此不做过多阐述,后面会专门进行介绍。

2.3 激活层(Activiation Layer)

        激活层的作用是将卷积层的输出结果再做一次非线性的转换。

        常用的激活函数有:SigmoidTanhRelu、Leaky Relu、Maxout等。

        (1)Sigmoid

        优点:简单,容易理解。
        缺点:容易产生梯度消失梯度爆炸

        数学表达式:

       

        导函数表达式:

                            

        函数图像:

         (2)Tanh(双曲正切)函数

        优点:易理解,0中心化。
        缺点:容易产生死神经元。

        数学表达式:

         导函数表达式:

                          

         函数图像:

         (3)Relu函数

        优点:相比于Sigmoid和Tanh,具有更快的收敛速度

        缺点:没有边界。

        数学表达式:


        

         导函数表达式:

                        

        函数图像:

  

 2.3 小结

        (1)首先使用Relu,如果效果不好,考虑使用Leaky或者Maxout,目前大多数CNN均使用Relu作为激活函数。

        (2)sigmoid激活函数在CNN中一般不用,而tanh激活函数只在某些特定场景下效果好。

2.4 池化层(Pooling Layer)

        实施池化的目的:

        (1) 降低信息冗余;

        (2) 提升模型的尺度不变性、旋转不变性;

        (3) 防止过拟合。        

        池化层的常见操作包含以下几种:最大值池化,均值池化,随机池化,中值池化,组合池化等。

        更为常用的有两种池化层:最大池化和平均池化。(一般选择最大池化

        最大池化方式的特点:

        (1)最大池化(max-pooling)即取局部接受域中值最大的点。
        (2)最大值池化的优点在于它能学习到图像的边缘和纹理结构。
        (3)根据相关理论,特征提取的误差主要来自两个方面:
                1)邻域大小受限造成的估计值方差增大;
                2)卷积层参数误差造成估计均值的偏移。
        一般来说,mean-pooling能减小第一种误差,更多的保留图像的背景信息,max-pooling能减小第二种误差,更多的保留纹理信息。与mean-pooling近似,在局部意义上,则服从max-pooling的准则。

        下图是最大池化方式的示例:

2.5 全连接层(FC Layer)

        全连接层目的:对卷积观测到的局部信息进行整合,得到全局信息。

2.6 Batch Normalization层

        在网络每一层输入前,插入一个BN归一化层,将输入数据处理为服从高斯分布的数据,然后再进入网络的下一层。

        BN层作用:

        (1)防止梯度消失

        (2)加快网络训练速度

        (3)抑制网络过拟合。

        BN层一般放在卷积层后,池化层前:

        (1)卷积层 --> Relu激活层 --> BN层 --> 池化层

        (2)卷积层 -->BN层 --> Relu激活层 --> 池化层

3 总结        

        以上是对CNN网络的基本结构作简要介绍,CNN网络的实现中仍有许多细节,如,如何处理梯度消失和梯度爆炸、卷积里的填充和步幅等,这些将在以后进行具体介绍。

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值