机器学习笔记——矩阵分析与应用

0.0 第三讲依然是数学,因为数学是解决一切问题的基础,一个问深入到最后都是数理知识的支撑。所谓基础决定上层建筑,比如参加ACM比赛,高手之间的比赛已经不是编程技巧了,更多的是数学知识的比拼。若想走得远,数学基础一定要打好。嗯,好遗憾之前学数学多是为了考试,学完就忘,现在要好好再复习一下。程博士用两个小时概讲了《线性代数》《矩阵论》两本书的内容,结合其他的相关资料,总结一下。

1. 线性代数概念回顾

在听课之前,重新翻了一遍本科的《线性代数》,温习了线性代数中的重要概念,为了后面能够更深入的学习。

        逆矩阵:对于n阶矩阵A,如果有一个n阶矩阵B,使 AB = BA = E, 则说矩阵A是可逆的,并把矩阵B称为A的逆矩阵。当 |A| =0 时,A称为奇异矩阵。可逆矩阵一定是非奇异矩阵,因为矩阵可逆的充分必要条件是 |A|不为0.

        矩阵的秩:矩阵A的行阶梯形中非零行的行数,就是矩阵A的秩。 对于n阶矩阵A,由于A的n阶子式只有一个|A|,故当 |A|不为0时R(A)=n,当|A|=0时R(A)<n。因此,可逆矩阵的秩 = 矩阵的阶数,不可逆矩阵的秩 < 矩阵的阶数。那么秩有什么实际意义吗?答案是肯定的。在做矩阵SVD分解的时候用于降噪,如果矩阵秩远小于样本维数(即矩阵列数),那么这些样本相当于只生活在外围空间中的一个低维子空间,这样就能实施降维操作。再者,如果把矩阵看成线性映射,那么秩就是象空间的的维数。

 
     线性方程组的解
:矩阵在数学上的基本的应用就是解线性方程组,这也是贯穿整个课本的样例。一个复杂的线性方程组可以表示为Ax=b,其中x,b是向量。通过求A的秩可以判定方程组的解:无解的充分必要条件是R(A) < R(A,b);有唯一解的充分必要条件是R(A) = R(A,b) = n;有无限多解的充分必要条件是R(A) = R(A,b) < n。

        向量空间的基:设V是一个向量空间,V上有r个向量a1,a2...ar,并且满足 a1,a2...ar线性无关,并且V中的任一向量都可以由a1,a2...ar线性表示,那么向量组a1,a2...ar就称为向量空间V的一个基,r是向量空间的维数,并称V为r维向量空间。可以这么理解,把向量空间看做是向量组,那么基就是一个极大线性无关组,可以用来表示其他向量的最小组合,维数就是向量组的秩。

        特征值与特征向量:对于n阶矩阵A,如果数 λ 和 n 维非零列向量 x 使关系式 Ax=λ x
成立,那么 λ 称为矩阵A的特征值,向量 x 就是A的对应于λ 的特征向量。那么如何理解特征值与特征向量呢?

我们知道,矩阵乘法对应了一个变换,是把任意一个向量变成另一个方向或长度都大多不同的新向量。在这个变换的过程中,原向量主要发生旋转、伸缩的变化。如果矩阵对某一个向量或某些向量只发生伸缩变换,不对这些向量产生旋转的效果,那么这些向量就称为这个矩阵的特征向量,伸缩的比例就是特征值。实际上,这段话既讲了矩阵变换特征值及特征向量的几何意义(图形变换)也讲了其物理含义。物理的含义就是运动的图景:特征向量在一个矩阵的作用下作伸缩运动,伸缩的幅度由特征值确定。特征值大于1,所有属于此特征值的特征向量身形暴长;特征值大于0小于1,特征向量身形猛缩;特征值小于0,特征向量缩过了界,反方向到0点那边去了。

相似矩阵:设A,B都是n阶矩阵,若有可逆矩阵P,使P-1 AP=B,则B是A的相似矩阵。

对角阵:是一个主对角线之外的元素皆为
0 的矩阵。对角线上的元素可以为 0 或其他值。

二次型:含有n个变量的二次齐次函数叫做二次型。只含平方项叫做二次型的标准型。用矩阵表示二次型就是f
= xT Ax,A为对称矩阵。

2. 线性代数基本知识(新视角)

2.1 矩阵

下面跟着程老师再看线性代数。首先是矩阵,对矩阵的直观的理解源于《线性代数》课本中用矩阵表示线性方程组,今天我们分别从行视图和列视图的角度分析矩阵。例如矩阵构成行视图的方程组为
2x-y=1;x+y=5,表示的是二维平面的两条直线,方程组的解就是两条直线的交点。

如果用列视图表达,就是,表示了两个向量之间的关系,如下图,有向量a(2,1)和向量b(-1,1),2a+3b=(1,5)。

这里我们来探究一下“维度”。数学中的维度和物理研究的维度不可一概而论。数学的维度表示的是独立参数的数目,物理学的维度指的是独立的时空坐标的数目。根据爱因斯坦的理论,我们生活的空间是四维空间,包含了三维的空间+时间。

