深度学习中的张量方法:分解与应用
1. 张量分解概述
张量分解在深度学习中扮演着重要角色,它有助于减少模型参数、防止过拟合,还能帮助我们理解神经网络的工作原理。常见的张量分解方法有CP分解、Tucker分解和张量列车(TT)分解。
1.1 CP分解
CP分解将一个高阶张量 $X$ 表示为多个一阶张量之和,更紧凑的表示形式为 $X = 〈U(1),U(2),··· ,U(N)〉$ ,这种用CP分解表示张量的方式有时也被称为Kruskal格式。
1.2 Tucker分解
Tucker分解将张量 $X$ 非唯一地分解为一个核心张量 $G \in R^{R_1×R_2×···×R_N}$ 和一组因子矩阵 ${U(1),U(2),··· ,U(N)}$ ,其中 $U(n) \in R^{R_n×I_n}$ ,$n = 1,2,…,N$ 。具体公式为:
$X = G ×_1 U(1) ×_2 U(2) ×_3 ··· ×_N U(N)$
核心张量捕捉了因子矩阵列之间的相互作用。如果 $R_n ≪ I_n$ ,则核心张量可以看作是 $X$ 的压缩版本。CP分解可以表示为Tucker分解的特殊情况,即 $R_n = R$ ,$\forall n \in {1,2,…N}$ ,且核心张量为超对角矩阵。当因子矩阵为正交矩阵时,Tucker模型被称为高阶奇异值分解(HOSVD)。
在实际应用中,由于数据存在噪声,Tucker和CP分解并不精确,通常通过优化一个合适的拟合损失准则来近似分解,常用的是最小二乘法。假设 ${R_n} {n = 1}^N$ 已知,Tucker分解通过求解以下非凸最小化问题来计算:
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



