简单来说就是用一个卷积核来和一个图像来进行卷积,记住是同一个卷积核,不改变卷积核的值。这样可以减少权值参数。共享就是一个图片对卷积核是共同享有的。
对于一个100*100像素的图像,如果我们用一个神经元来对图像进行操作,这个神经元大小就是100*100=10000,单如果我们使用10*10的卷积核,我们虽然需要计算多次,但我们需要的参数只有10*10=100个,加上一个偏向b,一共只需要101个参数。我们取得图像大小还是100*100。
如果我们取得图像比较大,它的参数将会更加多。我们通过10*10的卷积核对图像进行特征提取,这样我们就得到一个Feature Map。
还有一个问题就是一个卷积核就能将所有的特征都提取完成吗?
一个卷积核只能提取一个特征,所以我们需要多几个卷积核,假设我们有6个卷积核,我们就会得到6个Feature Map,将这6个Feature Map组成一起就是一个神经元。这6个Feature Map我们需要101*6=606个参数。这个值和10000比还是比较小的。
如果像之前的神经网络, 两两相连, 需要 28x28 = 784 输入层, 加上第一个隐藏层30个神经元, 则需要784x30再加上30个b, 总共23,550个参数! 多了40倍的参数。
参考文献:
CNN之权值共享的理解
https://blog.csdn.net/xiaogaogao1030/article/details/52526440
cnn中权值共享理解
https://blog.csdn.net/lien0906/article/details/51249947
详细解释CNN卷积神经网络各层的参数和链接个数的计算
https://blog.csdn.net/dcxhun3/article/details/46878999