张量学习:张量补全(tensor completion)

2024-01-11 13:38

本文主要是介绍张量学习:张量补全(tensor completion),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、什么是张量(Tensor)?

二、张量补全(tensor completion)

1 基于张量分解的方法

1.1 基于CP分解 

1.2 基于Tucker分解

1.3 基于张量链分解 

1.4 基于张量环分解

1.5 基于t-SVD分解

2 秩最小化模型 

2.1 Tucker秩最小化模型

2.2 张量链秩最小化模型 

2.3 管秩最小化模型


一、什么是张量(Tensor)?

张量这个词英文叫Tensor。很多人有可能觉得比较陌生,但相信大部分人都听说过Tensorflow。其实Tensorflow里最基本的数据结构就是Tensor,跟本文讲的Tensor的概念是一样的,并不是物理学中的张量概念。

那具体什么是张量呢,张量是多维数组的泛概念。一维数组我们通常称之为向量,二维数组我们通常称之为矩阵,但其实这些都是张量的一种。以此类推,我们也会有三维张量、四维张量以及五维张量。那么零维张量是什么呢?其实零维张量就是一个数。

为了加深大家对张量概念的理解,再举一个简单例子。如用户对电影的评分可以用来一个二维矩阵来表示。但是如果我们把时间因素也考虑进去,就变成了一个三维数组,那么我们就称这一数组是一个三维张量。其实在某些方面,张量和多维度数据是对等的。张量非常适合去表示多维度的数据,张量通过多维度的数据,可将用户间的内在联系捕捉到。

张量通常是动态增长的,它的增长通常可以用三种形式来实现。

第一种是维度的增长。比如我们只考虑用户时间、电影和评分来进行张量建模,那么这个张量只有三个维度。但如果我们再把电影主题也加进去,那么就从一个三维张量增长成了四维张量,这是通过维度上的增长,

第二种增长是维度中数据的增长,如现在我们有用户、时间和电影这三个维度,但是还会有新的用户,也会有新的电影,时间也是逐渐增长的,所以每个维度也会自然增长,但是维数始终是固定的,这就是第二种增长。

最后一种增长是观测数据的增长,比如说维度的个数是固定的,三个维度——用户、时间、电影。那么每个维度上的数量也是固定的,但是呢,我们可能一开始只获取了部分数据,然后后面会获取越来越多的数据。这样就形成了一种观测数据的增长,所以这也是一种张量的增长方式。

二、张量补全(tensor completion)

现实情况下,往往由于采集数据工具(如采集交通数据的传感器)的故障以及其他异常情况导致数据中往往存在部分缺失值,对这些缺失值的修补称之为“补全”,张量领域的缺失值修复即张量补全。张量补全是根据已有数据对缺失值的影响和低秩假设实现缺失值补全,主要分为两类方法:

  • 一种是基于张量补全中给定的秩和更新因子
  • 一种是直接最小化张量秩并更新低秩张量

1 基于张量分解的方法

基于张量分解的张量补全可转化为如下优化问题(大多数的张量补全问题都可转化为对优化问题的求解):

其中,X是补全后的张量,J是原始存在缺失值的张量。不同张量分解方法对张量补全带来的差异主要集中于秩的定义,如CP分解,Tucker分解等。S是一个给定的低秩张量X的秩的界限。P_{o}表示随机取样操作,定义为: 

1.1 基于CP分解 

以CP分解的秩代替张量补全中的秩,原优化问题转化为:

该问题可通过交替最小二乘法(ALS)解决,即每轮迭代通过其他固定变量去更新单个变量。但是,这个模型是非凸的,会受到局部最小值的影响,需要良好的初始化才能得到比较好的效果。此外一些最新的方法比如CPWOPT、geomCG也被提出去解决这些问题。 

1.2 基于Tucker分解

以Tucker分解的秩代替张量补全的秩,原优化问题转化为:

其中g为核心张量,B为因子矩阵。该问题同样可通过ALS解决,并通过高阶正交迭代(HOOI)加速运行,迭代计算正交因子矩阵一列对应的主导奇异向量。

此外,一种推广的张量补全模型十分流行,它拥有一种预定义的Tucker秩,优化问题如下:

其中t是观测数据,P是线性操作符。这个问题可通过张量迭代硬阈值(TIHT)解决,该方法采用截断的高阶奇异值分解作为阈值算子,得到最优的低阶张量逼近。

1.3 基于张量链分解 

以张量链分解的秩代替张量补全的秩,原优化问题转化为:

这个问题是非凸的,并且存在拟最优逼近解,可以通过使用非线性块高斯-塞德尔迭代进行计算。对于每个小块,都可以采用最小二乘拟合的方法进行求解,从而加快收敛速度。此外,在张量链秩固定的情况下,可以在黎曼优化框架内使用非线性共轭梯度方案来解决该问题,该方案可以使复杂度随维数的变化呈线性变化。

1.4 基于张量环分解

低秩张量环补全是唯一一个有着固定张量环秩的张量补全方法。优化问题如下:

