CNN中的权值共享理解

CNN中的权值共享理解基本名词对应 Feature Map 特征图 特征映射 Weight 权值 权重 权值共享 CNN 是权重共享 减少了参数的数量 这个有必要再对比研究一下 一般神经网络层与层之间的连接是 每个神经元与上一层的全部神经元相连 这些连接线的权重独立于其他的神经元

大家好,我是讯享网,很高兴认识大家。

基本名词对应:

权值共享

CNN是权重共享,减少了参数的数量。这个有必要再对比研究一下。
一般神经网络层与层之间的连接是,每个神经元与上一层的全部神经元相连,这些连接线的权重独立于其他的神经元,所以假设上一层是m个神经元,当前层是n个神经元,那么共有 m × n m \times n m×n个连接,也就有 m × n m \times n m×n个权重。权重矩阵就是 m × n m \times n m×n形状。

一般用权重矩阵W表示,每一行是一个神经元与上一层所有神经元相连接的权重的值

而在CNN里的权重共享是如何具体操作的呢?

需要理清的概念是,每个层都是一个展平的结构。原始图像是二维的,用在输入层的输入向量是一整条的。

卷积层存的是什么?

不是我最初理解的存的是多个卷积核的展开值,而是卷积计算的结果。具体下面会说到。

再理清一下卷积计算,我们知道是拿卷积核与卷积核的感受野里的像素进行卷积计算,


讯享网

卷积层里存的是什么数值?卷积后的结果?还是权重?但我们知道权重是单独建立的矩阵,是待学习调优的对象,卷积层的值要再往后传,存的必须是像素处理后相关的值。

问题还是存在:卷积层个数与卷积核个数的关系是什么?

每层有多个Feature Map,每个Feature Map通过一种卷积滤波器提取输入的一种特征。每个Feature Map有多个神经元。

比如给定一个输入是32x32像素的图片,Feature Map大小是28x28的神经元阵列,每个神经元对应的值如何计算得来呢?按照卷积计算,比如5x5的卷积核,需要25个参数,也就是权重,在28x28的特征映射 | Feature Map里每个神经元都用这25个参数去进行卷积计算,这样就是所谓的权值共享。

那这个卷积层有多少参数呢?我们看一个Feature Map里每个神经元用的都是一样的5x5的卷积核,按照stride的值往前移动,每一步卷积结果对应一个神经元的值。所以,虽然权值相同,但是每一步下感受野对应的像素值是不同的,得到的结果自然也不同。

参数数量如何计算?单个特征映射里,用的权重一样,卷积核有25个参数,加上每个神经元有一个偏置bias参数,所以共26个参数,也就是一个Feature Map里有26个参数。这个隐层有6个特征图,所以本隐层有26 * 6 = 156个训练参数。

该隐层与输入层有多少连接呢?也很简单,我们看到一个神经元与5x5的像素值相连,共25个连接,注意到bias也是作为一个输入值,所以一个神经元有26个连接。接着看特征樱花色层有多少神经元就可以了,28x28是一个特征映射的神经元阵列,共有6个特征映射,所以得出:26 * 6 * 28 * 28 = 个连接。

28x28是怎么得来的?实际上假定的是padding为0,stride为1,就是开始直接把5x5的卷积核放在图像的左上角,5x5的二维矩阵的左上角对应图像的左上角,往右移动,一次一个像素,32 - 5 + 1 = 28,向下移动也是一样。

END.

小讯
上一篇 2025-02-18 13:03
下一篇 2025-01-16 16:59

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/44892.html