矩阵低秩有何意义?

参考博客:https://blog.csdn.net/weixin_41894030/article/details/115699611

首先来思考,为什么叫“秩”?

举个例子就很容易理解,大家排队买票。如果大家互相不认识,那就会一个排一个,非常有秩序。然而,如果突然来了一个与队伍前面的人认识的人,这个人又不自觉排队,非要插队。那后面的人肯定要有意见了,说你要是这样我前面 还有认识的人呢,你插我也插队,这样整个队伍就乱掉了, 谁也买不成。

通过这个例子,可以得到一下结论:彼此不认识,那就不相关,就有秩序,问题就好解决;反之,彼此相关,就没有秩序,问题就不好解决。

所以,数学中定义,矩阵中最大的不相关的向量的个数,叫做秩,可以理解为有秩序的程度。

从社会学角度考虑一下,政府机关是讲人际关系的地方,可谓是关系错综复杂,通常都是近亲繁殖。显然,这些部门用矩阵来说,就不满秩,秩非常小。可以想象这些地方的工作肯定是搞不好的,因为没有秩序。所以想找个好单位,满秩可以作为一项评价指标哦~~~

一、低秩矩阵中低秩(Low-rank)的意义

1,问题的引出——对低秩矩阵分解中低秩的误解

        论文《Privileged Matrix Factorization for Collaborative Filtering》是我在推荐系统研究方向上所读的第一篇论文(针对该篇论文,请看总结点击打开链接),当时对矩阵分解的理解是:评分矩阵X分解成两个隐特征矩阵U和V,U代表用户隐特征矩阵,V代表商品隐特征矩阵。U和V的隐因子向量的长度为k,其中k<<min{m,n},自己也就理解成了分解后的两个矩阵的秩是比原来的评分矩阵X的秩低很多,所以就把该方法称为低秩矩阵分解法。

        在我查阅了大量资料后,事实证明我对低秩矩阵分解中的低秩的意义理解是错误的。那么低秩(Low-rank)的意义到底代表什么呢,请看下面的解释

2,低秩矩阵分解中低秩的意义

        我们先来回忆下线性代数里面“秩”到底是啥?举个简单的例子吧:

对上面的线性方程组,第一个方程和第二个方程有不同的解,而第2个方程和第3个方程的解完全相同。从这个意义上说,第3个方程是“多余”的,因为它没有带来任何信息量,把它去掉,所得的方程组与原来的方程组同解。为了从方程组中去掉多余的方程,自然就导出了“矩阵的秩”这一概念。

还记得我们怎么手工求矩阵的秩吗?为了求矩阵A的秩,我们是通过矩阵初等变换把A化为阶梯型矩阵,若该阶梯矩阵有r个非零行,那么A的秩rank(A)就等于r。从物理意义上来讲,矩阵的秩度量的就是矩阵的行列之间的相关性。如果矩阵的各行或列是线性无关的,矩阵就是满秩的,也就是秩等于行数。回到上面线性方程组来说,因为线方程组可以用矩阵描述。秩就表示了有多少个有用的方程。上面的方程组有3个方程,实际上只有2个有用的,一个是多余的,所以对应的矩阵的秩是2.

ok,既然秩可以度量相关性,而矩阵的相关性实际上就表示了矩阵的结构信息。如果矩阵之间各行的相关性很强,那么就表示这个矩阵实际可以投影到更低维的线性子空间,也就是用几个向量就可以完全表达了,它就是低秩的。所以总结的一点就是:如果矩阵表达的是结构性信息,例如图像、用户-商品推荐表等,那么这个矩阵各行之间存在一定的相关性,那这个矩阵一般是低秩的。

如果X是一个m行n列的数值矩阵,rank(x)是x的秩,假如rank (X)远小于m和n,则称x是低秩矩阵。低秩矩阵每行或每列都可以用其他的行或列线性表示,可见它包含大量的冗余信息。利用这种冗余信息,可以对数据进行恢复,也可以对数据进行特征提取。

总结一下:矩阵的秩的度量其实就是矩阵的行列之间的相关性。如果矩阵的各行或列是线性无关的,矩阵就是满秩的。非零元素的行数或列数决定了秩的多少。

低秩矩阵    原文链接:https://blog.csdn.net/gcheney/article/details/100633881

低秩是指矩阵的秩比较小,而矩阵的低秩性是指矩阵的秩相对矩阵的行数或列数而言很小。

图像处理中,rank可以理解为图像所包含的信息的丰富程度,在现实生活中,一张图片大部分是相似的。比如一张大草原的图片可以理解为,草原是由很多草组成的,而草是相似的,所以如果全是草,那么这张图所包含的信息量是很少的的,因为可以理解为草是草的复制品。而图中的蒙古包,人,马之类的则可以理解为图片所包含的信息,实际上,相对于只有草的草原图片和有草和蒙古包的草原图片,后者的秩是较高的。也就是说,图片中比较突兀的成分,比如蒙古包,比如人像照片中的红眼亮点,会增加图像矩阵的秩。而现实生活中一张不错的图片的秩其实是比较低的,如果图像的秩比较高,往往是因为图像中的噪声比较严重。比如拍照的时候ISO感光度设置过高造成噪点太过泛滥之类的。所以,图像处理的低秩性其实可以拿来去除照片中的噪点,电影中的雨丝也可以通过低秩表达的方式来去除。