其中X\in \mathbb{T}_{TR}\left ( S_{1},S_{2},\cdots ,S_{N} \right )意思是X\left ( i_{1},i_{2},\cdots ,i_{N} \right )=tr\left ( U_{1}\left ( :,i_{1},: \right )U_{2}\left ( :,i_{2},: \right )\cdots U_{N}\left ( :,i_{N},: \right ) \right )U_{n}\in \mathbb{R}^{S_{n}\times I_{n}\times S_{n+1}}。张量链的秩表示大多中间因子的分布和少部分边界因子的分布。张量环分解可以有效解决张量链分解的缺陷。在初始点选择良好的情况下,用ALS法可以解决此优化问题。 

1.5 基于t-SVD分解

 使用t-SVD分解的管秩代替张量补全的秩,原优化问题转化为:

该问题可通过将目标张量分解为两个低管秩张量的循环卷积来解决。因此,优化问题可进一步改进为:

 

其中A\in \mathbb{R}^{I_{1}\times S\times I_{3}}B\in \mathbb{R}^{I_{2}\times S\times I_{3}},该低管秩张量补全模型可通过交替最小化算法解决。

2 秩最小化模型 

在实际中,张量秩界可能在一些应用中是不可用的。当观测值很少时,高秩界的选择可能会导致过拟合。为了避免这种情况发生,另一种方法是直接最小化张量的秩。其优化问题如下:

其中意思是,均属于观测值索引。rank(X)表示张量秩,可以有多种定义,如CP分解的秩,Tucker分解的秩等。根据不同张量秩的定义,存在多种张量补全问题的优化模型。然而,由于rank是一个非凸函数,因此优化问题变成了一个NP难问题。大多数现有的方法都是使用核范数(迹范数)替代非凸的秩函数。但是,CP分解的张量核范数是不可解的且张量环的核范数未曾迁移到张量补全的问题中,因此下面对这两种模型不予讨论。

2.1 Tucker秩最小化模型

基于最小化Tucker秩的张量补全优化模型如下:

其中,rank\left ( X_{\left [ n \right ]} \right )表示X_{\left [ n \right ]}的展开矩阵的秩。基于Tucker秩的定义,优化问题可进一步转化为: 

实际上,矩阵秩函数在优化问题中是非凸的,但可以转化为矩阵核范数近似。于是优化问题进一步转化为:

 

该问题可用简单的低秩张量补全(SiLRTC)来解决,也可通过增加一个方程约束,用高精度的低秩张量补全(HaLRTC)来严格解决。

2.2 张量链秩最小化模型 

基于最小化张量链秩的张量补全优化模型如下:

其中rank_{TT}\left ( X \right )=\left ( rank\left ( X_{\left \langle 1 \right \rangle} \right ),rank\left ( X_{\left \langle 2 \right \rangle} \right ),\cdots ,rank\left ( X_{\left \langle N-1 \right \rangle} \right ) \right )rank\left ( X_{\left \langle n \right \rangle} \right )表示X_{\left \langle n \right \rangle}的展开矩阵的秩。因此,原优化问题可进一步转化为: 

该优化问题可通过矩阵核范数近似,进一步转化为:

 

该问题可通过简单的低秩张量补全,借助张量链(SiLRTC-TT)来解决。 

2.3 管秩最小化模型

基于最小化张量管秩的张量补全优化模型如下:

其中,张量管道秩定义为J的非零奇异管道数量,J来源于t-SVD分解,X=U\ast J\ast V^{T}。原优化问题可进一步改进为: 

 

\left \| X \right \|_{TNN}是X的核范数,等价于blkdiag\left ( \hat{X} \right )的核范数。最新的一些模型为了更好地估计张量管秩,提出了一些新的凸包络,如张量截断核范数(T-TNN)和加权张量核范数(W-TNN)来代替传统的TNN。 

本文转自:

https://blog.csdn.net/wwb44444/article/details/108956789  CSDN博主「瑶琴遇知音」

https://blog.csdn.net/Mlooker/article/details/80492932  CSDN博主「贪心科技」

这篇关于张量学习:张量补全(tensor completion)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/594537

相关文章

PyTorch使用教程之Tensor包详解

《PyTorch使用教程之Tensor包详解》这篇文章介绍了PyTorch中的张量(Tensor)数据结构,包括张量的数据类型、初始化、常用操作、属性等,张量是PyTorch框架中的核心数据结构,支持... 目录1、张量Tensor2、数据类型3、初始化(构造张量)4、常用操作5、常用属性5.1 存储(st

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

2、PF-Net点云补全

2、PF-Net 点云补全 PF-Net论文链接:PF-Net PF-Net (Point Fractal Network for 3D Point Cloud Completion)是一种专门为三维点云补全设计的深度学习模型。点云补全实际上和图片补全是一个逻辑,都是采用GAN模型的思想来进行补全,在图片补全中,将部分像素点删除并且标记,然后卷积特征提取预测、判别器判别,来训练模型,生成的像