人工智能之数学(二) ------ 矩阵分解

一.目的

理论上都是为了简化计算

1.比如求解矩阵的多次幂可用矩阵分解方法实现快速手酸
2.用于求解线性方程,比如正交分解就可以用来求解不相容的最小二乘方程组(没有确切的解)

比如Ax=b : 用A的列向量线性组合表示b,求出线性组合的各个系数(组成x),对于b来说,如果b本身不在A的列向量线性组合组成的线性空间中,那么线性方程组就是不相容的,此时要求一个最小二乘解

增广矩阵(A,b)的秩与矩阵A的秩相等的时候方程是有解的
增广矩阵(A,b)的秩>A的秩.方程是无解或者是没有精确的解(就是不相容)

3.数据拟合
4.矩阵求逆
5.数据压缩与解耦合,尤其是PC降维(最常用)
6.卫星对地面进行遥感,从卫星传数据到地面需要压缩也需要用到

举例 :

二.特征值与特征向量


满足|A-λE|=0,其中E为单位向量

三.矩阵分解的方法

1.正交分解(QR)

施密特正交化 :

举例 :


Python实现 :

有可能跟上面计算不一样,是因为x1,x2,x3选的不同,计算的结果也就不同

2.SVD分解

机器学习的推荐系统,图像的压缩和重构经常用到SVD分解


U : 左奇异向量矩阵
V : 右奇异向量矩阵
∑ :对角矩阵

案例 :





Python实现:


sig2是重构了∑,如果将s[1]改为0,得到的值与原来的a是差不太多的,σ可以理解为系数的重要性,上例中2相比于192来说可以忽略不计,对于数据量特别大的时候SVD分解减少存储硬件的开销

你可能感兴趣的:(人工智能之数学(二) ------ 矩阵分解)