CNN学习笔记

来源:互联网 发布:网络言论自由利大于弊 编辑:程序博客网 时间:2024/06/03 05:07
       主要参照网上其他大神和前辈们的理解,通过自己的记录和总结加深记忆理解,也方便自己查找和形成习惯。


       不说多的,尽量挑重点说。
       一.卷积神经网络的结构:
        卷积神经网络突出卷积两个字,区别于普通神经网络就在于:对图像来说可以理解为输入层的神经元不再是单个像素点,而是图像一块区域的卷积,这个卷积实际上就是提取了局部特征。另外在结构上有很多地方需要特殊处理,如下图为LeNet5结构图:
        Conv1:首先对输入图像(32*32)进行5*5模版的卷积操作,相当于滤波处理(至于为什么是6个特征图,我也是通过看别人总结,并没看论文细节,我先在此猜测可能是gabor滤波器的6个方向吧,等忙完开题看了原论文再来改)。得到28*28的C1层。
        Subs2:将得到的6幅C1特征图进行高宽折半的降采样,得到S2层,这一步也叫做池化(pooling)。也就是输出14*14的将采样特征图。
        Conv3:将上一层的S2映射到下一层的C3层,这层的具体映射细节比较麻烦,说完结构后具体说。输出16幅10*10特征图。
        Subs4:同Subs2一样的处理方法,输出C3层的降采样特征图,最终得到一个16*5*5的向量,这个特征向量就相当于最终特征了。
        Full connection:这里指的应该是普通的神经网络结构了,两级隐层分别有120个和84个。
        Guassian connection:高斯连接?这里应该是类似softmax之类的回归吧?反正10个输出。

           开始说到S2层到C3层的Conv3运算,具体方法是这样来实现的
                   1.对S2的6张图编号0~5,C3的16张图编号0~15。
                   2.依照下面这个图的编码,来计算,计算方法举例:C3的0号特征图是怎么来的?根据编码,把S2中的0,1,2号特征图分别用一个5*5的卷积模版去提取特征,然                           后把所得的3个特征相加。就得到C3层里面的一个特征图的一个点。以此类推,相应得得到16张10*10的特征图C3层。(这里的卷积模版对于S2中的不同编号的特                       征图应该都是同一个,对于C3中不同编号应该不一样,所以一共应该是16个卷积模版吧?这个卷积模版就是神经网络的连接权值,可以通过训练得到?)


个人理解总结一下模型,降采样池化肯定是为了增加一定的位移不变性,减少运算量。卷积模版的值具体是如何来的?是通过某种整体的训练得到?还是先求patch的稀疏特征,即C1的6个卷积模版,C3的16个卷积模版,每一个模版代表一个特征是否激活?这样一来训练好麻烦啊。

随处可见的CNN识别效果:http://yann.lecun.com/exdb/lenet/index.html






                   
0 0