【笔记】Tensorizing Neural Networks

TT分解与网络张量化

TT分解

思路

将一个张量表示为一种运算,即多个低维张量的乘积。只需储存分解后低维张量,进而压缩占用的储存空间。

数学表示与推导

对于一个d维张量
\mathcal{A} \in \mathbb{R}^{p_{1} \times p_{2} \times \ldots \times p_{d}}p_i表示第i维的长度。可以分解为多个低维张量的乘。

\widehat{\mathcal{A}}\left(l_{1}, l_{2}, \ldots, l_{d}\right) \stackrel{T T F}{=} \mathcal{G}_{1}\left(l_{1}\right) \mathcal{G}_{2}\left(l_{2}\right) \ldots \mathcal{G}_{d}\left(l_{d}\right)
规定,
\mathcal{G}_{k} \in \mathbb{R}^{p_{k} \times r_{k-1} \times r_{k}}, l_{k} \in\left[1, p_{k}\right] \forall k \in[1, d] ,r_0=1, r_d=1

image

用TT分解压缩全连接层

对于一个全连接层,数学表示为:\boldsymbol{y}=\boldsymbol{W} \boldsymbol{x}+\boldsymbol{b}。要压缩全连接层,重点在于压缩矩阵\boldsymbol{W}和偏差向量\boldsymbol{b}

矩阵和向量的TT分解形式

向量的TT分解

向量的TT分解实际上是将向量按张量的方式存储,并未压缩

对于一个N长的向量,将N表示为N=n_1\cdot n_2 \cdots n_d,则将向量分解为一个d维的张量,第i维的长度就是对应的n_i

使用一个向量\boldsymbol{\mu}(\ell)=(\mu_1(\ell),\cdots,\mu_d(\ell))来联系张量和向量中的元素,有\mathcal{B}(\boldsymbol{\mu}(\ell))=b_{\ell},其中\mu_k(\ell)

矩阵的TT分解

将矩阵映射到张量,再做TT分解

与向量类似,对于M\times N的矩阵,分别将M,N表示为d个数的相乘。使用向量\boldsymbol{\nu}(t)=\left(\nu_{1}(t), \cdots, \nu_{d}(t)\right)\boldsymbol{\mu}(\ell)=\left(\mu_{1}(\ell), \cdots, \mu_{d}(\ell)\right)来联系张量和矩阵中(t,\ell)位置的元素。张量中第k维的大小为m_kn_k

于是矩阵W中的某个元素可以按下面的规则对应到d维张量中的元素,再对张量TT分解,得到矩阵的TT形式。
W(t, \ell)=\mathcal{W}\left(\left(\nu_{1}(t), \mu_{1}(\ell)\right), \ldots,\left(\nu_{d}(t), \mu_{d}(\ell)\right)\right)=\boldsymbol{G}_{1}\left[\nu_{1}(t), \mu_{1}(\ell)\right] \ldots \boldsymbol{G}_{d}\left[\nu_{d}(t), \mu_{d}(\ell)\right]

TT-Layer

完成了向量和矩阵的TT分解后,为便于将全连接层用TT分解形式表示,将输入向量\boldsymbol{x}和输出向量\boldsymbol{y}同样用TT分解表示为两个d维张量。最终,一个全连接层可以表示为:
\mathcal{Y}\left(i_{1}, \ldots, i_{d}\right)=\sum_{j_{1}, \ldots, j_{d}} \boldsymbol{G}_{1}\left[i_{1}, j_{1}\right] \ldots \boldsymbol{G}_{d}\left[i_{d}, j_{d}\right] \mathcal{X}\left(j_{1}, \ldots, j_{d}\right)+\mathcal{B}\left(i_{1}, \ldots, i_{d}\right)

TT-Layer的随机梯度下降

直接计算损失函数L关于W的梯度要内存占用大,使用TT分解形式的梯度计算。

将序列分为\boldsymbol{i}^-_k:=\left(i_{1}, \ldots, i_{k-1}\right), \boldsymbol{i}_{k}^{+}:=\left(i_{k+1}, \ldots, i_{d}\right), \boldsymbol{i}=\left(\boldsymbol{i}_{k}^{-}, i_{k}, \boldsymbol{i}_{k}^{+}\right)三部分,那么\mathcal{W}也被分为了三部分:
\boldsymbol{P}_{k}^{-}\left[\boldsymbol{i}_{k}^{-}, \boldsymbol{j}_{k}^{-}\right]:=\boldsymbol{G}_{1}\left[i_{1}, j_{1}\right] \ldots \boldsymbol{G}_{k-1}\left[i_{k-1}, j_{k-1}\right]
\boldsymbol{P}_{k}^{+}\left[\boldsymbol{i}_{k}^{+}, \boldsymbol{j}_{k}^{+}\right]:=\boldsymbol{G}_{k+1}\left[i_{k+1}, j_{k+1}\right] \ldots \boldsymbol{G}_{d}\left[i_{d}, j_{d}\right]
则全连接层又可写为:
\mathcal{Y}(i)=\mathcal{Y}\left(i_{k}^{-}, i_{k}, i_{k}^{+}\right)=\sum_{j_{k}^{-}, j_{k}, j_{k}^{+}} P_{k}^{-}\left[i_{k}^{-}, j_{k}^{-}\right] G_{k}\left[i_{k}, j_{k}\right] P_{k}^{+}\left[i_{k}^{+}, j_{k}^{+}\right] \mathcal{X}\left(j_{k}^{-}, j_{k}, j_{k}^{+}\right)+\mathcal{B}(i)
计算TT分解形式下L关于\mathcal{W}的梯度\frac{\partial \mathcal{Y}(\boldsymbol{i})}{\partial \boldsymbol{G}_{k}\left[\tilde{i}_{k}, \tilde{j}_{k}\right]}时只需关注i_{k}=\tilde{i}_{k}j_{k}=\tilde{j}_{k}而其他位置都为0,(\tilde{i}_{k},\tilde{j}_{k})\mathcal{W}TT分解后k维张量上的坐标。

\mathcal{Y}又是G_k的线性函数,一求导,G_k项和常数项\mathcal{B}就没了,只剩下:
\sum_{j_{k}^{-}, j_{k}^{+}} (P_{k}^{-}\left[i_{k}^{-}, j_{k}^{-}\right]) ^T( P_{k}^{+}\left[i_{k}^{+}, j_{k}^{+}\right] )^T\mathcal{X}\left(j_{k}^{-}, \tilde{j_{k}}, j_{k}^{+}\right)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,701评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,649评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,037评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,994评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,018评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,796评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,481评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,370评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,868评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,014评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,153评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,832评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,494评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,039评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,437评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,131评论 2 356