2.2 线性相关和线性无关

我们先看线性相关和线性无关的定义。在向量空间V的一组向量A,如果存在不全为零的数
k1, k2,
···,km , 使则称向量组A是线性相关的,否则数
k1, k2, ···,km全为0时,称它是线性无关。线性无关可以这么理解,如果是二维空间,这组向量的任意两个向量不共线;如果是三维空间,则任意三个向量不共面,如果共面了就可以用另外两个表示第三个向量了不是么。

2.3 向量空间的基

基:向量空间V的一组向量若满足(1)线性无关,(2)V中任一向量可由此向量线性表出,则称该组向量V中的一个基(亦称基底)。

2.4 四个基本的子空间

列空间:是包含所有列的线性组合。列向量是m维的,所以C(A)在Rm里。维数上,A的主列就是列空间的一组基,dim(C(A))=Rank(A)=r,维数就是秩的大小。

零空间:n维向量,是Ax=0的所有解的集合,所以N(A)在Rn里。零空间有可能不存在。维数上,一组基就是一组特殊解,r是主变量的个数,n-r是自由变量的个数,零空间的维数等于n-r。

行空间:是包含所有行的线性组合。A的行的所有线性组合,即A转置的列的线性组合(因为我们不习惯处理行向量),C(AT)在Rn里。维数上,有一个重要的性质:行空间和列空间维数相同,都等于秩的大小。

左零空间:和列空间垂直的空间,交于一个零点,维数为m-r。

可以画出四个子空间如下,行空间和零空间在Rn里,他们的维数加起来等于n,列空间和左零空间在Rm里,他们的维数加起来等于m。

3. 特征分解(凸优化中的重要技术)

3.1 特征分解

  • 线性代数中,特征分解,又称谱分解,是将矩阵分解为由其特征值和特征向量表示的矩阵之积的方法。需要注意只有对可对角化矩阵才可以施以特征分解。
  • 特征分解的性质:对于Ax=λ x,如果所有的特征值都不相同,则相应的所有的特征向量线性无关,此时X可以被对角化为。但是并不是所有的方阵都可以对角化。
  • 对称矩阵的特征分解:如果一个对称矩阵的特征值不同,则其相应的所有的特征向量正交。
  • 二次型:用于判定一个矩阵是正定矩阵、半正定矩阵、负定矩阵还是不定矩阵。如果矩阵的特征值都大于0,就是正定矩阵。下图中是两个二次型图形的例子,左边是凸函数,右边是非凸函数。之后会详细讲凸函数的优化问题。

3.2 PCA

PCA是特征分解的一个有效应用。在进行图像的特征提取的过程中,提取的特征维数太多经常会导致特征匹配时过于复杂,消耗系统资源,不得不采用特征降维的方法。所谓特征降维,即采用一个低纬度的特征来表示高纬度。特征降维一般有两类方法:特征选择和特征抽取。特征选择即从高纬度的特征中选择其中的一个子集来作为新的特征;而特征抽取是指将高纬度的特征经过某个函数映射至低纬度作为新的特征。常用的特征抽取方法就是PCA(Principal
Component Analysis)。降维过程举例:比如有矩阵X,希望把它由两行降成一行。

矩阵X:

1.计算协方差矩阵

2.计算Cx的特征值为:λ1=2,λ2=2/5。特征值对应的特征向量为

3.降维:特征向量的转置*X。得到一行的矩阵。

4. SVD分解与应用

PCA的实现一般有两种方式,分别是特征值分解和SVD分解。SVD奇异值分解可以将一个复杂的矩阵用几个更小的子矩阵表示,每个子矩阵代表了原矩阵的重要特性。 SVD奇异值分解:任何秩为r的矩阵,都可以特征分解为以下公式:

其中U和V是正交矩阵。公式表示了SVD与子空间的关系。公式(13)便于分析,但并不计算有效;公式(14)计算有效,但有时候不方便分析;公式(15)方便展开,用于低秩矩阵的计算。另外SVD还提供了计算四个子空间正交基的一种快速方法。

SVD应用之一图像压缩:给定一幅图像,256*512像素,考虑用低秩矩阵近似的方式,存储奇异向量,若保留一个奇异向量k=1,压缩比大致是 (256*512) / (256+512) = 170。但是k太小图像的质量也损失较大,实际中k不会这么小,下面四个图分别是原图、k=1、k=10、k=80 时图片的表现。

下面是图像压缩的代码片段:

参考资料:

1.  七月算法机器学习课程

2. 《线性代数》

3.《线性代数的几何意义》

4.《矩阵计算》

时间: 2024-11-05 16:03:41

机器学习笔记——矩阵分析与应用的相关文章

机器学习笔记

