如何简单理解卷积(线性相关)在NN中的作用?

发布于: 雪球转发:0回复:0喜欢:0

NN中的一层是一个线性系统,生成输出的过程可用权重矩阵与输入相乘来表示。考虑一维输入的情况,假设输入的形状为Nx1,权重矩阵为 MxN,输出为Mx1。通常N很大(比如在图像领域),因此即使M不是特别大,MxN的权重矩阵也仍然很大,会消耗太多的计算和存储资源。如何解决这个问题,也就缩小权重矩阵的规模/复杂度?分两步来看这个问题。

第一步,单纯从数学形式上出发,我们希望权重矩阵能不能是稀疏的?
这是可以的,稀疏的权重矩阵也就是很多元素为0,这意味着输出的每个元素不再与输入的所有元素相关,简单的做法就是让它只跟输入的局部相邻元素相关,这恰好与现实场景中的局部性相对应。这样处理的结果是权重矩阵每一行中只有一段相邻的元素有值,其他均为0。如果这一段元素的个数是固定的值d,这个矩阵看起来就是一个带状对角矩阵。这是一个稀疏矩阵,只包含大约 Mxd 个有值的元素。

每二步,仍然从数学形式出发,我们进一步压缩作为权重矩阵的这个带状对角矩阵。
带状对角矩阵的每一行是有不同偏移的,从上到下依次增大,当我们用它的每一行与输入相乘,其实就是截取输入中不同偏移的一段数据与权重相乘,获得对应的输出元素。假设输入整体产生了一个偏移,我们期望输出也相当于在原来的输出基础上产生一个同样的偏移,而对应的数值应该是不变的。这在时序信号处理上叫时不变性,在图像处理领域叫平移不变性,不管怎么个叫法都是符合我们人对实用系统的直观要求的。如何保证同一段输入在不同的偏移下产生的输出是相同的?很简单,让带状对角矩阵中每一行中的有效元素序列都相同。

经过这两步处理,权重矩阵的元素个数从MxN个压缩为 1xd 个(d <<N),存储和计算量都大大减小。