这是我见过最通俗易懂的SVD(奇异值分解)算法介绍
线性代数是机器学习领域的基础,其中一个最重要的概念是奇异值分解(SVD),本文尽可能简洁的介绍SVD(奇异值分解)算法的基础理解,以及它在现实世界中的应用。
SVD是最广泛使用的无监督学习算法之一,它在许多推荐系统和降维系统中居于核心位置,这些系统是全球公司如谷歌、Netflix、Facebook、YouTube等的核心技术。
简单来说,SVD是将一个任意矩阵分解为三个矩阵。所以如果我们有一个矩阵A,那么它的SVD可以表示为:

A是矩阵,U是的正交矩阵,是的非负对角矩阵,是的正交矩阵。
U也被称为左奇异向量,S为奇异值,V为右奇异向量。
带维度的奇异值分解:
用矩阵表示奇异值分解:

我们通常将具有较大特征值的向量排列在前,而较小特征值的向量则排在后面。
特征值与向量的对应关系:

与特征值分解相比,奇异值分解可以应用于非方阵。在SVD中,U和 V 对于任何矩阵都是可逆的,并且它们是正交归一的,这是我们所喜爱的特性。虽然这里不进行证明,但我们可以告诉你,奇异值比特征值在数值上更稳定。
为了更好地理解,我们通过一个例子演示SVD。
假设我们有非方阵A:

我们计算矩阵与转置矩阵的乘积,有:

求解
的特征值和特征向量:

求解
的特征值和特征向量:

奇异值是正特征值的平方根,即5和3。因此非方阵A的SVD分解为:

SVD分解证明

最后一个方程等价于求矩阵
的特征向量,我们只需将所有特征向量放入一个矩阵中,矩阵S则是包含特征值的对角矩阵。

SVD的另一种表述


SVD降维