下载链接:斯坦福机器学习笔记 这一系列笔记整理于2013年11月至2014年7月.所有内容均是个人理解,做笔记的原因是为了以后回顾相应方法时能快速记起,理解错误在所难免,不合适的地方敬请指正. 笔记按照斯坦福机器学习公开课的notes整理,其中online学习部分没有整理,reinforcement learning还没接触,有时间补上. 这份笔记主要记录自己学习过程中理解上的难点,所以对于初学者来说可能不容易理解,更详细和全面的说明可以参照JerryLead等的机器学习博文. 水哥@howde

机器学习笔记(1)

今天按照<机器学习实战>学习 k-邻近算法,输入KNN.classify0([0,0],group,labels,3)的时候总是报如下的错误: Traceback (most recent call last): File "<pyshell#75>", line 1, in <module> KNN.classify0([0,0],group,labels,3) File "KNN.py", line 16, in classi

机器学习笔记——K-means

K-means是一种聚类算法,其要求用户设定聚类个数k作为输入参数,因此,在运行此算法前,需要估计需要的簇的个数. 假设有n个点,需要聚到k个簇中.K-means算法首先从包含k个中心点的初始集合开始,即随机初始化簇的中心.随后,算法进行多次迭代处理并调整中心位置,知道达到最大迭代次数或中性收敛于固定点. k-means聚类实例.选择三个随机点用作聚类中心(左上),map阶段(右上)将每个点赋给离其最近的簇.在reduce阶段(左下),取相互关联的点的均值,作为新的簇的中心位置,得到本轮迭代的最

机器学习笔记 贝叶斯学习(上)

机器学习笔记(一) 今天正式开始机器学习的学习了,为了激励自己学习,也为了分享心得,决定把自己的学习的经验发到网上来让大家一起分享. 贝叶斯学习 先说一个在著名的MLPP上看到的例子,来自于Josh Tenenbaum 的博士论文,名字叫做数字游戏. 用我自己的话叙述就是:为了决定谁洗碗,小明和老婆决定玩一个游戏.小明老婆首先确定一种数的性质C,比如说质数或者尾数为3:然后给出一系列此类数在1至100中的实例D= {x1,...,xN} :最后给出任意一个数x请小明来预测x是否在D中.如果小明猜

机器学习笔记——人工神经网络

人工神经网络(Artificial Neural Networks,ANN)提供了一种普遍而实用的方法从样例中学习值为实数.离散值或向量的函数. 人工神经网络由一系列简单的单元相互密集连接构成,其中每一个单元有一定数量的实值输入(可能是其他单元的输出),并产生单一的实数值输出(可能成为其他单元的输入). 适合神经网络学习的问题: 实例是很多"属性-值"对表示的 目标函数的输出可能是离散值.实数值或者由若干实数或离散属性组成的向量 训练数据可能包含错误 可容忍长时间的训练 可能需要快速求

机器学习笔记04:逻辑回归(Logistic regression)、分类(Classification)

之前我们已经大概学习了用线性回归(Linear Regression)来解决一些预测问题,详见: 1.<机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradient Decent)> 2.<机器学习笔记02:多元线性回归.梯度下降和Normal equation> 3.<机器学习笔记03:Normal equation及其与梯度下降的比较> 说明:本文章所有图片均属于Stanford机器学课程,转载请注明出处 面对一些类似回归问题,我们可

机器学习笔记之基础概念

本文基本按照<统计学习方法>中第一章的顺序来写,目录如下: 1. 监督学习与非监督学习 2. 统计学习三要素 3. 过拟合与正则化(L1.L2) 4. 交叉验证 5. 泛化能力 6. 生成模型与判别模型 7. 机器学习主要问题 8. 提问 正文: 1. 监督学习与非监督学习 从标注数据中学习知识的规律以及训练模型的方法叫做监督学习,但由于标注数据获取成本较高,训练数据的数量往往不够,所以就有了从非标注数据,也就是非监督数据中学习的方法. 由于非监督数据更容易获取,所以非监督学习方法更适合于互联

cs229 斯坦福机器学习笔记(一)

前言 说到机器学习,很多人推荐的学习资料就是斯坦福Andrew Ng的cs229,有相关的视频和讲义.不过好的资料 != 好入门的资料,Andrew Ng在coursera有另外一个机器学习课程,更适合入门.课程有video,review questions和programing exercises,视频虽然没有中文字幕,不过看演示的讲义还是很好理解的(如果当初大学里的课有这么好,我也不至于毕业后成为文盲..).最重要的就是里面的programing exercises,得理解透才完成得来的,毕

机器学习笔记——SVM之一

SVM(Support Vector Machine),中文名为 支持向量机,就像自动机一样,听起来异常神气,最初总是纠结于不是机器怎么能叫"机",后来才知道其实此处的"机"实际上是算法的意思. 支持向量机一般用于分类,基本上,在我的理解范围内,所有的机器学习问题都是分类问题.而据说,SVM是效果最好而成本最低的分类算法. SVM是从线性可分的情况下最优分类面发展而来的,其基本思想可以用下图表示: (最优分类面示意图) 图中空心点和实心点代表两类数据样本,H为分类线