5.Architecture Design
- Low Rank Approximation(低秩近似)
下图是低秩近似的简单示意图,左边是一个普通的全连接层,可以看到权重矩阵大小为 M*N ,而低秩近似的原理就是在两个全连接层之间再插入一层K。是不是很反直观?插入一层后,参数还能变少**?**
没错,的确变少了,我们可以看看新插入一层后的参数数量为: NK+KM=K*(M+N),因为K<M,K<N,所以参数减少了。
但是低秩近似之所以叫低秩,是因为原来的矩阵的秩最大可能是min(M,N),而新增一层后可以看到矩阵U和V的秩都是小于等于K的,我们知道rank(AB)≤min(rank(A),rank(B)), 所以相乘之后的矩阵的秩一定还是小于等于K。那么这样会带来什么影响呢?那就是原先全连接层能表示更大的空间,而现在只能表示小一些的空间了。
当然,加入了linear层之后会限制模型。
-
- Depthwise Separable Convolution(深可分卷积)
首先看一下标准卷积所需要的参数量。如下图示,输入数据由两个66的feature map组成,之后用4个大小为33的卷积核做卷积,最后的输出特征图大小为444。每个卷积核参数数量为233=18,所以总共用到的参数数量为4*18=72。
Depthwise Separable卷积分成了两步,如下图示。
- Depthwise Separable Convolution(深可分卷积)
首先是输入数据的每个通道只由一个二维的卷积核负责,即卷积核通道数固定为1,而不是像上面那样,每个卷积核的通道数和输入通道数保持一致。这样最后得到的输出特征图的通道数等于输入通道数。
因为第一步得到的输出特征图是用不同卷积核计算得到的,所以不同通道之间是独立的,因此我们还需要对不同通道之间进行关联。为了实现关联,在第二步中使用了11大小的卷积核,通道数量等于输入数据的通道数量。另外11卷积核的数量等于预期输出特征图的通道数,在这里等于4。最后我们可以得到和标准卷积一样的效果,而且参数数量更少:332+(112)*4=26。