Deep learning笔记——张量压缩(一)

参考Github项目:https://github.com/timgaripov/TensorNet-TF
参考论文链接:http://arxiv.org/abs/1509.06569

在一个复杂的大型神经网络中,权重(Weights)的保存需要占用相当大的空间,尤其是在全连接层(FC-layers)部分。张量压缩是以张量(tensor)的形式保存权重矩阵的技术,能够在具有较高压缩率的情况下保持模型的准确率,从而得到一个轻量的模型。

张量

张量(计算机领域的张量)即使不同维度的数组(array),一维的张量就是向量(vector),二维的张量即是矩阵(matrix)。


Deep learning笔记——张量压缩(一)_第1张图片

Deep learning笔记——张量压缩(一)_第2张图片

TT-format

TT-format是文中提出的一种表示张量的方法。

一个大张量可以表示为数个小张量的组合,就能大幅减小了需要储存的参数量。在深度神经网络的全连接层中,有许多参数是稀疏的(=/≈0)、冗余的,如果能寻找到一个张量的低秩(rank)表示,就能将一个累乘的量转变成较小的量的累加。
Deep learning笔记——张量压缩(一)_第3张图片

如上图所示,一个四维的张量(344*3),被分解成了四个三维的张量(称为Core),这个张量在(2,4,2,3)处的值就可以通过四个core中对应的矩阵相乘来得到。
在这个例子中,张量本身的参数量是3*4*4*3=144,而用TT-format进行表示只需要3*3+3*3*4+3*3*4+3*3=90个参数,这个例子的秩为3,如果能得到更低的秩,就可以得到更高的压缩率。

除此之外,TT-format还可以用来表示矩阵和向量,并支持进行按位乘法、加法。

TT-layer

在神经网络的全连接层中,前向传播需要计算y=Wx+b,反向传播则需要计算dW和db。

通过将y,x,W,b分别以张量的形式表示,再转化成TT-format进行运算,既能节省内存,也能节省时间。同样,反向传播过程也能通过这种方法节约计算资源。

计算量对比:

Deep learning笔记——张量压缩(一)_第4张图片

你可能感兴趣的:(Deep learning笔记——张量压缩(一))