💕恭喜本博客浏览量达到两百万,CSDN内容合伙人,CSDN人工智能领域实力新星~
🧡本文章为2021版本迭代更新版本,在结合有效知识的基础上对文章进行合理的增加,使得整个文章时刻顺应时代需要
🧡本专栏将通过系统的深度学习实例,从可解释性的角度对深度学习的原理进行讲解与分析,通过将深度学习知识与Pytorch的高效结合,帮助各位新入门的读者理解深度学习各个模板之间的关系,这些均是在Pytorch上实现的,可以有效的结合当前各位研究生的研究方向,涉及人工智能的各个领域,是经过一年时间打磨的精品专栏!
💜专栏地址:https://blog.csdn.net/qq_39237205/category_12077968.html
正文开始~~~
没看上一篇的先看上一篇哦,都有联系:
上一篇地址:https://blog.csdn.net/qq_39237205/article/details/127589548
文章目录
- 2.1.5 特征向量和特征值
- 2.1.5.1 特征值和特征向量的定义与几何意义
- 2.1.5.2 正定矩阵的特征向量的特别之处
- 2.1.6 矩阵乘法的几何意义(2)
- 2.1.6.1 从旋转和拉伸角度理解矩阵乘法的几何意义
- 2.1.7 奇异值分解
- 2.1.8线性可分性和维度
- 2.1.8.1 线性可分的定义如下
- 2.1.8.2 举例:二维的样本通过矩阵乘法投影到高维
- 2.1.9 非线性变换
2.1.5 特征向量和特征值
2.1.5.1 特征值和特征向量的定义与几何意义
特征值和特征向量的定义,对于一个非零向量x和一个矩阵A,如果有标量入使得:
则称入为A的特征值,x为对应的特征向量。从定义来看,特征向量的意思就是说对经过变换后,这个向量并没有发生方向的变化(或是完全反向,如果入为负值的话)。
我们来直观感受一下特征向量和特征值的几何含义,为方便讨论,以单位向量为例,考虑如下矩阵:
这个矩阵变换的特征向量分别为(-1/√2,-1/√2)和(-1/√5,-2/√5),对应的特征值分别是2和3。
首先来看看向量(1,0)和(0,1)经过变换后的情况,如图2-10所示。
根据矩阵乘法几何含义的理解,(1,0)向量所示的黑色实线箭头变换后对应的则是第一列的向量(1,-2),而(0,1)所示的浅色实线箭头变换后对应的是第二列的向量(1,4)。显然这两个向量都发生了方向的变化。
接下来看看图2-10b中,两个特征向量变换后的情况。(-1/√2,-1/√2)是黑色实线箭头,(-1/√5,-2/√25)是浅色实线箭头,变换后的两个向量和变换前的向量方向完全一致,其中黑色虚线箭头的长度是黑色实线箭头长度的2倍,浅色虚线箭头的长是浅色实线箭头长度的3倍。
这就是特征值的几何含义:变换会将对应特征向量方向上的向量进行缩放,缩放的倍数就是特征值。
上面的例子用的矩阵是一个非对称矩阵,在机器学习中比较常见的情况是对称矩阵,尤其是正定矩阵。
2.1.5.2 正定矩阵的特征向量的特别之处
正定矩阵的定义如下:对于任意非零的向量x,和一个对称矩阵A,如果有
则称矩阵A是正定矩阵。
从之前讲到的点积的几何意义,正定矩阵可以理解为一个向量经过正定矩阵变换后,和自身的点积大于0。即正定矩阵对应的变换不会把变换后的向量变到向量本身所垂直的平面的另一侧。从二维的角度来看,即变换后的向量和自身的夹角都不会大于90°。
考虑如下正定矩阵:
特征向量分别是(0.85,0.53)和(-0.53,0.85),对应的特征向量为1.81和0.69,画出来如图2-11a所示,深色实线箭头为单位向量,浅色虚线箭头为变换后的向量。
可以看到,两个特征向量是互相垂直的。
图2-11b,想象有个单位长度的向量,把这个向量绕着原点旋转,并画出变换前和变换后的轨迹,则这个向量显然画出了一个圆,而变换后的向量画出的轨迹是一个椭圆。
图2-11c所示,而这个正定矩阵对应的特征向量,则正好分别是椭圆长短轴所指的方向,特征值则是椭圆的半长轴和半短轴的长度。
从几何上理解就是正定矩阵变换前后的空间里可以找到一组正交的向量,这组正交向量变换后仍是正交的,且方向不变,空间只是沿着这组正交向量的方向上发生了拉伸/收缩。
2.1.6 矩阵乘法的几何意义(2)
2.1.6.1 从旋转和拉伸角度理解矩阵乘法的几何意义
正定矩阵对应的变换其实就是沿着特征向量的方向进行了缩放。那么从旋转和缩放的角度如何看待正定矩阵的变换呢?
还是考虑图2-11中的例子,对于图2-11例子中的变换矩阵
很难直观想象出沿着特征向量方向(0.85,0.53)和(-0.53,0.85)进行缩放的几何过程。如果沿着横轴和纵轴方向进行缩放,那么形式就非常简单了,如x-y二维平面中,用一个变换对横轴缩放a倍,纵轴缩放b倍的矩阵如下:
该矩阵是一个对角矩阵,对应维度上的元素就是要缩放的倍数。
通过上文,我们可以了解到旋转矩阵和对应的几何理解,那么对于二维平面的情况,即转换思路:只要用一个旋转矩阵,把原来空间中对应特征向量的方向旋转到对应x轴和y轴,然后进行简单的缩放,然后再用一个矩阵变换旋转回去,等效于直接乘以一个变换矩阵。
按照这个思路来试一下。
第①步,已知两个特征向量的方向,现在要把(0.85,0.53)转回x轴的位置,只需要把当前的x轴转到(0.85,0.53)沿x轴对称的位置,所以第一个列向量就是(0.85,-0.53)。
同样的对于(-0.53,0.85),要转回y轴,则需要把当前y轴转到(-0.53,0.85)沿y轴对称的位置,也就是(0.53,0.85),所以变换矩阵就是
也就是从图2-12a到图2-12b的情况。注意其实就是特征向量作为行向量的矩阵。接下来就是简单的沿着x轴和y轴方向进行缩放,其中缩放的倍数分别是两个特征向量对应的特征值,也就是进行如下的矩阵变换。
这一步对应下图2-12b到图2-12c,可以看到,变换前的方格里的笑脸已经被扭曲成了斜着的四边形,接下来就是最后一步,也就是第一步的“逆旋转”,其实就是逆变换,注意到旋转矩阵都是正交矩阵,所以逆变换就是转置,也就是特征向量作为列向量的矩阵。
最后就得到了图2-12d,所以在这个过程中相当于把变换矩阵按照M=U∑UT分解成了3个子变换矩阵:
其中第一次和最后一次的变换是单纯旋转,中间的变换是单纯地沿坐标轴缩放。
2.1.7 奇异值分解
图2-12的例子讲的是正定矩阵,那么对于一般情况下的矩阵变换呢,是否这种基于特征向量和特征值,然后用单纯旋转和缩放的组合解释的几何意义也能推广呢?答案是肯定的,而且形式上和对于正定矩阵的分解很类似,也是“翻转→缩放→翻转”,这种更一般的分解就是奇异值分解(Singular Value Decomposition,SVD) 。
定义如下:
其中∑是一个对角矩阵,就我们在机器学习领域内的问题而言,U和V为正交矩阵。
下面还是以二维的例子来演示,考虑如下的矩阵及其奇异值分解。
还是按照类似图2-12所示的策略,先画出(0.38,0.92)和(-0.92,0.38)两个第一次旋转后会转到横轴和纵轴的向量,还有虚线笑脸,来一起看看一步步直到最终的变换,如图2-13所示。
所以得知,任何一个矩阵乘法执行的线性变换都是可以分解为旋转→缩放→旋转,而且其实正定矩阵的奇异值分解就是U和V是同一个矩阵的情况,奇异值分解可以看作是特征值和特征向量的推广。
2.1.8线性可分性和维度
线性可分就是说可以用一个线性函数把两类样本分开
2.1.8.1 线性可分的定义如下
图2-14a中在一维直线上,将两类点分开的超平面就是一个点。图2-14b中,分开两类点的超平面是一条直线。图2-14c中则是一个平面分开了两个不同类别的点。对于这种二分类问题,在n维空间中,wx+b=0则是描述判别这两类不同模式的超平面。至于线性不可分,如图2-15a所示的是一个经典的表达异或(XOR)函数的线性不可分例子。
在图2-15b中,一种类别的点集“包围”着另一种类别的点集。对于这种情况,无论怎么画直线,都不可能将两类点分开。
那么线性可分和前面讲的线性变换有什么联系呢?通过前面的内容,矩阵所对应线性变换就是矩阵会对空间进行旋转,沿指定方向缩放的操作。线性变换再结合平移向量一起,这类变换被称为仿射变换。
在同维度下,仿射变换下有些特性可能会发生变化,如长度、面积、角度和距离等,有些量则保持不变,如直线的平行性质,还有线性可分的性质。形象来理解,仿射变换如果对变换前的空间标上格子,那么变换后格子的相对位置是不会发生变化的。
所以以二维为例,如果变换前可以被直线二分类的空间,变换后对应的空间和分界线都是一样的,如图2-16所示。
也就是说同维度的仿射变换不改变线性可分或不可分的性质。
那如果变换一下维度呢?结论对于线性不可分还是一样,只要是线性/仿射变换,线性不可分的变换后还是线性不可分,而对于线性可分的例子,则有可能会变得线性不可分。我们还是用图2-14中的例子,先考虑变换到低的维度,如图2-17所示。
在图2-17中,分别把样本位置和x轴的单位向量(1,0),y轴的单位向量(0,1)和A点方向的单位向量(1/2,-V3/2)做矩阵乘法,也就是点积,相当于求出了样本在这些向量上的投影。可以看到,在y轴和A向量的投影仍然是线性可分的,但是在x轴上的投影上,样本则混在了一起,无法用一个点分开。
2.1.8.2 举例:二维的样本通过矩阵乘法投影到高维
把二维的样本通过矩阵乘法投影到高维,只需要用一个三行两列的矩阵,如图2-18所示。
可以看到,经过投影到高维的矩阵乘法,二维平面在三维空间里还是分布在一个平面上,所以线性可分性还是保持不变。
虽然我们只看了一维到三维的情况,不过不同维度之间的线性变换的规律是类似的,高维变换到低维可能会让本来线性可分的样本变得不可分,而低维变换到高维则不会破坏线性可分性。
总体而言,在高维空间中的样本更容易被线性分开,直观想象一下,一群挤在一条线上的样本和一群同样数量分布在三维空间中的样本,哪个感觉更容易被线性分开?当然是后者了
2.1.9 非线性变换
如果是线性不可分的样本,通过线性变换到更高维的空间后,仍然是线性不可分的。
但是注意到,低维的样本变换到更高维空间后,事实上仍处在原来维度大小的一个超平面上。
如图2-18所示,二维空间中所有的样本在变换到三维空间后还是处在一个二维平面上,但是和二维情况不同的是,在二维空间内,无论如何都不能改变样本的分布,而在三维空间内却多出了一个维度!
下面来考虑如图2-19a的情况,在垂直二维x-y平面的方向上增加第三个维度z。
显然是线性不可分的,一个很自然的想法是通过非线性变换得到一个z轴的值,来考虑如下的非线性变换:
得到的结果在三维空间中如图2-19b所示,如果只看z轴,如图2-19c所示。
可以看到,无论是只考虑非线性变换后在低维空间的效果(图2-19c)还是同时考虑到非线性变换和高维空间的效果(图2-19b),都有无数个超平面可以轻松地将样本分开。在图2-19b和图2-19c中分别标出了z=0.1所在的分界作为例子。
注意到因为图2-19a中的样本中心是在(0.5,0.5),所以在非线性变换时需要对x和y分别减去0.5。这一过程可以看作是为了能让非线性变换起到最好的效果而做的仿射变换,所以当遇到线性不可分的样本,就可以考虑先做仿射变换,然后进行非线性变换。
如果效果不好呢?可以考虑更灵活的非线性变换,更高的维度甚至到无限维,SVM里的核方法就含有这一思想。或者可以考虑再来一次仿射变换+非线性变换,至此神经网络呼之欲出。