SVD应用
1.图像降维
2.特征脸
3.降低噪声
结论
我真的觉得奇异值分解(SVD)被低估了。它是线性代数中一个非常重要的基础概念,而且它的应用非常酷!相信我,我们看到的只是 SVD 众多用途中的一小部分。有什么问题,欢迎讨论!
原文链接:这是我见过最通俗易懂的SVD(奇异值分解)算法介绍
这是我见过最通俗易懂的SVD(奇异值分解)算法介绍的更多相关文章
- SVD奇异值分解的基本原理和运用
SVD奇异值分解: SVD是一种可靠的正交矩阵分解法.可以把A矩阵分解成U,∑,VT三个矩阵相乘的形式.(Svd(A)=[U*∑*VT],A不必是方阵,U,VT必定是正交阵,S是对角阵<以奇异值 ...
- SVD奇异值分解的几何物理意义资料汇总
学习SVD奇异值分解的网上资料汇总: 1. 关于svd的一篇概念文,这篇文章也是后续几篇文章的鼻祖~ http://www.ams.org/samplings/feature-column/fcarc ...
- 一步步教你轻松学奇异值分解SVD降维算法
一步步教你轻松学奇异值分解SVD降维算法 (白宁超 2018年10月24日09:04:56 ) 摘要:奇异值分解(singular value decomposition)是线性代数中一种重要的矩阵分 ...
- [机器学习]-SVD奇异值分解的基本原理和运用
SVD奇异值分解: SVD是一种可靠的正交矩阵分解法.可以把A矩阵分解成U,∑,VT三个矩阵相乘的形式.(Svd(A)=[U*∑*VT],A不必是方阵,U,VT必定是正交阵,S是对角阵<以奇异值 ...
- 『科学计算_理论』SVD奇异值分解
转载请声明出处 SVD奇异值分解概述 SVD不仅是一个数学问题,在工程应用中的很多地方都有它的身影,比如前面讲的PCA,掌握了SVD原理后再去看PCA那是相当简单的,在推荐系统方面,SVD更是名声大噪 ...
- 简单易学的机器学习算法—SVD奇异值分解
简单易学的机器学习算法-SVD奇异值分解 一.SVD奇异值分解的定义 假设M是一个的矩阵,如果存在一个分解: 其中的酉矩阵,的半正定对角矩阵,的共轭转置矩阵,且为的酉矩阵.这样的分解称为M的奇 ...
- 关于5G技术,这是我见过最通俗易懂的讲解了
公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ 1 一个简单且神奇的公式 今天的故事,从一个公式开始讲起. 这是一个既简单又神奇的公式.说它简单,是因为它一共只有 3 个字 ...
- SVD java 算法实现
https://github.com/Richard-Cao/MatrixSvdDemo/blob/master/app/src/main/java/me/ele/caolicheng/matrixs ...
- 《学习OpenCV3》第7章第4题-SVD奇异值分解的验算
原文题目: 中文翻译: 解题过程 d.使用OpenCV编写代码 , , , , ,); Mat A = static_cast< ...
- 对SVD奇异值分解的理解
首先推荐一篇博客,奇异值分解(SVD)原理详解及推导 - CSDN博客,讲解的很清楚.这里我谈谈自己的理解,方便以后回顾. 如果把向量理解为空间中的一个元素,那么矩阵可以理解为两个空间上的映射 ...
随机推荐
- ERQ:32位转5位仅掉些许精度,来看看两段式后训练量化 | ICML 2024
后训练量化(PTQ)在视觉Transformer(ViTs)领域引起了广泛关注,因为它在模型压缩方面表现出了高效率.然而,现有的方法通常忽视了量化权重和激活之间复杂的相互依赖关系,导致了相当大的量化误 ...
- 微宏科技基于 KubeSphere 的微服务架构实践
作者:尹珉,KubeSphere Ambassador.contributor,KubeSphere 社区用户委员会杭州站站长. 公司简介 杭州微宏科技有限公司于 2012 年成立,专注于业务流程管理 ...
- 串(C语言实现)
文章目录 1.串的数据类型定义 数据对象 1.1 数据关系 1.2 基本操作 2.串的存储结构 2.1 串的顺序存储 2.2 串的链式存储 3.串的模式匹配算法 3.1BF 算法 3.2KMP 算法 ...
- 2.17 新手必看的Linux服务器管理和维护注意事项
本节介绍有关服务器管理和维护过程中的一些注意事项,都是笔者的经验之谈,相信对新手会有一定的启发和帮助. 很多初学者接触Linux 时间不长,还未完整地学习一遍 Linux,理解本节内容可能有些困难,可 ...
- 高德地图API-搜索提示并定位到位置,卫星地图和标准地图的切换
// _yourMap地图实例 _yourMap.plugin(["AMap.MapType"], function () { //添加地图类型切换插件 //地图类型切换 mapT ...
- Python中函数或者类对象带()与不带()的区别——闭包和函数返回时的常见现象
Python中函数或者类对象带()与不带()的区别-----闭包和函数返回时的常见现象 - 函数不带括号时,调用的是这个函数本身 ,是整个函数体,是一个函数对象,不需等该函数执行完成,返回一个已定义函 ...
- 关于XML文档和JAVA中的JTree之间如何转换的问题
关于XML文档和JAVA中的JTree之间如何转换的问题 XML因为良好的结构,被广泛地应用于文档格式的定义.我们知道,应用软件一般需要用配置文件来决定运行时的一些 参数.以前的应用程序的配置文件一般 ...
- PHP之PHPExcel
PHPExcel是一款非常强大的PHP操作EXCEL库,使用PHPExcel可以帮助我们简单.高效实现从Excel读取Excel的数据和导出数据到Excel. 操作: include 'PHPExce ...
- wps文字表格邮件附件部分图片无法预览的问题(1)
使用邮箱客户端发送带word附件的邮件时,客户说部分图片无法查看.我方人员测试下,得到如下几点: 1.出问题的.docx文件下载后可以正常打开查看,但通过给自己邮箱转发邮件(包含附件),foxmail ...
- 《HelloGitHub》第 104 期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. github.com/521xueweihan/HelloG ...