当前位置:   article > 正文

机器学习中的线性代数基础_一个张量对应的线性空间是机器

一个张量对应的线性空间是机器

机器学习基础的线性代数

在机器学习中,大多数数据通常表示为向量、矩阵或张量,因此机器学习在很大程度上依赖于线性代数。

先了解下向量、矩阵和张量:

  • 向量是一维数组,具有大小和方向
  • 矩阵是二维数组,具有固定的行和列,一般用方括号[ ]表示
  • 张量是向量和矩阵的推广,比如一维张量是一个向量,二维张量是一个矩阵,RGB图像是三维张量,当然还可以扩展到四维张量以及更高维等
    在这里插入图片描述
    描述矩阵的一些基本术语有:(如下图所示)
    方阵:nxn,即行数等于列数
    对角矩阵:除了对角线外其余元素都为0
    上三角阵:对角线以下的所有元素都为0的方阵
    下三角阵:对角线以上的所有元素都为0的方阵

在这里插入图片描述

矩阵乘法和空间变换

大一的时候都学过线性代数,对于矩阵乘法运算都会按照一定的规则去相乘,为啥会按照这样的规则去相乘?并没有深入的思考,其实矩阵乘法就是空间变换,下面看几个例子。

空间变换类型有很多,但是在机器学习领域所关注的空间变换是最基本的缩放和旋转。下面简单介绍。

空间缩放变换:

现有一个矩阵A
A = ( 2 0 0 1 ) A=

(2001)
A=(2001)
向量α
α = ( 1 1 ) \alpha=
(11)
α=(11)

则有
A α = ( 2 0 0 1 ) ( 1 1 ) = ( 2 2 ) = β A\alpha =
(2001)
(11)
=
(22)
=\beta
Aα=(2001)(11)=(22)=β

可以看成如下空间变换:矩阵A在x的正方向和y的正方向上都做了一个两倍的拉伸, 即在A的基础上,向量α变换到了向量β,如下图所示。
在这里插入图片描述

因此,可以拓展为:
A α = ( x 0 0 y ) ( a b ) = ( a x b y ) = β A\alpha =

(x00y)
(ab)
=
(axby)
=\beta Aα=(x00y)(ab)=(axby)=β
可以看成如下空间变换:矩阵A在x的正方向和y的正方向上分别拉伸(或缩放)了x倍和y倍, 即在A的基础上,向量α变换到了向量β。

空间旋转变换:

现有矩阵A
A = ( 0 − 1 1 0 ) A=

(0110)
A=(0110)

向量α
α = ( 1 1 ) \alpha=

(11)
α=(11)
则有
A α = ( 0 − 1 1 0 ) ( 1 1 ) = ( − 1 1 ) A\alpha =
(0110)
(11)
=
(11)
Aα=(0110)(11)=(11)

可以看成如下空间变换:在矩阵A的基础上,向量α逆时针旋转了90°, 如下图所示
在这里插入图片描述
因此,可以拓展为:

A α = ( cos ⁡ θ − sin ⁡ θ sin ⁡ θ cos ⁡ θ ) ( a b ) = ( a cos ⁡ θ − b sin ⁡ θ a sin ⁡ θ + b cos ⁡ θ ) A\alpha =

(cosθsinθsinθcosθ)
(ab)
=
(acosθbsinθasinθ+bcosθ)
Aα=(cosθsinθsinθcosθ)(ab)=(acosθbsinθasinθ+bcosθ)
可以看成如下空间变换:在矩阵A的基础上,向量α逆时针旋转了θ。

行列式的几何意义

行列式的几何意义是图形变化前后的一个放大率。
一般研究的是二维和三维。对于二维来说,就是面积的放大率,对于三维来说,就是体积的放大率。

以下以二维举例说明:

空间缩放变换:

下图中,
∣ A ∣ = 18 \left | A \right | =18 A=18
即面积放大了18倍。

在这里插入图片描述

C = ( − 2 0 0 1 ) C=

(2001)
C=(2001)
∣ C ∣ = − 2 \left | C \right | =-2 C=2
这里面积放大了两倍,只是图形进行了翻折

空间剪切变换:

如下图所示,在剪切的情况下,单位正方形被映射成单位平行四边形。 这是因为平行四边形的面积是“长 x 高”。 因此,在这种情况下,面积将保持不变,但正方形被拉伸。
在这里插入图片描述

空间旋转变换:
B = ( cos ⁡ θ − sin ⁡ θ sin ⁡ θ cos ⁡ θ ) B=

(cosθsinθsinθcosθ)
B=(cosθsinθsinθcosθ)
∣ B ∣ = 1 \left | B \right | =1 B=1
即对于空间旋转变换,面积不变

