张量分析
waiting不是违停
张量分解 欢迎相关方向同行私信交流,ouweiting321
展开
-
t-SVD分解原理和python代码实现
首先应该知道t乘积的概念从下面可以看到,这是对A和B的前切面做循环卷积,其中,第一个前切面先证明该式:因此,证明如下:因此t-SVD算法如下:matlab版本代码python代码如下:注意,Af = np.fft.fft(A,axis=2)tf = np.fft.fft(A[1:,2:,:])Af[1,2:]==tf,即沿着第三维度进行t-SVD算法8,利用类似于FFT,可以只计算一半的SVD...原创 2022-06-18 18:35:58 · 2502 阅读 · 7 评论 -
2.3Tucker分解HOSVD、HOOI算法推导和python实现
HOSVD参考论文:A MULTILINEAR SINGULAR VALUE DECOMPOSITIONHOSVD虽然不能保证给Tucker分解给出最优拟合,但是可以提供一个好的初始化的解这些矩阵都是正交的。之所以求前R最大特征值,可以在下文的HOOI看到,目的是最大化目标函数UWHOSVD的最后一行证明如下:HOOI:黄色之所以可以化过去,是因为原张量X其实是核张量G在高维空间的映射,而这个映射矩阵是单位正交矩阵,也就是说,只是旋转但不改变长度。因此F范数不变。故此,优化目标可以化为:因原创 2022-06-16 19:13:31 · 3064 阅读 · 5 评论 -
2.2CP分解CP-RALS算法推导python实现
由于ALS CP分解算法不能保证收敛到最小值,《Some convergence results on the Regularized Alternating Least-Squares method for tensor decomposition》分析了如下的正则项约束Regularized Alternating Least-Squares (RALS),它惩罚了现在的因子矩阵和上一个迭代的因子矩阵......原创 2022-06-10 18:38:08 · 732 阅读 · 1 评论 -
矩阵微分学习笔记
参考文章是Matrix Differentiation各个标量向量矩阵对标量向量矩阵在这个wiki上有%2C%20or%20the%20Jacobian%20matrix.)y=Ax,dy/dx = A如果x是关于z的函数,则因为若则证明如下:二项式的证明:其实也可以对二项式两边的x分别求偏导(假设它俩是不同的变量),然后加起来,也可以得到上述的结果...原创 2022-06-10 20:21:55 · 117 阅读 · 0 评论 -
张量的向量化vectorization、模n(mode-n)展开
wiki链接地址wiki上说的很清楚了例如对于一个3x3x3的tensor,展开之后它的向量是这样的111211311121221321131231331113213313...333\begin{matrix} 111\\211\\311\\121\\221\\321\\131\\231\\331\\113\\213\\313\\...\\333 \end{matrix}111211311121221321131231331113213313...333而mode-n表示就是把第n维保留,原创 2021-12-26 11:39:55 · 2043 阅读 · 0 评论 -
ValueError: matrix type must be ‘f‘, ‘d‘, ‘F‘, or ‘D‘ tensorly.decomposition.parafac报错
用tensorly.decomposition.parafac时报错原因是矩阵or张量的元素类型是整型,想办法改成浮点或者double型即可一种思路是利用数据类型的转换函数另一种就是简单粗暴,把24改成24.0即可,例如下面:X = tl.tensor(np.arange(24.0).reshape(3, 4, 2))改完后的代码如下:import numpy as npimport tensorly as tlfrom tensorly.decomposition import paraf原创 2021-12-15 16:58:24 · 1658 阅读 · 0 评论