[神经网络学习笔记]卷积神经网络CNN(Convolutional Neural Networks, CNN) 综述

本人刚入门神经网络,边学习边总结,参考了很多大佬的博客和论文,整理出的自己思路的笔记,供入门的同学一起参考。其中可能有理解错误的地方,望指出

参考主要文献和博客

学习其他模型链接

一、常用的深度学习模型有

  • 深度置信网络(Deep Belief Network DBN)
  • 层叠自动去噪编码机(Stacked Deoising Autoencodes,SDA)
  • 卷积神经网络(Convolutional Neural Network,CNN)

二、神经元

  • 是人工神经网络的基本处理单元,一般是多个输入,单个输出的单元,可以用一个函数来表示
    在这里插入图片描述

yj = f(bj + i n ) \sum^n _i) (xi* wij) )

  • xi 表示输入信号
  • wij表示输入信号 xi 与神经元 j 连接的权重值
  • bj表示神经元的内部状态即偏置
  • yj为神经元的输出
  • f函数叫激励函数。可以理解为一个根据不同因素、以及各个因素的重要性程度而做决策的模型。可以把激活函数看作一种“分类的概率”。
  • 还可以是线性纠正函数(rectified linear unit,ReLU),Sigmoid函数。tanh(x)函数,径向基函数。sigmoid/tanh比较常见于全连接层,后者relu常见于卷积层。
  • sigmoid函数的功能是相当于把一个实数压缩至0到1之间。当z是非常大的正数时,g(z)会趋近于1,而z是非常小的负数时,则g(z)会趋近于0。比如激活函数的输出为0.9的话便可以解释为90%的概率为正样本。
  • tanh(x)函数的功能是相当于把一个实数压缩至-1到1之间。
    在这里插入图片描述

三、多层感知器(Multilayer Perceptron,MLP)

  • 最初的神经网络模型MLP
  • 组成:输入层、隐藏层、输出层
  • 解决的是单层感知器不能解决的线性不可分问题、

神经网络结构图

在这里插入图片描述

四、卷积神经网络

本质:每一个卷积层包含一定数量的特征面或者卷积核

(一)卷积

  • 定义:对图像矩阵和滤波矩阵做内积(逐个元素相乘再求和)
    在这里插入图片描述

  • 中间滤波器filter与数据窗口做内积,其具体计算过程则是:40 + 00 + 00 + 00 + 01 + 01 + 00 + 01 + -4*2 = -8

(二)CNN基本结构

  • CNN基本结构:输入层、卷积层、取样层、全连接层、输出层

1.卷积层(convolutional layer)

  • 本质:多个滤波器(卷积和)叠加便成了卷积层。
  • 组成:多个特征面组成,每个特征面由多个神经元组成。
  • 作用:通过卷积操作提取输入的不同特征

2.池化层(Pooling layer)

  • 组成:多个特征面
  • 作用:在语义上把相似的特征合并起来,取样层通过池化操作减少卷积层间的连接数量,神经元数量减少,使得特征对噪声和变形具有鲁棒性,降低了网络模型的计算量。
  • 常用方法:针对局部接受域–最大池化(max-pooling)、均值池化(mean pooling)、随机池化(stachastic pooling)
  • 原理:即取区域平均内的最大值或者均值

在这里插入图片描述

上图所展示的是取区域最大,即上图左边部分中 左上角2x2的矩阵中6最大,右上角2x2的矩阵中8最大,左下角2x2的矩阵中3最大,右下角2x2的矩阵中4最大,所以得到上图右边部分的结果:6 8 3 4

3.全连接层(也可称softmax layer)

  • 作用:每个神经元与其前一层进行全连接,将前期所提取的各种局部特征综合起来,最后通过输出层得到每个类别的后验概率。

五、CNN举例–识别一个车

在这里插入图片描述

  • 第一步数据输入层:对数据处理,比如去均值、归一化…
  • 第二步卷积+池化层: 通过卷积操作提取输入的不同特;通过池化操作减少卷积层间的连接数量,神经元数量减少,使得特征对噪声和变形具有鲁棒性,降低了网络模型的计算量。
  • 第三步全连接层:每个神经元与其前一层进行全连接,将前期所提取的各种局部特征综合起来,最后通过输出层得到每个类别的后验概率。

六、影响CNN性能的因素

  • 层数(深度)
  • 特征面的数目
  • 网络组织

七、优缺点

  • 优点:
  • 与传统的MLP相比,CNN中卷积层的权值共享使网络中可训练的参数边少,降低了网络模型复杂度,较少过拟合,从而获得一个更好的泛化能力。
  • CNN结构中使用池化操作使得模型中的神经元个数大大的减少,对输入空间的平移不变行也更有鲁棒性
  • CNN结构的拓展性很强,它可以采用很深的层数,深度模型具有更强的表达能力,能够处理更复杂的分类问题
  • CNN的局部连接、权值共享和池化操作比传统的MLP具有更少的连接和参数,更易于训练。

八、学习汇报PPT

猜你喜欢

转载自blog.csdn.net/weixin_43935696/article/details/107482361