详情请见下载资源处,请搜索 《每天进步一点点《SVD学习》.docx》

一:一些搜罗的预备知识(搜罗的)

1.1:特征值和特征向量
矩阵:
1)是一堆建立了某种运算时识别规则的数字
2)是一列一列的列向量。或者是一行一行的行向量
3)可以代表是一个图像,每一个元素值都是一个像素值范围在(0~255)
4)是一个线性变换,将一组或者一个向量变换成另一组或一个向量。这可还可以理解成是空间几何中的坐标/向量变换。

1.2:矩阵的本质:
矩阵本质上是线性变换,在空间中代表的某个基-坐标系/向量的线性转变,可以使缩放,旋转,投影。

1.3:特征值分解和奇异值分解:都是给一个矩阵(线性变换)找一组特殊的基
• 特征值分解:找到了特征向量这一组基,在这组基下该线性变换只有缩放效果
• 奇异值分解(SVD):则是找到两组基,从一组基到另一组的线性变换的旋转、缩放、投影三种功能独立地展示出来了

1.4:特征值分解-方阵
• 只有方阵才能进行特征值分解
• 奇异值和特征值的重要意义相似,都是为了提取出矩阵的主要特征。
• 特征值的本质:
• 特征值分解:把方阵分解为缩放矩阵 + 特征向量矩阵,没有旋转或旋转角度为0
• 特征值-变化的主次:如果我们想要描述好一个变换,那我们就描述好这个变换主要的变化方向就好了。来看看特征值分解的式子,分解得到的矩阵是一个对角阵,里面的特征值是由大到小排列的,这些特征值所对应的特征向量就是描述这个矩阵变化方向(从主要的变化到次要的变化排列)
• 高维线性变换:当矩阵是高维的情况下,那么这个矩阵就是高维空间下的一个线性变换,这个线性变化可能没法通过图片来表示,但是可以想象,这个变换也同样有很多的变换方向,我们通过特征值分解得到的前N个特征向量,那么就对应了这个矩阵最主要的N个变化方向。我们利用这前N个变化方向,就可以近似这个矩阵(变换)。也就是之前说的:提取这个矩阵最重要的特征。
• 特征值分解总结:特征值分解可以得到:
• 特征值:特征值表示的是这个特征到底有多重要
• 特征向量:而特征向量表示这个特征是什么,可以将每一个特征向量理解为一个线性的子空间,我们可以利用这些线性的子空间干很多的事情。
• 特征值分解的局限:特征值分解也有很多的局限,比如说变换的矩阵必须是方阵。

1.4.1:一般方阵的分解(相似对角化)
• 设A∈Rn×n,则A可表示为:

• X的列:为A的特征向量。跟排列顺序无关,只要对应相应的∧即可。
• ∧为对角矩阵:对角线上的值为A的特征值,一般习惯上按从大到小的顺序排列,对应于也会调整P中各个 特征向量的位置。
• 一般矩阵不同特征值对应的特征向量是线性无关的。

1.4.2:对称实数方阵的分解(合同)
• 设A∈Rn×n,且是对称矩阵,则S可表示为:

• U的列:为S的单位正交特征向量,即U是正交矩阵(列/行向量正交性、归一化,且
),对称矩阵不同特征值对应的特征向量是正交的,如果出现重根,则不一定会正交。
• ∧为对角矩阵:对角线上的值为A的特征值,按从大到小的顺序排列。
• U就是矩阵A所定义的坐标系:U的n个列向量组成A的一个完备的标准正交特征向量系。

1.5:奇异值分解(SVD) - 非方阵

1.5.1:SVD定义
• 只有非方阵才能进行奇异值分解
• SVD分解:把矩阵分解为缩放矩阵+旋转矩阵+特征向量矩阵
• A的非0奇异值的个数等于它的秩r

• 设
A∈Rm×nA∈Rm×n,且rank(A)rank(A) = rr (rr > 0),则矩阵A的奇异值分解(SVD)可表示为:
U和V都为正交矩阵
• 几何含义:
• 表示找到了U和V这样两组基:A矩阵的作用是将一个向量从V这组正交基向量的空间旋转到U这组正交基向量的空间,并对每个方向进行了一定的缩放(由Σ决定),缩放因子就是各个奇异值。如果V的维度比U 大,则表示还进行了投影。
• 奇异值分解:将一个矩阵原本混合在一起的三种作用效果,分解出来了。

1.5.2:SVD分解图示