有一种特殊的行列式,行列式为0,比如
D = ( 1 1 1 1 ) D=

(1111)
D=(1111)
放大率为0,即图形变换后面积为0,说明二维图形变成了一维直线,实现了降维。

之前学到过,对于行列式为0的话,矩阵是可逆的;但是不为0的话,矩阵是不可逆的,从几何意义上就能得到解释,因为拉伸、旋转变换后,图形是可以变换回去的,但是降维后,图形是变换不回去的。

对本小节进行summary一下:

对于2x2的矩阵A,
①当|A|>1,表示经过A变换后,面积放大
②当0<|A|<1且|A|≠0,表示经过A变换后,面积缩小
③当|A|=0,表示经过A变换后,表示整个平面被压缩到一条直线甚至一个点,实现了降维
④当|A|<0,这里的负数表示空间翻转,这里还可以细化讨论行列式的取值情况

对于3x3矩阵A,
①|A|≠0,表示经过A变换后,体积的缩放
②|A|=0,表示体积被压缩成一个面,甚至是一条线

线性相关和线性无关

下图所示,两个向量都在同一个方向上,即还是一维直线,我们删除其中一个向量,也不会影响这两个向量的表示,因此可以认为这里有多余的向量,即线性相关。
在这里插入图片描述

下图中,两个向量不在一条线上,即张成了一个二维平面,因此这两个向量是线性无关的。
在这里插入图片描述
summary:
线性相关、无关的几何意义:
因为向量是有方向和大小的,两个向量是否可以抵消掉,如果能抵消掉,则认为是线性相关,不能抵消掉,则认为是无关。

物理意义:
因为力是有大小和方向的,可以将向量看成是力,对力进行合成。

特征值和特征向量的意义

A α = λ α A\alpha = \lambda \alpha Aα=λα
以上,\alpha 为特征向量,\lambda 为特征值。
从公式可以看出,对于某个矩阵A,我们可以找到一个向量\alpha,当它与矩阵相乘时,等于这个向量乘以一个系数\lambda,即缩放的向量\alpha。

那么特征值和特征向量的意义是啥?
举个例子:
现有一个矩阵A:
A = ( 2 0 0 3 ) A=

(2003)
A=(2003)
分别将矩阵A施加在不同的向量上:
1.
( 2 0 0 3 ) ( 0 1 ) = 3 ( 0 1 )
(2003)
(01)
=3
(01)
(2003)(01)=3(01)

未改变方向
2.
( 2 0 0 3 ) ( 1 1 ) = ( 2 3 )
(2003)
(11)
=
(23)
(2003)(11)=(23)

改变了方向
3.
( 2 0 0 3 ) ( 1 1 / 2 ) = ( 2 3 / 2 )
(2003)
(11/2)
=
(23/2)
(2003)(11/2)=(23/2)

改变了方向
4.
( 2 0 0 3 ) ( 1 0 ) = ( 2 0 ) = 2 ( 1 0 )
(2003)
(10)
=
(20)
=2
(10)
(2003)(10)=(20)=2(10)

未改变方向

前面说过,矩阵本质上就是一个线性变换,“特征向量”和“特征值”反应在特征二字上,特征向量反应的是矩阵A本身固有的一些特征,当把矩阵作用在不同的向量上时,会被矩阵A变换得面目全非(比如第二个和第三个例子,而且大部分向量会这样),但是存在一些向量(比如第一个和第四个例子),被矩阵A变换后仍然保持原来的样子,于是这些向量就是矩阵A的核心代表了。

summary:
\alpha:特征向量,即在空间变换前后没有改变方向的向量,指示的是拉伸方向
\lambda:特征值,即拉伸的倍率

矩阵和线性变换

所谓变换,就是函数中的一种
“变换”更强调一个空间中的动作,比如拉伸、压缩、旋转等
那么,线性变换性质为:1.任意直线在变换后依然是直线,2.原点的位置在变换后依然保持不变。

对于一个二维平面来说,输入的是向量,线性变换后,输出的也是向量,那么如何用数学去描述呢?
( x i n y i n ) → ( x o u t y o u t )

(xinyin)
\rightarrow
(xoutyout)
(xinyin)(xoutyout)

举个例子:
现有一组基向量
i ⃗ = ( 1 0 ) \vec{i}=

(10)
i =(10)

j ⃗ = ( 0 1 ) \vec{j}=

(01)
j =(01)
则有

( − 1 2 ) = ( − 1 0 ) i ⃗ + ( 0 2 ) j ⃗

