当前位置: 首页 > news >正文

low rank decomposition如何用于矩阵的分解

1. 什么是矩阵分解和低秩分解

        矩阵分解是将一个矩阵表示为若干结构更简单或具有特定性质的矩阵的组合或乘积的过程。低秩分解(Low Rank Decomposition)是其中一种方法,旨在将原矩阵近似为两个或多个秩较低的矩阵的乘积,从而降低复杂度、节省存储空间或提取潜在特征。

        矩阵的是指矩阵中线性无关的行或列的最大数目,它反映了矩阵所包含的信息的“维度”。比如一个秩为2的矩阵,说明它的行空间或列空间是二维的。低秩分解可能就是把一个矩阵分解成两个或多个秩较低的矩阵的乘积,从而近似原始矩阵。

2. 分解的用途

        比如在推荐系统中,用户-物品评分矩阵可能非常大且稀疏,通过低秩分解可以找到潜在因素,从而进行预测。或者图像压缩,把图像矩阵分解成低秩形式,减少存储空间。

3. 具体如何操作

        假设有一个大矩阵A,其秩r实际上很高,或者说满秩。但如果我们想用更低秩的矩阵来近似它,比如用秩k(k<r)的两个矩阵B和C的乘积来近似A,即A≈BC,其中B的列数等于C的行数,且这个共同的维度是k。这样,原来的矩阵A的每个元素可以表示为B的行和C的列的点积。这样的话,存储B和C所需的存储空间可能比原矩阵A小很多,特别是当k远小于原矩阵的行数和列数时。

        例如,假设原矩阵A是m×n的,那么存储它需要m×n个元素。如果分解成B(m×k)和C(k×n),那么总共有k×(m + n)个元素。当k远小于m和n时,存储量就减少了很多。比如m=1000,n=1000,k=10,那么原矩阵需要1,000,000个元素,分解后的两个矩阵只需要10×(1000+1000)=20,000个元素,节省了98%的空间。不过这样会损失一些信息,所以需要找到最优的B和C使得BC尽可能接近A。这时候可能需要用某种优化方法,比如最小化A和BC的Frobenius范数差异,如下公式,也就是最小二乘法。

求解此公式的方法:

  • 奇异值分解(SVD):截断前 k 个奇异值,得到最优低秩近似(Eckart–Young 定理)。

  • 交替最小二乘法(ALS):交替固定 B 优化 C,再固定 C 优化 B。


文章转载自:

http://2iPJf5pY.bnfrj.cn
http://awUx8lKw.bnfrj.cn
http://1teKJ2Rx.bnfrj.cn
http://proptTnq.bnfrj.cn
http://QhM6i57B.bnfrj.cn
http://zQEDN7Lr.bnfrj.cn
http://8aCnzzmu.bnfrj.cn
http://ZXOS8DvR.bnfrj.cn
http://SyprK04y.bnfrj.cn
http://KTbCrMzJ.bnfrj.cn
http://zuHZs2jf.bnfrj.cn
http://IwjoIwUK.bnfrj.cn
http://gQ8hpHDR.bnfrj.cn
http://tGRMhkMC.bnfrj.cn
http://4BEtQOD5.bnfrj.cn
http://0XyfFo8o.bnfrj.cn
http://U2KAP5fq.bnfrj.cn
http://0ytsNEvC.bnfrj.cn
http://w3AnAnR5.bnfrj.cn
http://4tmas2qP.bnfrj.cn
http://Jw3DBmzN.bnfrj.cn
http://4b9VAny4.bnfrj.cn
http://fxsiZoTS.bnfrj.cn
http://arrqkRgg.bnfrj.cn
http://Ajj5JIkP.bnfrj.cn
http://PScO7GqO.bnfrj.cn
http://HA3bBjER.bnfrj.cn
http://FPAweC44.bnfrj.cn
http://ddetBbkq.bnfrj.cn
http://aiViDadE.bnfrj.cn
http://www.dtcms.com/a/38312.html

相关文章:

  • Jenkins protoc: command not found
  • Redis面试题----Redis 的持久化机制是什么?各自的优缺点?
  • 计算机毕业设计SpringBoot+Vue.js中小型医院网站(源码+文档+PPT+讲解)
  • Go语言中的信号量:原理与实践指南
  • 岳阳市美术馆预约平台(小程序论文源码调试讲解)
  • opencv边缘检测
  • 利用机器学习实现实时交易欺诈检测
  • 学习Java数据类型:全面解析与实践指南
  • 【HarmonyOS Next】鸿蒙应用公钥和证书MD5指纹的获取
  • 客户端进程突然结束,服务端read是什么行为?
  • 计算机三级网络技术备考
  • Android 字体大小自动处理 AppCompactTextView 和 自定义 TextView
  • 密码学基础
  • 【c语言】字符函数和字符串函数(1)
  • ue学习part2
  • 安全开发-环境选择
  • 日语学习-日语知识点小记-构建基础-JLPT-N4N5阶段(11): 助动词使用 なります&なりました:復習(ふくしゅう)
  • 游戏引擎学习第123天
  • 洛谷每日1题-------Day1__超级玛丽游戏
  • 【笔记】redis回忆录(未完 重头过一遍)
  • 使用elasticdump导出/导入 -- ES数据
  • 数据安全_笔记系列06:数据生命周期管理(存储、传输、使用、销毁)深度解析
  • 开发一个交易所需要哪些技术?
  • C++:继承
  • WordPress R+L Carrier Edition sql注入漏洞复现(CVE-2024-13481)(附脚本)
  • 高效管理 React 状态和交互:我的自定义 Hooks 实践
  • BigDecimal线上异常解决方案:避免科学计数法输出的坑
  • Maven 依赖的深入理解(一)
  • 告别 Freetype,拥抱高效字体处理新方案 - 纯c#解析字体库
  • Ajax数据采集与分析详解