奇异值σ跟特征值类似,在矩阵Σ中也是从大到小排列,而且σ的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了。也就是说,我们也可以用前k个大的奇异值来近似描述矩阵,这里定义一下部分奇异值分解:
A m×n ≈ U m×k * Σ k×k * VT k×n
右边的三个矩阵相乘的结果将会是一个接近于A的矩阵,在这儿,k越接近于n,则相乘的结果越接近于A。而这三个矩阵的面积之和(在存储观点来说,矩阵面积越小,存储量就越小)要远远小于原始的矩阵A,我们如果想要压缩空间来表示原矩阵A,我们存下这里的三个矩阵:U、Σ、V就好了。

二:特征值/特征向量分解 && SVD分解的数学推理过程
2.1 :特征值/特征向量分解(相似对角化)(原创的)
因为:
A * vi = vi * λi
A = vi * λi * vi-1
以此类推:可得
A * v1 = v1 * λ1
A * v2 = v2 * λ2
A * v3 = v3 * λ3
。。。。。。。。
A * vn = vn * λn

将上述结果向量化处理,令
(A *v1, A v2, A v3…… A *vn)= (λ1v1,λ2v2,λ3v3…… λnvn)

A (v1, v2, v3……vn)= (v1, v2, v3……vn) Diag(λ1, λ2, λ3 …. λn)

整理得
V = (v1, v2, v3 …. vn) 特征向量组
∧= Diag(λ1, λ2, λ3 …. λn) 对角矩阵,对角线上是特征值,其他元素为0
相似对角化。
A = V V-1
λi和 vi 的顺序无关,一般习惯上按照特征值从大到小的顺序,可以看到多个主要的特征和特征值,然后选取主要的特征值和特征向量即可约等于原矩阵

2.2 :SVD分解(合同对角化)

非方阵,无法进行特征值和特征向量分解

假设 A=UΣVT , 其中U和V都是正交矩阵(PP-1=E; P-1 = P T),正交矩阵具有几何不变性。
1:
A
AT = UΣVT (UΣVT)T = UΣVT VΣTUT=UΣΣTUT
两边右乘U得,A
ATU = UΣΣTUTU = UΣΣT
经观察:(A
AT)U = U(ΣΣT),所以U 是A* AT的特征向量组,ΣΣT是A* AT的特征值,在对角线上。因此,Σ是A* AT的特征值的开根号值。
U成为左奇异矩阵,正交的。
与顺序无关,一般习惯上按照特征值从大到小的顺序,可以看到多个主要的特征和特征值。

2:
AT* A =(UΣVT)T * UΣVT = VΣTUT* UΣVT =VΣTΣVT
两边右乘V得,AT* AV = VΣTΣVT V = VΣTΣ
经观察:(AT* A)V= V(ΣTΣ),所以V 是AT* A的特征向量组,ΣTΣ是AT* A的特征值,在对角线上。因此,Σ是AT* A的特征值的开根号值。
V成为右奇异矩阵,正交的。
与顺序无关,一般习惯上按照特征值从大到小的顺序,可以看到多个主要的特征和特征值。

3:A=UΣVT
两边同时乘以V得
AV = UΣVTV = UΣ ====》 AV = UΣ

具有以下特征。主要是利用正交性,和特征值的大小排列,得到主要的特征,用于压缩和降维。下一章节介绍降维。

奇异值σ跟特征值类似,在矩阵Σ中也是从大到小排列,而且σ的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了。也就是说,我们也可以用前k个大的奇异值来近似描述矩阵,这里定义一下部分奇异值分解:
A m×n ≈ U m×k * Σ k×k * VT k×n
右边的三个矩阵相乘的结果将会是一个接近于A的矩阵,在这儿,k越接近于n,则相乘的结果越接近于A。而这三个矩阵的面积之和(在存储观点来说,矩阵面积越小,存储量就越小)要远远小于原始的矩阵A,我们如果想要压缩空间来表示原矩阵A,我们存下这里的三个矩阵:U、Σ、V就好了。