(12)
=
(10)
\vec{i}+
(02)
\vec{j} (12)=(10)i +(02)j
即:
v ⃗ = − 1 i ⃗ + 2 j ⃗ \vec{v}=-1\vec{i}+2\vec{j} v =1i +2j
施加以下线性变换后,有:
变换后的第一个基向量:
i ⃗ ′ = t r a n s f o r m e d i ⃗ = ( 1 − 2 ) {\vec{i}}'=transformed \vec{i}=
(12)
i =transformedi =(12)

变换后的第二个基向量:
j ⃗ ′ = t r a n s f o r m e d j ⃗ = ( 3 0 ) {\vec{j}}'=transformed \vec{j}=
(30)
j =transformedj =(30)

v ⃗ ′ = t r a n s f o r m e d v ⃗ = − 1 ( 1 − 2 ) + 2 ( 3 0 ) = ( 5 2 ) {\vec{v}}'=transformed \vec{v}=-1
(12)
+2
(30)
=
(52)
v =transformedv =1(12)+2(30)=(52)

因此,线性变换后输出的向量为
( x ′ y ′ ) = x ( 1 − 2 ) + y ( 3 0 ) = ( x + 3 y − 2 x + 0 y ) = ( 1 3 − 2 0 ) ( x y )
(xy)
=x
(12)
+y
(30)
=
(x+3y2x+0y)
=
(1320)
(xy)
(xy)=x(12)+y(30)=(x+3y2x+0y)=(1230)(xy)

summary:
对向量施加线性变换时,实际上是将向量左乘一个矩阵,即

( a b c d ) ( x y ) = x ( a c ) + y ( b d ) = ( a x + b y c x + d y )
(abcd)
(xy)
=x
(ac)
+y
(bd)
=
(ax+bycx+dy)
(acbd)(xy)=x(ac)+y(bd)=(ax+bycx+dy)

矩阵和矩阵相乘

即复合变换,对向量进行施加两次相继的变换,即向量左乘一个矩阵再左乘一个矩阵。

逆变换、列空间、秩

对于一个3x3线性方程组:
{ 2 x + 5 y + 3 z = − 3 4 x + 0 y + 8 z = 0 1 x + 3 y + 0 z = 2 \left\{

2x+5y+3z=34x+0y+8z=01x+3y+0z=2
\right. 2x+5y+3z=34x+0y+8z=01x+3y+0z=2
写成矩阵形式:
( 2 5 3 4 0 8 1 3 0 ) ( x y z ) = ( − 3 0 2 )
(253408130)
(xyz)
=
(302)
241503380xyz=302


A x ⃗ = v ⃗ A\vec{x}=\vec{v} Ax =v
其中,A为系数矩阵,就是一种线性变换,即向量x经过A变换,变成向量v。
同理,2x2线性方程组也可以用矩阵表示。
那么,这个变换呆地是将三维空间(二维平面)挤压成平面或线或点(线或点)等低维空间,还是保持初始状态呢?这就主要看矩阵的行列式了(之前提到过)。
对于二维平面来说:
1.|A |=0,降维了,不存在A的逆变换,即不能将一条直线解压缩回二维平面。此时要么无解(即没有一个输入向量能够变换到我们给定的输出向量)要么无数解(有无数个输入向量能得到给定输出)。
2.|A |不等于0,有且仅存在一个向量x,使得方程组成立。

summary:
1.逆变换:只有行列式不为0时,才有逆变换。
2.秩:变换后空间的维数
3.列空间:不管是一条直线、一个平面还是三维空间,所有可能的变换结果的集合,统称为列空间。

应用:矩阵和图像

首先了解下什么是数字图像? 如下图所示,它只是由一堆像素组成,每个像素都是一种颜色。 像素是图片的一个小元素。 每个像素代表一种颜色,它是三种颜色通道的组合:红色、绿色和蓝色。 通过这些颜色的一百万种组合,我们可以表示任何颜色和任何图像。
在这里插入图片描述
在计算机中,图像通常存储为矩阵。 为了表示单通道强度,这里使用 0-255 之间的值。 因此,对于一个彩色图像,用三个 8 位来表示,对于灰度图像,使用 0-255 之间的值来表示灰度强度,其中0表示黑色,255表示白色,只需要 8 位或 1 个字节的数据进行存储。

下面举一个平滑图像的例子。
这里制作一个3x3的矩阵,即过滤器,将这个过滤器在图像矩阵上从左到右、从上到下的移动,并将过滤器矩阵中每一个元素与对应的图像矩阵元素一一相乘,并相加,这称为卷积操作。最终对图像进行了平滑处理。
在这里插入图片描述

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号