Abstract
深度学习模型需要大量的计算资源,特别是全连接层。这使得这些深度学习模型很难用在低端设备上,并且这一缺陷进一步阻断了模型的大小增长。在这篇文章中,作者把用于全连接层的密集矩阵变成以Tensor Train的形式,这样参数的数目能够被减少,并且网络层的表现能力能够得以保留。文章特别提到,对于Very Deep VGG networks,全连接层的参数数目能够压缩到20 W倍,整个网络的参数数目能够压缩到7倍。
Introduction
昂贵的硬件和很长的运行时间是使得这些模型在台式机以及便携设备上应用的因素(需要很多工作去解决这个问题)。
全连接层:线性变换;在CNN模型中,全连接层的携带了上百万的参数级别。
因此,这篇文章提出了,用一个紧凑的多线性形式--Tensor Train 形式(TT-formart)替代全连接层的密集权重矩阵。
TT-format能够允许我们使用很少的数据来储存大型密集矩阵参数,同时保持足够的灵活性以执行信号转换。
结果层与现有的神经网络训练算法兼容,叫做TT-layer,具有多个TT-layers的层叫做TensorNet。
Related Work
全连接层占据了整个网络的89%,甚至是100%的内存,所以使得全连接层的更加紧凑是不奇怪的。
如今,存在两种方法使得全连接层的矩阵的形式更加紧凑:
- 找到全连接层矩阵的低秩表示。全连接层的权重矩阵是高度冗余的,通过限制矩阵的秩,能够减少参数并且不降低预测准确率
- 使用特殊的哈希技术绑定权重的随机子集。
这篇文章使用了低秩技术。与传统的低秩方法不同的是,没用去搜索一个权重矩阵的低秩近似,而是使用了Tensor Train 分解算法(这个方法已经被成功了用在了一些数据处理任务中)。
另一个可能的优点是:能够使用比以前更多的隐藏单元。(最近研究表明,通过在经过训练的深层网络的输出上训练浅层网络,可以构造性能接近最新的深层CNN的宽而浅的(即不深层)神经网络)
TT-format
一些记号:
- 向量:e.g.
,
- 矩阵:e.g.
,
- 张量:e,g.
,
TT-format:里的每一个元素能被矩阵积的形式表示,
其中表示张量的维度,
表示每一个维度下的索引
与相同维度相关的
都是矩阵,其大小被限制在
,
。
序列被称为张量
的TT表示的秩,其最大值–作为TT表示的最大TT秩
的:
在 Tensor-Train decomposition 这篇文章中说,任意张量的TT分解存在但不唯一,其秩沿着不同的TT分解是变化的并且寻找一个最低秩的表示是自然地。
用记号表明矩阵
在
的值,其中
。
等式(1)能够被重写成:
通过所有元素的显式枚举来表示张量需要储存
,然而通过TT分解需要储存的元素缩减为
。
TT分解另一个吸引人的特性,如果张量是TT分解的形式,可以执行多种类型的操作:
- 基础的线性代数操作,e.g. 常数加法,乘以常数;
- 张量的求和与乘积;
- 张量全局特征的计算,e.g. 所有元素的和,张量的F范数
向量和矩阵的TT表示
直接将TT分解用于矩阵符合低秩矩阵形式,直接将TT分解用于向量等效于显示的储存其元素。
为了能够有效处理大型矢量和矩阵,以特殊方式定义了它们的TT格式。
TT-vector
考虑一个向量。
在向量的坐标
和一个相关张量
的
维向量索引
之间建立一个双射
,其中
,并且
。
TT-matrix
考虑矩阵,其中
。
让双射以及
把矩阵
的行以及列映射为
维的向量索引,其第
个维度尺寸分别是
。
从矩阵,我们可以得到一个
维的张量
,其第
维的长度是
,并且被元组
索引。
张量能够被写成TT-format:
TT-layer
TT-layer是以TT-format储存权重矩阵的全连接层。
全连接层是把线性变换用在维输入向量
:
TT-layer的形式是:








网友评论