深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-01-CNN基础知识点

《CNN基础知识点》From:Convolutional Neural Networks (LeNet)

原文链接可以查看更多信息:http://blog.csdn.net/niuwei22007/article/details/47399913

  1. 神经认知机
     卷积神经网络是受生物灵感的多层感知机的变体。从Hubel和Wiesel的早期对猫的视觉皮层的研究工作中得出,视觉皮层包含一组复杂的细胞排列。这些细胞会对很小的子区域敏感,称作Receptive Field(感受野细胞)。根据这个概念提出了神经认知机。它的主要作用就是Recept部分图像信息(或特征),然后通过分层局部相连,将各个局部特征组合成整个图像特征。 需要仔细阅读的论文包括:
     (1) 第一篇关于感受野功能的论文Receptive fields and functional architecture of monkey striate cortex,1968
     (2) the NeoCognitron A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position,1980
     (3) HMAX Robust object recog-nition with cortex-like mechanisms,2007
     (4) 非常重要的LeNet-5 Gradient-based learning applied to document recognition,1998
     
  2. 稀疏连接
     CNN层与层之间的连接并不全是全连接,而是局部连接,它的作用就是大幅度减少参数。
    深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-01-CNN基础知识点_第1张图片

    图1 层间连接示意图
  3. 权值共享
     在CNNs中,每一种过滤器都可以通过重复堆叠而覆盖整个视野。这种堆叠就是复制自己,因此它们的单元共享同一个权值和偏置值,从而形成一张特征图。
     
     图2中 m 层是由3个隐层单元构成的一张特征图。相同颜色的权值是共享的。梯度下降法仍然可以用来训练它们所共享的参数,不过需要在原算法基础上进行小的改动。共享权值的梯度就是简单的对每个共享参数的梯度求和得到。
    图2 权值共享图

    图2 权值共享图
  4. 详细计算说明
     为了更丰富的表示数据特征,每个隐藏层会包含多个特征图
     定义 hk 代表某层的第 k 个特征图。
     公式 hkij=tanh((Wkx)ij+bk) 用来计算 hk ;其中 是卷积操作。
     以上公式是如何计算特征图的呢?是通过针对整个图像中不同的子区域数据,重复的调用同一个函数,最终覆盖整幅图像时,就得到了一张特征图。换句话说,就是用带有偏置项( bk )的线性滤波器( Wk )与输入图像( x )进行卷积运算( ),再将结果通过一个非线性函数( tanh )所得到的结果( hk )
     
    深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-01-CNN基础知识点_第2张图片

    图3 举例,一层中含4个特征图

      图3中的CNN含有2层, m1 层包含4个特征图, m 层包含2个特征图,记为 h0 h1 h0 h1 由不同的卷积核在前一层所有map上作卷积并将对应元素累加后加一个偏置,再求sigmod得到的(假设m与m-1层全连接,则m层共有4*2=8个卷积核)。其中, h0 h1 的权值 W0 W1 是一个3维张量,第一维表示前一层特征图的下标,后两维表示该特征图的坐标。综合起来, Wklij 表示 m 层第 k 个特征图的每一个像素点的权重与 m1 层第 l 个特征图的 (i,j) 像素点的权重相连接。
      
  5. 卷积运算
      用的是著名的Python库Theano. ConvOp。具体如何使用及运行效果,见我的另外一篇博客Python之Theano.ConvOp,讲的很详细。
      
  6. 最大池化
      CNN中另外一个很重的概念就是最大池化。它是一种非线性的下采样(个人理解其作用类似于降维)方法。最大池化把输入图像划分不相重叠的图像矩阵块,每一个子区域输出其最大值。最大池化方法在视觉处理问题中非常有效的两个原因是:
     (1) 通过减少非最大值来降低对上层的计算复杂度。
     (2) 池化结果支持平移不变性。在卷积层中,每个像素点有8个方向可以平移。当最大池化窗口为 22 区域时,其中有3个方向会产生相同结果;当最大池化窗口为 33 区域时,则会有5个方向会产生相同的结果。
     在Theano中的应用举例就不介绍了。
     
  7. 至此,CNN的基本知识点基本介绍完毕。下一节学习一个完整的CNN模型–LeNet

    参考资料
    (1) http://deeplearning.net/tutorial/lenet.html
    (2) Deep Learning(深度学习)学习笔记整理系列之(七)
    (3) Deep learning with Theano 官方中文教程(翻译)(四)—— 卷积神经网络(CNN)

你可能感兴趣的:(CNN,Deep,Learning)