美文网首页
CNN原理解析

CNN原理解析

作者: Elijah_cs | 来源:发表于2019-07-17 15:46 被阅读0次
  • 预备知识
    一般来说,分类和识别都需要提取相应的特征来做决策,传统的机器学习在特征提取方面需要比较精细的设计,并且需要在相应的领域有足够的知识以判断特征的有效性,并且在数据输入之前需要进行清洗等预处理,而对于神经网络来说,你只需要把数据输入进去,不用精心设计,他会自动的提取特征,由于其大量的参数,它可以拟合给定的数据,但是由于其黑盒的特性,难以调节,目前还在研究,本次探讨下神经网络的一个具有里程碑意义的结构-CNN。
  • CNN VS FCN
    在很多年前,全连接网络FCN就出现了,但是一直不温不火,尤其是在图像领域。我们知道,图像是由一个个像素点构成的,一般来说是[w,h,c]这样的格式,w,h为长宽,c为channels通道数,RGB图像的channel为3,例如在MNIST中,它是一个灰度图,所以一个图像是28*28*1,但是在FCN中,把它直接展开我i一个28*28= 784的一维向量输入进去,第一丧失了其位置信息,显然像素之间的位置信息是特别重要的,第二使用全连接层需要的参数太多。

CNN

然后通过CNN的可视化可知,CNN识别物体是通过从局部到整体到实现的,CNN识别了局部的特征之后,以及局部特征的相对应的位置,就可以拼凑起来,对整体进行识别。
CNN是由卷积层,采样层和全连接层构成的,大致过程是这样的:

  • 第一个卷积层提取最初的特征,输出特征图(feature map)
  • 第一个采样层在第一卷积层输出的结果进行特征选择,去除多余的特征,重构新的特征图。
  • 第二个卷积层对新的特征图进行特征提取,第二个采样层对第二卷积层输出的结果进行特征选择,卷积层和采样层可以一直循环或者单独使用,最后得到一个最终的feature map,
  • 全连接层根据feature map进行分类
  1. 卷积层
    卷积实际上再传统的图像处理中用得也蛮多的,例如提取边缘的算子,卷积的作用如下:
  • 原始图像经过与特定卷积核的运算,可以提取图像的某些特定特征
  • 不同的卷积核,提取的特征不一样
  • 提取相同的特征,卷积核不一样,效果也不一样。

对于一个输入的图片,只考虑一个通道的话,为一个二维矩阵,以下图为例,一个5*5的图像,经过一个3*3的filter,得到了一个3*3的结果,运算的过程是这样的:蓝色框中的3*3的矩阵和filter进行运算,得到了结果矩阵中的那个蓝色的4,运算的方式就是每个相同位置的值相乘,然后把九个数加起来即可。然后卷积核右移一个单位,与红框中的九个数进行运算,得到结果中的红色的3,依次这么右移和下移计算即可得到最终的结果,


CNN.PNG

下面是一个动图,可以更直观反映:


CNN.gif

实际上,输入的图片一般为RGB格式,即三通道,那么一次需要三个卷积核,


CNN.PNG

卷积的计算公式:输入一个图片后,结果卷积,输出的结果与原图片和卷积核的大小存在一定的联系,先介绍几个概念:

  • padding:在原图像的四周加上0,下图padding = 1
padding.PNG
  • stride: 卷积核一次移动的距离,下图stride=2;


    stride.PNG

下面给出公式:
      Q = (n + 2p - f)/s + 1
其中:

  • Q: 运算后结果的尺度
  • n:原始图像的尺度
  • p: padding的尺度
  • f:filter的尺度
  • s:卷积步长
  1. 采样层
    经过卷积得到了一个feature map,接下来就是特征选择的采样pooling操作,一般现在都是做maxpooling,也会有特殊的平均池化。maxpooling的操作很简单,在给定的范围选出最大值即可,如下图:
maxpool.PNG

实际上,仅仅是这样的一个简单的操作,可以让我们的效率大大提高,其优点如下:

  • 提取出了最有效的特征
  • 减小的图片的大小,减少了运算
  1. 全连接层
    最后得到的高度提纯的特征输入到全连接层,进行分类或者回归。

参考:
卷积神经网络(CNN)入门讲解
卷积神经网络(Convolutional Neural Networks,CNN)

相关文章

  • CNN原理解析

    预备知识一般来说,分类和识别都需要提取相应的特征来做决策,传统的机器学习在特征提取方面需要比较精细的设计,并且需要...

  • CNN Is All You Need 论文解析

    CNN Is All You Need 论文解析

  • tensorflow(1):框架基本概念

    介绍   最近在看李嘉璇的《TensorFlow技术解析与实践一书》,学习CNN的基本原理和实现,想用Tensor...

  • Faster R-CNN 入坑之源码阅读

    Faster R-CNN 原理简述 上面就是Faster R-CNN的原理图: 首先搭建一个faster rcnn...

  • Task03:字符识别模型

    0. CNN原理和发展 CNN由卷积(convolution)、池化(pooling)、非线性激活函数(non-l...

  • CNN

    参考:CNN卷积神经网络原理讲解+图片识别应用(附源码)卷积神经网络 – CNN深入学习卷积神经网络(CNN)的原...

  • CNN通俗解析

    摘要: CNN基础知识介绍及TensorFlow具体实现,对于初学者或者求职者而言是一份不可多得的资料。 定义: ...

  • cnn卷积原理

    基本概念 卷积实质上就是加权叠加。 卷积的重要的物理意义是:一个函数(如:单位响应h(n))在另一个函数(如:输入...

  • CNN计算原理

    1.卷积conv CNN编码器与解码器:神经网络为线性变换,当输入向量维度高于输出向量维度时,神经网络相当于一个编...

  • 学习资料汇总

    GeoHash核心原理解析 GeoHash算法学习讲解、解析及原理分析

网友评论

      本文标题:CNN原理解析

      本文链接:https://www.haomeiwen.com/subject/rmrqlctx.html