开发者学堂课程【人工智能必备基础:线性代数:特征值分解】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/543/detail/7389
特征值分解
首先第一点叫做一个积的变换,因为 SVD,本身相当一个基表到另外一个基,大概是这样一个意思,有坐标系一个 X 轴一个 Y 轴,然后现在有个点他是一个二二或者说这样一个向量,问题来了,为什么说他是二二,他只是这样方向谁定义出来事儿的,是有这样一个前提,X 轴和 Y 轴他俩之间怎么样都是有这样的一个方向的。所以说这个 R 是定义在我当前 X 轴和 Y 轴组成的这样的一个基当中,它才能称之为是一个二二坐标,如果说我这个基变了,你保持这个向量不变,这个 X 轴和 Y 轴变了,然后 R 不变,这个二可能还是这个方向是,那他的坐标就不是二二了,所以当我们说一切向量一些位置的时候都是基于这个基来去做的,这是第一点。然后,来看我们的数据,比如说现在有了一个数据之后想知道这个数据在当前一个基上,它的一个坐标的分量应该是什么,那怎么办?这个比较简单。比如说,现在我拿到了一个数据是三二,随便一个点都可以,现在给我一组基这个基你可以自己来定义,当前三二这个点如果说这个三原来就是像 X 这样的一种形式,现在这个基变了,我想知道他在新的基上的一个坐标也能算出来,直接相乘得出。
基变换
基:x 轴和 y 轴组成一个向量基,根据坐标来确定
变换:数据与一个基做内积运算,结果作为第一个新的坐标分量,然后与第二个基做内积运算,结果作为第二个新坐标的分量
举例
数据(3,2)映射到基中坐标:
矩阵乘以一个向量结果仍是一个向量
有了基之后就有了坐标,就可以算他在一个新的基上的一个映射是什么然后就成了一个向量,我们对矩阵执行一些操作,或者想找出一些信息,找那些有代表的一个信息,我们做任何事,都是有一个主要方向和一个次要方向的,如图蓝色也是个方向,这个变换它是有主要方向,主要方向全是这个 X 轴,这里调一点,我们做什么事,都是有这样一个主次的。SVD 矩阵分解之前,先来看第一个问题,叫做一个特征值分解,在很多地方经常提到,先来说一下这个特征值分解是怎么一回事。当中有很多的信息来分一分,一个矩阵可以分解,它特征向量对角组成一个对角阵,就是我们的特征值。
先解释一下这个公式,比如现在能找到一个矩阵,但是这个矩阵被限制死了,他是一个 N 乘 N 的一个方阵才可以,这是第一点,他是个 N 乘 N 的。那么问题来了,如果拿到一个数据,100 万个用户,10 万个商品,那这第一点不是个N乘N的,那就没办法去做了,如果满足于这样的一点条件,就可以去做了。
总结:
意义:沿着某一方向对矩阵进行拉伸
图一沿着 x 轴进行拉伸
图二沿着箭头方向进行拉伸
特征值分解
前提:矩阵是 N*N 的方阵且有 N 个线性无关的特征向量
这时就可以在对角阵中找比较大的作为代表
对原始矩阵寻找一个类似进行近似压缩等操作