低秩与稀疏。低秩是指矩阵的秩较小,稀疏是指矩阵中非零元素的个数少。如果对矩阵进行奇异值分解,并把其所有奇异值排列为一个向量,那么这个向量的稀疏性便对应于该矩阵的低秩性

3.低秩(Low-rank)的意义

由矩阵秩的定义知道,若将图像看成一个矩阵,那么它的基的数量越少,基对应的线性无关向量数量就越少,矩阵的秩就越小。当它远远小于矩阵的大小的时候,图像就是低秩的。低秩矩阵的每行或者每列都可以用其他的行或者列线性表示,这说明这个矩阵包含了大量的冗余信息。利用这种冗余信息可以对确实图像信息进行恢复,可以将多出来的噪声信息进行去除,还可以对错误的图像信息进行恢复。

我们可以利用图像的低秩性来恢复图像,首先构建融合了低秩矩阵先验的模型,再求解这个模型得到低秩的矩阵。这种基于低秩矩阵逼近(LOW-Rank Matrix Approximation,LRMA)的模型称为低秩矩阵恢复模型(LRMR)。目前,LRMR主要有鲁棒主成分分析robust PCA,(RPCA)、矩阵补全(matrix completion,MC)和低秩表示(low-rank representation,LRP)等三类模式。

原文链接:https://blog.csdn.net/gcheney/article/details/100633881

二、矩阵填补(Matrix Completion)

矩阵填补的应用很广泛,论文《Matrix completion by deep matrix factorization》就给出了矩阵填补的两个应用:图像修复(image inpainting)、协同过滤(Collaborative filtering)。

        图像修复:简单来说就是通过矩阵填补模型将“打码”的图片修复成原来的图片,如下图所示:

 协同过滤:是推荐系统的一种模型,该方法通过分析用户的历史记录(主要是用户-商品评分矩阵)来给用户做出推荐。例如我们在看一部电影的时候,如果喜欢看,就会给它打个分,例如3颗星。然后系统,例如Netflix等知名网站就会分析这些数据,看看到底每部影片的题材到底是怎样的?针对每个人,喜欢怎样的电影,然后会给对应的用户推荐相似题材的电影。但有一个问题是:我们的网站上面有非常多的用户,也有非常多的影片,不是所有的用户都看过说有的电影,不是所有看过某电影的用户都会给它评分。假设我们用一个“用户-影片”的矩阵来描述这些记录,例如下图,可以看到,会有很多空白的地方。如果这些空白的地方存在,我们是很难对这个矩阵进行分析的,所以在分析之前,一般需要先对其进行补全。也叫矩阵填充。

 那到底怎么填呢?如何才能无中生有呢?每个为0的地方的信息是否蕴含在其他已有的信息之上了呢?如果有,怎么提取出来呢?Yeah,这就是低秩生效的地方了。这叫低秩矩阵重构问题,它可以用如下的模型表述:已知数据是一个给定的m*n矩阵A,如果其中一些元素因为某种原因丢失了,我们能否根据其他行和列的元素,将这些元素恢复?当然,如果没有其他的参考条件,想要确定这些数据很困难。但如果我们已知A的秩rank(A)<<m且rank(A)<<n,那么我们可以通过矩阵各行(列)之间的线性相关将丢失的元素求出。你会问,这种假定我们要恢复的矩阵是低秩的,合理吗?实际上是十分合理的,比如一个用户对某电影评分是其他用户对这部电影评分的线性组合。所以,通过低秩重构就可以预测用户对其未评价过的视频的喜好程度。从而对矩阵进行填充。

  • 41
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
pgpool-ii的配置可以通过源码安装或者使用yum安装来完成。如果选择源码安装,可以按照以下步骤进行配置: 1. 解压源码包:使用命令`tar -xvf pgpool-II-4.2.2.tar.gz`解压源码包。 2. 进入解压后的目录:使用命令`cd pgpool-II-4.2.2`进入解压后的目录。 3. 配置安装路径:使用命令`./configure --prefix=/usr/package/pgpool-II-4.2.2`配置安装路径。 4. 编译和安装:使用命令`make && make install`进行编译和安装。 如果选择使用yum安装,可以按照以下步骤进行配置: 1. 安装yum源:使用命令`yum install -y https://www.pgpool.net/yum/rpms/4.2/redhat/rhel-7-x86_64/pgpool-II-release-4.2-1.noarch.rpm`安装pgpool的yum源。 2. 安装pgpool:使用命令`yum install -y pgpool-II-pg11-devel.x86_64`安装pgpool。 3. 启用pgpool服务:使用命令`systemctl enable pgpool.service`启用pgpool服务。 无论是源码安装还是yum安装,配置文件都可以在`/usr/package/pgpool-II-4.2.2/etc`目录下找到。可以将`pgpool.conf.sample-stream`复制为`pgpool.conf`进行配置。 需要注意的是,从Pgpool-II 4.2版本开始,所有的配置都将通过`/etc/pgpool/`目录下的`pgpool_node_id`文件来区分节点。 另外,如果需要进行postgresql的配置流同步,可以先安装postgresql,然后根据具体需求进行配置。 希望以上信息对您有所帮助。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [pgpool-II的安装及配置读写分离的高可用pg集群](https://blog.csdn.net/qq_35997793/article/details/114028254)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值