赞
踩
通过矩阵来研究二次函数(方程),这就是线性代数中二次型的重点。
最简单的一元二次函数就是:
给它增加一次项不会改变形状:
增加常数项就更不用说了,更不会改变形状。
下面是一个二元二次方程:
给它增加一次项也不会改变形状,只是看上去有些伸缩:
对于二次函数或者二次方程,二次部分是主要部分,往往研究二次这部分就够了。
因为二次函数(方程)的二次部分最重要,为了方便研究,我们把含有n 个变量的二次齐次函数:
f
(
x
1
,
x
2
,
⋅
,
x
n
)
=
a
11
x
1
2
+
a
22
x
2
2
+
⋯
+
a
n
n
x
n
2
+
2
a
12
x
1
x
2
+
2
a
13
x
1
x
3
+
⋯
+
2
a
n
−
1
,
n
x
n
−
1
x
n
f(x_1,x_2,\cdot,x_n)=a_{11}x_1^2+a_{22}x_2^2+\cdots+a_{nn}x_n^2+2a_{12}x_1x_2+2a_{13}x_1x_3+\cdots+2a_{n-1,n}x_{n-1}x_n
f(x1,x2,⋅,xn)=a11x12+a22x22+⋯+annxn2+2a12x1x2+2a13x1x3+⋯+2an−1,nxn−1xn
或者二次齐次方程称为二次型。
实际上我们可以通过矩阵来表示二次型:
更一般的:
可以写成更线代的形式:
所以有下面一一对应的关系:
在线代里面,就是通过一个对称矩阵,去研究某个二次型。
我们来看下,这是一个圆:
我们来看改变一下二次型矩阵:
哈,原来椭圆和圆之间是线性关系呐(通过矩阵变换就可以从圆变为椭圆)。
继续:
咦,双曲线和圆之间也是线性关系(准确的说是仿射的)。
其实圆、椭圆、双曲线之间关系很紧密的,统称为圆锥曲线,都是圆锥体和平面的交线:
从上面动图可看出,一个平面在圆锥体上运动,可以得到圆、椭圆、双曲线,这也是它们之间具有线性关系的来源(平面的运动是线性的、或者是仿射的)。
再改变下矩阵:
这个椭圆看起来有点歪,不太好处理,我们来把它扶正,这就叫做规范化。
如果我们对矩阵有更深刻的认识,那么要把它扶正很简单。
往下读之前,请先参看我在如何理解特征值(https://www.zhihu.com/question/21874816/answer/181864044)下的回答。
首先,矩阵代表了运动,包含:
旋转
拉伸
投影
对于方阵,因为没有维度的改变,所以就没有投影这个运动了,只有:
旋转
拉伸
具体到上面的矩阵:
我把这个矩阵进行特征值分解:
注意我上面提到的正交很重要,为什么重要,参下。
对于二次型矩阵,都是对称矩阵,所以特征值分解总可以得到正交矩阵与对角矩阵。
特征值分解实际上就是把运动分解了:
那么我们只需要保留拉伸部分,就相当于把矩阵扶正(图中把各自图形的二次型矩阵标注出来了):
所以,用二次型矩阵进行规范化是非常轻松的事情。
正定是对二次函数有效的一个定义,对方程无效。
对于二次型函数,f(x)=x^TAx :
从图像上看,这是正定:
半正定:
不定:
既然二次型用矩阵来表示了,那么我们能否通过矩阵来判断是否正定呢?
下面我分别给出了二次型的图形,以及对应的特征值矩阵的图形,你可以自己动手试试(3D窗口可以通过鼠标旋转,方便观察),得出自己的结论:
起码,我们可以观察出这个结论,特征值都大于0,则为正定矩阵。
在很多学科里,二次型都是主要研究对象,很多问题都可以转为二次型。线代作为一门数学工具,在二次型的研究中也发挥了很好的作用。
矩阵的特征向量跟特征值的英文名字分别是 eigenvector 跟 eigenvalue,这俩概念非常非常有用,根据他们俩可以外延出很多有趣的功能。大部分同学可能脑子里想一下还能记得他们俩是怎么计算出来的,但是他们为什么可以代表一个矩阵的“特征”呢?除了这俩,相信大多数同学都不记得矩阵的行列式是个什么东西了,总之不太直观。相比较而言,矩阵的**迹(trace)**这个概念就比较直观,就是主对角线上的元素之和。本篇文章主要围绕这四个概念,讲一下这四个东西是如何刻画矩阵的特征跟他们之间的关联。
对比着俩图可以发现,对于一个固定的矩阵A,一般的向量被他transform之后都会改变方向,但是有一些特殊的向量,被A映射了之后还是保持它本来的方向,改变的只是它的模长。这些特殊向量的方向不变性表达出来就是这样的:
什么样的矩阵会产生这种效果呢?对于二维矩阵来说,只要它的两个行向量共线就可以。重新理一下我们现在的逻辑线条:想让方程组(1)有非零解,必须让它的行向量共线,想让行向量共线,只需要A的行列式为零;二维矩阵的行列式等于平行四边形的面积,三维矩阵的行列式对应的是平行六面体的体积…更高维度上也可以延伸出同样的类似于“体积”的定义。
那么面积要怎么算呢?还是以二维平面为例,两个向量构成的平行四边形的面积可以由下面这个公式计算 (粉红的图片来自维基百科)
下面,高能的部分来了:
矩阵的trace等于特征值之和,也就是说矩阵的主对角线元素之和等于它的特征值之和。对于这个性质作者暂时也还没能想到一个直观的解释,证明的思路跟证明前面的那个行列式等于特征值之和类似,要从特征方程的表达式入手。
https://zhuanlan.zhihu.com/p/25955676
所以最后总结回答问题:每一个特征值,都对应一个eigenspace,那么A的所有特征空间(eigenspace)的维数加起来是不是恰好等于n?A的所有eigenspace会不会小于n?
答案:
对于可对角化的n维方阵矩阵A,当它有0特征值时,如果0特征值的eigenspace维数=a,那么它的所有非零特征值的eigenspace合起来的维数=n-a。A的所有eigenspace的维数是a+n-a=n,恰好等于n。
对于只能约当块对角化的n维方阵A,当它有0特征值时,如果0特征值的Jordan block有a个,也就是0特征值的eigenspace的维数为a,0特征值的a个Jordan block广义特征向量的维数加起来为b,其他各个非零特征值的eigenspace维数加起来为c,这c个Jordan block的广义特征空间的维数加起来为d,这时a+b+c+d=n,A的所有eigenspace的维数是a+c<n。
(下面的回答只涉及实数范围)。
关于特征值、特征向量可以讲的确实很多,我这里希望可以给大家建立一个直观的印象。
先给一个简短的回答,如果把矩阵看作是运动,对于运动而言,最重要的当然就是运动的速度和方向,那么(我后面会说明一下限制条件):
既然运动最重要的两方面都被描述了,特征值、特征向量自然可以称为运动(即矩阵)的特征。
注意,由于矩阵是数学概念,非常抽象,所以上面所谓的运动、运动的速度、运动的方向都是广义的,在现实不同的应用中有不同的指代。
下面是详细的回答,我会先从几何上简单讲解下特征值、特征向量的定义指的是什么,然后再来解释为什么特征值、特征向量会是运动的速度和方向。
从定义出发,Ax=cx:A为矩阵,c为特征值,x为特征向量。
矩阵A乘以x表示,对向量x进行一次转换(旋转或拉伸)(是一种线性转换),而该转换的效果为常数c乘以向量x(即只进行拉伸)。
我们通常求特征值和特征向量即为求出该矩阵能使哪些向量(当然是特征向量)只发生拉伸,使其发生拉伸的程度如何(特征值大小)。这样做的意义在于,看清一个矩阵在那些方面能产生最大的效果(power),并根据所产生的每个特征向量(一般研究特征值最大的那几个)进行分类讨论与研究。
说明下,因为线性变换总是在各种基之间变来变去,所以我下面画图都会把作图所用的基和原点给画出来。
在
i
⃗
,
j
⃗
\vec{i_{}},\vec{j_{}}
i
,j
下面有个
v
⃗
\vec{v_{}}
v
:
随便左乘一个矩阵A,图像看上去没有什么特殊的:
我调整下
v
⃗
\vec{v_{}}
v
的方向,图像看上去有点特殊了:
可以观察到,调整后的
v
⃗
\vec{v_{}}
v
和
A
v
⃗
A\vec{v_{}}
Av
在同一根直线上,只是
A
v
⃗
A\vec{v_{}}
Av
的长度相对
v
⃗
\vec{v_{}}
v
的长度变长了。
此时,我们就称
v
⃗
\vec{v_{}}
v
是A的特征向量,而
A
v
⃗
A\vec{v_{}}
Av
的长度是
v
⃗
\vec{v_{}}
v
的长度的
λ
\lambda
λ倍,
λ
\lambda
λ就是特征值。
从而,特征值与特征向量的定义式就是这样的:
其实之前的A不止一个特征向量,还有一个特征向量:
容易从
A
v
⃗
A\vec{v_{}}
Av
相对于
v
⃗
\vec{v_{}}
v
是变长了还是缩短看出,这两个特征向量对应的特征
λ
\lambda
λ值,一个大于1,一个小于1。
从特征向量和特征值的定义式还可以看出,特征向量所在直线上的向量都是特征向量:
你可以自己动手试试,可以改变
v
⃗
\vec{v_{}}
v
的位置,以及矩阵A的值(特征空间会随着矩阵改变而改变):
其中有些值构成的矩阵没有画出特征空间,可能是因为它的特征值、特征向量是复数,也可能是不存在。
下面就要说下,特征值、特征向量与运动的关系
我有一管不知道颜色的颜料,而且这管颜料有点特殊,我不能直接挤出来看颜色,只能通过调色来观察:
为了分辨出它是什么颜色(记得它只能通过调色来辨别):
因为反复混合之后,这管颜料的特征就凸显了出来,所以我们判断,这管颜料应该是蓝色。
说这个干什么?矩阵也有类似的情况。
一般来说,矩阵我们可以看作某种运动,而二维向量可以看作平面上的一个点(或者说一个箭头)。对于点我们是可以观察的,但是运动我们是不能直接观察的。
就好像,跑步这个动作,我们不附加到具体的某个事物上是观察不到的,我们只能观察到:人跑步、猪跑步、老虎跑步、…,然后从中总结出跑步的特点。
就好像之前举的不能直接观察的颜料一样,要观察矩阵所代表的运动,需要把它附加到向量上才观察的出来:
似乎还看不出什么。但是如果我反复运用矩阵乘法的话:
就像之前颜料混合一样,反复运用矩阵乘法,矩阵所代表的运动的最明显的特征,即速度最大的方向,就由最大特征值对应的特征向量展现了出来。
至于别的特征值对应的是什么速度,我后面会解释,这里先跳过。
可以自己动手试试,我把\lambda值也标注出来了,可以关注下最大\lambda值对于运动的影响:
顺便说下,对于复数的特征值、特征向量,在上面就没有画出特征空间,但可以观察到反复运用矩阵乘法的结果是围绕着原点在旋转。关于复数特征值和特征向量这里就不展开来说了。
就可以看出,这壶水的温度会沿着A的特征值最大的特征向量方向飞快增长,我估计要不了多久,在理想的情况下,温度就会突破百万度、千万度、亿万度,然后地球说不定就爆炸了。我们就说这个矩阵不稳定。
所以说,不要烧斐波那契的水。
实际上历史也是这样,欧拉在研究刚体的运动时发现,有一个方向最为重要,后来拉格朗日发现,哦,原来就是特征向量的方向。
我们知道特征值、特征向量有什么特点之后,下一步就想知道,为什么会这样?
下面讲解要用到矩阵乘法和相似矩阵的知识,我就不啰嗦了,可以参看:“从高斯消元法到矩阵乘法”(https://www.matongxue.com/madocs/755)、“如何理解矩阵乘法?”(https://www.matongxue.com/madocs/555/)以及“相似矩阵是什么?”(https://www.matongxue.com/madocs/491)
对于方阵而言,矩阵不会进行纬度的升降,所以矩阵代表的运动实际上只有两种:
最后的运动结果就是这两种的合成。
我们再回头看下刚才的特征值分解,实际上把运动给分解开了:
我们来看看在几何上的表现是什么,因此相似矩阵的讲解涉及到基的变换,所以大家注意观察基:
如果旋转前的基不正交,旋转之后变为了标准基,那么实际会产生伸缩,所以之前说的正交很重要。
相当于,之前的旋转指明了拉伸的方向,所以我们理解了:
回到我们之前说的运动上去,特征值就是运动的速度,特征向量就是运动的方向,而其余方向的运动就由特征向量方向的运动合成。所以最大的特征值对应的特征向量指明了运动速度的最大方向。
但是,重申一下,上面的推论有一个重要的条件,特征向量正交,这样变换后才能保证变换最大的方向在基方向。如果特征向量不正交就有可能不是变化最大的方向,比如:
所以我们在实际应用中,都要去找正交基。但是特征向量很可能不是正交的,那么我们就需要奇异值分解了,这里就不展开了。
大家可以再回头去操作一下之前的动图,看看不正交的情况下有什么不一样。
说明下,如果大家把这个文章和之前提到的我写的“相似矩阵”的文章参照来看的话,“相似矩阵”那篇文章里面我把图像的坐标系换了,所以看着图像没有变换(就好像直角坐标系到极坐标系下,图像是不会变换的)。而这里我把图像的坐标系给旋转、拉伸了,所以看着图像变换了(就好像换元,会导致图像变换)。这其实是看待矩阵乘法的两种视角,是等价的,但是显示到图像上就有所不同。
之前的烧水系统是不稳定的。
λ
=
1
\lambda = 1
λ=1的,系统最终会趋于稳定:
比如说,有下面这么一副
512
×
512
512\times512
512×512的图片(方阵才有特征值,所以找了张正方形的图):
这个图片可以放到一个矩阵里面去,就是把每个像素的颜色值填入到一个
512
×
512
512\times512
512×512的A矩阵中。
根据之前描述的有:
A
=
P
Λ
P
−
1
A=P\Lambda P^{-1}
A=PΛP−1
其中,
Λ
\Lambda
Λ是对角阵,对角线上是从大到小排列的特征值。
我们在
Λ
\Lambda
Λ中只保留前面50个的特征值(也就是最大的50个,其实也只占了所有特征值的百分之十),其它的都填0,重新计算矩阵后,恢复为下面这样的图像:
效果还可以,其实一两百个特征值之和可能就占了所有特征值和的百分之九十了,其他的特征值都可以丢弃了。
奇异值是矩阵里的概念,一般通过奇异值分解定理求得。设A为
m
×
n
m\times n
m×n阶矩阵,
q
=
m
i
n
(
m
,
n
)
q=min(m,n)
q=min(m,n),
A
∗
A
A*A
A∗A的q个非负特征值的算术平方根叫作A的奇异值。
奇异值分解是线性代数和矩阵论中一种重要的矩阵分解法,适用于信号处理和统计学等领域。
矩阵的特征值分解考虑的是一个到自身的映射矩阵,奇异值分解考虑的矩阵对应的是到别的空间的映射。结合此点,理解以下:
特征值是方阵所有,奇异值是所有矩阵。
特征值可正可负可为0,奇异值是非负的。
特征值对应着到自身空间的变换,及缩放尺度,而奇异值则表示着到另一个空间的变换。
下图特征值:
下图奇异值:
对称矩阵的特征向量一般情况下被约束为单位2范数,而非对称阵矩阵的特征向量则有不同的2范数,奇异向量的2范数一般被约束为1.
下图特征值和特征向量等式:
下图
A
−
λ
A-\lambda
A−λ是奇异的; A的特征多项式或特征方程:
下图矩阵形式:
当假设X的各列线性独立的时候,则可以有下图常见的特征值分解形式:
下图矩阵形式:
其中U和V在实值的情况是正交阵,是复数的情况下是unitary的。
下图奇异值分解:
相似矩阵保特征值
下图A和B是相似的:
奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域。是很多机器学习算法的基石。本文就对SVD的原理做一个总结,并讨论在在PCA降维算法中是如何运用运用SVD的。
SVD作为一个很基本的算法,在很多机器学习算法中都有它的身影,特别是在现在的大数据时代,由于SVD可以实现并行化,因此更是大展身手。SVD的原理不难,只要有基本的线性代数知识就可以理解,实现也很简单因此值得仔细的研究。当然,SVD的缺点是分解出的矩阵解释性往往不强,有点黑盒子的味道,不过这不影响它的使用。
奇异值分解正是对线性变换这三种效应(旋转、缩放和投影)的一个析构。
而特征值分解其实是对旋转缩放两种效应的归并。(有投影效应的矩阵不是方阵,没有特征值)
特征值分解和奇异值分解都是给一个矩阵(线性变换)找一组特殊的基,特征值分解找到了特征向量这组基,在这组基下该线性变换只有缩放效果。而奇异值分解则是找到另一组基,这组基下线性变换的旋转、缩放、投影三种功能独立地展示出来了。我感觉特征值分解其实是一种找特殊角度,让旋转效果不显露出来,所以并不是所有矩阵都能找到这样巧妙的角度。仅有缩放效果,表示、计算的时候都更方便,这样的基很多时候不再正交了,又限制了一些应用。
简介:
意义:数据中心化和标准化在回归分析中是取消由于量纲不同、自身变异或者数值相差较大所引起的误差。
原理:数据标准化:是指数值减去均值,再除以标准差;
数据中心化:是指变量减去它的均值。
目的:通过中心化和标准化处理,得到均值为0,标准差为1的服从标准正态分布的数据。
在回归问题和一些机器学习算法中,以及训练神经网络的过程中,还有PCA等通常需要对原始数据进行中心化(Zero-centered或者Mean-subtraction)处理和标准化(Standardization或Normalization)处理。
目的:通过中心化和标准化处理,得到均值为0,标准差为1的服从标准正态分布的数据。计算过程由下式表示:
原因:在一些实际问题中,我们得到的样本数据都是多个维度的,即一个样本是用多个特征来表征的。很显然,这些特征的量纲和数值得量级都是不一样的,而通过标准化处理,可以使得不同的特征具有相同的尺度(Scale)。这样,在学习参数的时候,不同特征对参数的影响程度就一样了。简言之,当原始数据不同维度上的特征的尺度(单位)不一致时,需要标准化步骤对数据进行预处理。
下图是二维的示例:
左图表示的是原始数据
中间的是中心化后的数据,可以看出就是一个平移的过程,平移后中心点是(0,0)。同时中心化后的数据对向量也容易描述,因为是以原点为基准的。
右图将中心化后的数据除以标准差,得到为标准化的数据,可以看出每个维度上的尺度是一致的(红色线段的长度表示尺度),而没有处理之前的数据是不同的尺度标准。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。
————————————————
二次型 https://www.matongxue.com/madocs/271/
特征值 https://www.matongxue.com/madocs/228
特征方程 http://www2.edu-edu.com.cn/lesson_crs78/self/j_4184/soft/ch0501.html
奇异值 https://www.jianshu.com/p/96572985c8ab
特征值分解和奇异值分解 https://www.zhihu.com/question/19666954/answer/54788626
数据的中心化和标准化 https://blog.csdn.net/lilong117194/article/details/78561013
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。