http://www.jeyzhang.com/cnn-learning-notes-1.html根据这个自己的理解
权值共享理解:
1.首先理解权值共享的意义:
意义就是对于大型网络参数过多计算量过大,所以考虑到使用权值共享的思想。
2.怎样权值共享:
对于一张图片(假设是灰度图),图片大小是1000*1000,第一层隐藏层有10^6个神经元。那么我们采用传统的全连接就需要10^12(1000*1000*10^6)个权值参数,现在我们把这张1000*1000的图片分割为10*10的局部图像组成,一张小图片仅连接一个神经元,也就是我们只需要10*10个权值参数。所有的10^6个神经元共享相同的10*10个参数。所以不管我我们的网络有多少个神经元,我们的参数个数都是10*10。
一种卷积核对应一种特征,不同的卷积核得到图像在不同映射下的的特征,称之为feature map。
我是这样理解的第一步局部链接(缩小图片size,所有局部图对应相同的神经元的权值一样,就好似对每一个局部图对不同的神经元的权值是一样的),第二部权值共享(所有神经元的权值相同)。
此外,偏置参数也是共享的,一种filter对应一个共享的bias。
参数个数 = (filter size) *(filtern umber)
卷积层:
1.类似于数字图像处理的滤波器,参考滤波的模板。
好吧目前就写到这里下次继续
2.卷积核可以理解为一个有多片组成的长方体,若输入20个特征(特征=feature map)那么每个卷积核的长(基于长方体的概念)就是20,卷积核的层数 = feature数。记住一个长方体是一个卷积核,这个卷积核以你设定的步长移动对输入的feature卷积,若输入图像时32*32*3(chennal)的图像,对应的卷积核大小设为5*5*3。每个卷积核的三个层面对原图像的三个通道的同一位置卷积,得到三个在空间平行的数字, 让后让他们相加就是这个卷积核,卷基础的一个feature在这个位置的值。caffe中用im2col(矩阵编程列向量)来简化计算,可以看matlab的相应函数,原理近似有助于理解。