个人理解,如有不足请多多包涵。
之前只知道CNN是让一个filter在图像上滑动,计算乘积后相加。
实际上,这个过程已经蕴含了“权重共享”的概念。filter的参数对于图像中每个像素都是固定的,这就叫做权重共享。这意味着这个filter会在图片中每个局部区域寻找同一个特征。好处是减少参数数量,加快训练速度;可以并行训练。
这么简单的一个概念,为什么会叫“权重共享”这么高大上的名字呢?这或许可以从FC到CNN的演变的角度来看待。
在FC中的每相邻两层之间,对于输出中的任一元素,它都和输入中的所有元素有关。假设输入为M维,输出为N维,那么输出中的每个元素都有M个参数,和输入中的M个元素一一对应。
而人在观察世界时,会先观察局部信息,再从局部信息中获得全局信息。所以可以让输出中的每个元素只关注输入中的一个小区域(比如5*5),那么输出中的每个元素就只有5*5=25个参数,只和这一小块区域有关。这就相当于在全连接网络的基础上切断了一部分连接,所以也称为局部连接。
此时,输出中的每个元素都有自己独立的25个参数,通过这些参数关联到输入中的一个个5*5的局部区域。如果我们让所有元素共享同样的参数,就得到了CNN。这也是为什么参数一样会被称为共享权重。
另外,CNN里涉及到一些概念:
局部感知域: 图像中和filter做乘积的局部区域。比如filter是5*5,那么图像中每个5*5的区域都可以看成一个局部感知域。
特征图(Feature Map):经过filter处理的
感受野:Feature Map中每个元素由原始输入中多大的区域映射而来。详见细说卷积神经网络(CNN)中所谓的“感受野”(Receptive Field)_cnn感受野_NorthSmile的博客-CSDN博客
参考:
如何理解卷积神经网络中的权值共享_卷积神经网络参数共享_zxucver的博客-CSDN博客卷积神经网络及图像处理中共享权重、特征映射等理解_w_bird的博客-CSDN博客