卷积神经网络(CNN)

BP神经网络简介

  1. 信息的正向传播与误差的反向传播
  2. 梯度下降算法修正权值
  3. 收敛慢,冗余,过拟合

卷积神经网络

存在包含卷积层与子抽样层的特征抽取器,整个网络由三部分组成:输入层(INPUT),n个卷积层与子抽样层(池化层)的组合,全连接的多层感知机分类器(FC)。

卷积层(CONV layer)

  • 局部感受野
    一般认为人对外界的认知是从局部到全局的,而图像的空间联系也是局部的像素联系较为紧密,而距离较远的像素相关性则较弱。因而,每个神经元其实没有必要对全局图像进行感知,只需要对局部进行感知,然后在更高层将局部的信息综合起来就得到了全局的信息。


  • 权值共享
    在上面的局部连接中,每个神经元都对应100个参数,一共1000000个神经元,如果这1000000个神经元的100个参数都是相等的,那么参数数目就变为100了。例如,当从一个大尺寸图像中随机选取一小块,比如说 8x8 作为样本,并且从这个小块样本中学习到了一些特征,这时我们可以把从这个 8x8 样本中学习到的特征作为探测器,应用到这个图像的任意地方中去。特别是,我们可以用从 8x8 样本中所学习到的特征跟原本的大尺寸图像作卷积(卷积运算具体过程文末第二个链接中有),从而对这个大尺寸图像上的任一位置获得一个不同特征的激活值。


  • 多卷积核
    上面所述只有100个参数时,表明只有1个10*10的卷积核,显然,特征提取是不充分的,我们可以添加多个卷积核,比如32个卷积核,可以学习32种特征。每个卷积核都会将图像生成为另一幅图像。比如两个卷积核就可以将生成两幅图像,这两幅图像可以看做是一张图像的不同的通道。
  • 激励层
    一般而言跟在卷积操作之后,可以算是卷积层的子层,把卷积层输出的结果做非线性映射,不同的激励函数有不同的效果,CNN一般用的激励函数为ReLU,其余的还有sigmoid,Leaky ReLU,Maxout,tanh。

池化层(Pooling layer)

再通过卷积获得特征后,基于图像的静态性,为了减少计算量可以对不同位置的特征进行聚合统计,例如,人们可以计算图像一个区域上的某个特定特征的平均值 (或最大值)。这些概要统计特征不仅具有低得多的维度 (相比使用所有提取得到的特征),同时还会改善结果(不容易过拟合)。这种聚合的操作就叫做池化 (pooling),有时也称为平均池化或者最大池化 (取决于计算池化的方法)。两种子采样都可以看成特殊的卷积过程,如图下图所示:


  • 均值子采样的卷积核中每个权重都是0.25,卷积核在原图inputX上的滑动的步长为2。均值子采样的效果相当于把原图模糊缩减至原来的1/4。
  • 最大值子采样的卷积核中各权重值中只有一个为1,其余均为0,卷积核中为1的位置对应inputX被卷积核覆盖部分值最大的位置。卷积核在原图inputX上的滑动步长为2。最大值子采样的效果是把原图缩减至原来的1/4,并保留每个2*2区域的最强输入。

池化层的具体作用:

  • 特征不变性,也就是我们在图像处理中经常提到的特征的尺度不变性,池化操作就是图像的resize,平时一张狗的图像被缩小了一倍我们还能认出这是一张狗的照片,这说明这张图像中仍保留着狗最重要的特征,我们一看就能判断图像中画的是一只狗,图像压缩时去掉的信息只是一些无关紧要的信息,而留下的信息则是具有尺度不变性的特征,是最能表达图像的特征。
  • 特征降维,我们知道一幅图像含有的信息是很大的,特征也很多,但是有些信息对于我们做图像任务时没有太多用途或者有重复,我们可以把这类冗余信息去除,把最重要的特征抽取出来,这也是池化操作的一大作用。
  • 在一定程度上防止过拟合,更方便优化。


CNN的一般结构如下:

  • INPUT
  • M*[N*(CONV+RELU)+POOL]
  • (FC+RELU)*K
  • FC

在实际应用中,往往使用多层卷积,然后再使用全连接层进行训练,多层卷积的目的是一层卷积学到的特征往往是局部的,层数越高,学到的特征就越全局化。

参考文章来源
作者:yunpiao123456
来源:CSDN
原文:https://blog.csdn.net/yunpiao123456/article/details/52437794
其它参考链接:https://www.cnblogs.com/skyfsm/p/6790245.html

你可能感兴趣的:(卷积神经网络(CNN))