参考这个文章的部分笔记和理解:
http://blog.csdn.net/dcxhun3/article/details/46878999
输入input: 32 x 32 的图像
使用: 6个 5×5 stride为 1的卷积核
神经元 个数: (32-5+1) * (32 -5 +1) = 28 * 28 个。也就是每一个feature map的大小就是28 * 28 。 其中,32-5是卷积核可以滑过并得到一次计算结果的次数(因为步幅是1),+1是卷积核放在最开始的位置上还没开始滑动时的一次计算结果。
那么这一层一共有 (5*5 +1)*6个可训练参数,其中5*5为卷积核的大小,1为一个bias参数, 6为6种卷积核。
注意如果是三通道,三个通道的权重并不共享。 所以对于以上的计算,三通道的参数数量应该还要乘以3。
个人总结的 feature map 和 神经元的关系 及其他概念的关系 :
feature map 和 神经元的关系:
单个卷积核情况下:
神经元是 前一层wx+b 到下一层的计算过程,所谓这一层的连接数,也就是有多少个 wx+b的连接(一个卷积核有多个w只有一个bias)
一个feature map 是多个(比如M个)神经元计算的结果汇总
多个卷积核情况下: 同一层可以有多个(比如N个)卷积核,每个卷积核对应(卷积的结果是)一个feature map ,也就是这一层有N个feature map, 那这一层共有 N*M个神经元。(如果每个fm的神经元个数不一样,则累加每个fm的神经元个数)
可训练参数个数, 与神经元的个数无关,只与卷积核的大小及卷积核的个数相关,还有通道数 神经元个数, 除了卷积核大小和个数,还与步幅相关。步幅越大,神经元个数越小
feature map的每个点都是一个神经元的输出。所以 神经元个数 = 特征图大小
连接个数= sigma(单个卷积核参数个数*神经元个数) (单个卷积核会用同样的卷积核参数,每多滑动一下,多生成参数个连接)
CNN权值共享就是同一个Feature Map中神经元权值共享,该Feature Map中的所有神经元使用同一个权值。这与全连接相比,参数减少太多了(整个图像的矩阵大小到卷积核的矩阵大小)