每天进步一点点《SVD学习》相关推荐

  1. 每天进步一点点《ML - 感知机》

    一些前提的约定,还是沿用上篇文章的哈.先来致敬下男神. 一:感知机 感知机是一种线性二分类模型,其目的是找到能将训练数据线性可分的分离超平面.超平面线性模型为 联想起之前学到逻辑斯特回归的决策边界,Z ...

  2. 感知机介绍及MATLAB实现

    文章目录 前言 1 感知机简介 2 感知机结构 3 感知机学习过程 3.1 数据传播过程 3.2 参数更新过程 4 代码实现 4.1 准备数据 4.2 感知机训练学习 4.3 感知机仿真测试 总结 2 ...

  3. 每天进步一点点《ML - 线性回归》

    本系列Machine Learning 的学习博文很大部分全是受教于 Andrew Ng 的Stanford录制的ML视频,我的男神. 致敬男神! 第一次写这样系列的博文,单纯是为了记录自己的所学,做 ...

  4. 【ML】基于机器学习的心脏病预测研究(附代码和数据集,多层感知机模型)

    写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大努力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌. 之前创作过心脏病预测研究文章如下: [ML]基于机器学 ...

  5. 每天进步一点点《ML - 支持向量机》

    一些前提的约定,还是沿用上篇文章的哈.先来致敬下男神. 一:支持向量机(support vector machine) 在感知机那一章节我们讲了,对样本的分类过程中,可以用维度空间内的某个超平面划分开 ...

  6. 每天进步一点点《ML - 正则化代价函数》

    本系列Machine Learning 的学习博文很大部分全是受教于 Andrew Ng 的Stanford录制的ML视频,我的男神. 一:欠拟合(Under fitting)与过拟合(Over fi ...

  7. 每天进步一点点《ML - 高斯混合模型》

    上一篇文章学习了极大似然估计和EM算法,这一章节就是学习EM算法的具体应用场景,高斯混合模型,是一中聚类的算法. 一:高斯混合模型(GMM) 我们将一个分布复杂的数据分布,用多个高斯概率分布来共同表示 ...

  8. 每天进步一点点《ML - 从极大似然到EM算法》

    一:极大似然 1:概念引入 极大似然参数估计是概率论中学习过的内容,就是预先定义概率分布模型,根据一堆的同概率分布的一堆样本数据去估计该概率模型中的未知参数. 举个例子:有很多西瓜x,我们可以得到每一 ...

  9. 每天进步一点点《ML - Sklearn库简单学习》

    一:Sklearn介绍 Sklearn是一个强大的机器学习库,基于python的.官方文档(http://scikit-learn.org/stable/ ).如下列举部分的使用场景. 由图中,可以看 ...

  10. 每天进步一点点《ML - 异常点检测》

    一些前提的约定,还是沿用上篇文章的哈.先来致敬下男神. 一:异常点检查(Anomaly Detection) 这一章节相对来说简单很多,也可以说是很大程度是概率论的知识内容了. 异常点,和大部分正常状 ...

最新文章

  1. KeyMob推出移动广告平台,服务开发者与广告主
  2. php函数scandir_使用PHP函数scandir排除特定目录
  3. Java 洛谷 P1425 小鱼的游泳时间
  4. oracle的imp和exp
  5. Git学习总结(一)
  6. Java Spring singleton bean的创建源代码
  7. c#多线程同步之EventWaitHandle使用
  8. 阿里数加大数据平台发布,将培养5万大数据科学家
  9. 如何查看一个组件的 classid是多少_如何快速查看胎压?胎压多少才正常?带您全面了解爱车的轮胎...
  10. 智能一代云平台(三十五):后端架构再思考
  11. H5测试是怎么做的?
  12. 20172329 2017-2018-2 《程序设计与数据结构》第五周学习总结
  13. 毕设题目:Matlab回归预测
  14. 极客大学架构师训练营 秒杀 搜索引擎 爬虫 Lucene Elastic Search 第18课 听课总结
  15. 如何将Word转换成PDF的几种使用方法
  16. 【Quant】80+面试,5个offer,Quant大神总结分享各家quant面试题
  17. 克隆虚拟机后开机出现device eth0 does not seem to be present delaying initializa错误
  18. 面试准备—任重而道远
  19. Virtual Dub——一个令人爱不释手的小工具
  20. Zookeeper整合JAVA应用之Curator开源客户端使用案例

热门文章

  1. 本地上传图片无法预览
  2. 移动端返回上一页实现方法
  3. Oracle 12.1.0.1 GI+DATABASE打PSU
  4. Java Virtual Machine Garbage Collection浅析
  5. PHP加速 eAccelerator配置和使用指南
  6. 面试精讲之面试考点及大厂真题 - 分布式专栏 15 如何解决消息重复,保证消息顺序问题
  7. Dubbo面试 - dubbo的工作原理
  8. Fedora/CentOS7/RedHat7关闭图形桌面开启文本界面
  9. C语言,利用求余运算拆分三位数的个,十,百位数字,并求和
  10. Js Vue 对象数组的创建方式