您的位置:首页 > 理论基础 > 计算机网络

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

2016-03-30 10:41 771 查看
转载自:http://blog.csdn.net/niuwei22007/article/details/47399913

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

原文链接可以查看更多信息:http://blog.csdn.net/niuwei22007/article/details/47399913
神经认知机。 

 卷积神经网络是受生物灵感的多层感知机的变体。从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 

 
稀疏连接。 

 CNN层与层之间的连接并不全是全连接,而是局部连接,它的作用就是大幅度减少参数。 



图1 层间连接示意图

权值共享。 

 在CNNs中,每一种过滤器都可以通过重复堆叠而覆盖整个视野。这种堆叠就是复制自己,因此它们的单元共享同一个权值和偏置值,从而形成一张特征图。 

  

 图2中m层是由3个隐层单元构成的一张特征图。相同颜色的权值是共享的。梯度下降法仍然可以用来训练它们所共享的参数,不过需要在原算法基础上进行小的改动。共享权值的梯度就是简单的对每个共享参数的梯度求和得到。 



图2 权值共享图

详细计算说明。 

 为了更丰富的表示数据特征,每个隐藏层会包含多个特征图。 

 定义 hk代表某层的第k个特征图。 

 公式 hkij=tanh((Wk∗x)ij+bk) 用来计算hk ;其中∗是卷积操作。 

 以上公式是如何计算特征图的呢?是通过针对整个图像中不同的子区域数据,重复的调用同一个函数,最终覆盖整幅图像时,就得到了一张特征图。换句话说,就是用带有偏置项(bk)的线性滤波器(Wk)与输入图像(x)进行卷积运算(∗),再将结果通过一个非线性函数(tanh)所得到的结果(hk)。 

 



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

  图3中的CNN含有2层,m−1层包含4个特征图,m层包含2个特征图,记为h0和h1,h0和h1是由不同的卷积核在前一层所有map上作卷积并将对应元素累加后加一个偏置,再求sigmod得到的(假设m与m-1层全连接,则m层共有4*2=8个卷积核)。其中,h0和h1的权值W0和W1是一个3维张量,第一维表示前一层特征图的下标,后两维表示该特征图的坐标。综合起来,Wklij表示m层第k个特征图的每一个像素点的权重与m−1层第l个特征图的(i,j)像素点的权重相连接。 

  
卷积运算。 

  用的是著名的Python库Theano. ConvOp。具体如何使用及运行效果,见我的另外一篇博客Python之Theano.ConvOp,讲的很详细。 

  
最大池化。 

  CNN中另外一个很重的概念就是最大池化。它是一种非线性的下采样(个人理解其作用类似于降维)方法。最大池化把输入图像划分不相重叠的图像矩阵块,每一个子区域输出其最大值。最大池化方法在视觉处理问题中非常有效的两个原因是: 

 (1) 通过减少非最大值来降低对上层的计算复杂度。 

 (2) 池化结果支持平移不变性。在卷积层中,每个像素点有8个方向可以平移。当最大池化窗口为2∗2区域时,其中有3个方向会产生相同结果;当最大池化窗口为3∗3区域时,则会有5个方向会产生相同的结果。 

 在Theano中的应用举例就不介绍了。 

 

至此,CNN的基本知识点基本介绍完毕。下一节学习一个完整的CNN模型–LeNet

参考资料 

(1) http://deeplearning.net/tutorial/lenet.html 

(2) Deep Learning(深度学习)学习笔记整理系列之(七) 

(3) Deep learning with Theano 官方中文教程(翻译)(四)—— 卷积神经网络(CNN)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: