矩阵分解 (加法篇)

引言

分解的思想其实并不古老, 而且大家都熟悉的,把复杂的分而治之,然后再组合起来。

分解有什么好处?

类比的看, 我们知道整数的分解可以利用乘法也可以利用加法。譬如我们玩过的游戏24点, 就是利用加法进行分解和整合。 这种分解很重要的是计算上的便利性!

而质数(素数)因子分解, 又是另外一种方式的分解。 而这种分解,重要的是对数本身理解上的便利性。 而理解上的便利, 又带来了计算上的便利。

那么,类比到矩阵, 也有加法和乘法的两种分解。

矩阵的加法分解

三种经典分解

最经典的是雅克比Jacobi方法, 将一个矩阵分为对角阵和非对角阵的部分。

类似的也有高斯-赛德尔Gauss–Seidel方法,分解成上三角和下三角阵之后。

更进一步, 我们可以有逐次超松驰迭代法Successive Over Relaxation (SOR), 更进一步分解成三部分, 对角阵和上下三角形。 同时增加权重调整分解后的比例。

这样的分解, 利用内在的等式应有的平衡性和不动点收敛理论, 可以快速迭代。

如何理解这种分解?

首先对x的拆分到等式左右两边之后, 可以看成是找到y=x和另外一个函数的交点,再根据不动点收敛理论(参考 收敛率概述 (Overview of Rates of Convergence)), 就可以进行迭代求解了。 下面可以看一下不动点理论告诉我们,并不是任何分解都能收敛的!

所以, 在雅克比方法里面, 要求谱半径小于1:

对于谱半径 和 矩阵范数直接的关系联系起来去理解。

然后,可以通过不动点理论, 要求曲线的斜率绝对值不大于1, 这样直观去理解可收敛性。

小结:

这里通过简单类比, 分析了矩阵分解的加法的策略。 下次, 我们分析矩阵分解乘法的策略,常见的有LU, LDL, QR, SVD分解。 那么这些分解, 类比的来说为什么容易计算的同时, 还可以方便对矩阵的认识呢?

本文分享自微信公众号 - AI2ML人工智能to机器学习(mloptimization),作者:史春奇, 王雅清

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-06-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一个奇异值的江湖 -- 机器学习观

    前面我们熟悉了经典统计处理outlier的方法。 这里会说明常见的机器学习的方法。

    史博
  • 一步一步走向锥规划 - QP

    一般来说凸优化(Convex Optimization, CO)中最一般的是锥规划 (Cone Programming, CP) 问题, 前面我们介绍了点 最...

    史博
  • 轻度解释Cloud Foundry命令行

    我们知道Cloud Foundry (CF)是一个PaaS平台。 CF命令行(CLI)作为开始部署使用CF云平台的用户来说,一个轻度的CF CLI的解释会是一...

    史博
  • 韩国现代汽车成功实测L4级别自动驾驶汽车 | 热点

    镁客网
  • 4.9 手动增加swap空间

    创建虚拟磁盘 dd if=/dev/zero of=/tmp/newdisk bs=1M count=100 dd 命令是用来操作磁盘的,可读可写 if 指定...

    运维小白
  • 实践-小细节Ⅶ

    所以网页的y 坐标是 0 ,但是在 iOS 11里面就是无法在 状态栏上显示,iOS11下的系统不会这样会占用 状态栏的位置

    進无尽
  • 005.MongoDB索引及聚合

    索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。

    木二
  • JavaNIO快速入门

    NIO是Jdk中非常重要的一个组成部分,基于它的Netty开源框架可以很方便的开发高性能、高可靠性的网络服务器和客户端程序。本文将就其核心基础类型Channel...

    用户1216676
  • Spring Boot 应用监控:Actuator与 AdminSpring Boot 应用监控:Actuator与 Admin

    在企业级应用中,对系统进行运行状态监控通常是必不可少的。Spring Boot提供了 Actuator 模块实现应用的监控与管理,对应的起步依赖是spring-...

    一个会写诗的程序员
  • Django2.2帮助文档的第一个例子:一个简易的投票系统—Prat3_4

    https://docs.djangoproject.com/en/2.2/intro/tutorial01/

    用户7010445

扫码关注云+社区

领取腾讯云代金券