机器学习和深度学习之数学基础-线性代数 第四节 线性变换及其与矩阵的关系

本文深入探讨了线性变换在机器学习中的核心地位,解释了线性变换如何用矩阵来描述,以及矩阵相乘如何表示线性变换的复合。通过实例展示了如何通过矩阵操作实现向量的旋转和剪切等变换,并讨论了相似矩阵的概念,强调了不同基下的线性变换表示。
摘要由CSDN通过智能技术生成

本文为原创文章,欢迎转载,但请务必注明出处。

上文介绍从运动的角度直观的理解向量,这一节主要介绍线性变换及其与矩阵的关系。

线性代数的核心之一是线性变换,英文是linear transformation。变换(transformation)可以理解为一个函数(function) f(x) f ( x ) ,对于线性代数来说,函数的输入就是一个向量,而输出则是变换后的向量。一种理解这种”向量的函数“的方法是使用运动,即用”运动“的思维来思考”变换“。当输入是一个向量,经过变换后的输出是另一向量,相当于这个输入向量移动到了对应的输出向量位置。从系统整体上来考虑,变换可以看成将每一个输入向量都移动到了对应输出向量的位置。比如在平面(二维空间)上,每一点(即每一个向量)经过变换都被移动到了对应的其他位置。

变换包括线性变换和非线性变换,这些变换可以对空间里的对象(即向量)进行升降维,缩放,旋转,平移和扭曲。比如,在神经网络中常见的是输入向量加权后再加上偏移量,最后放到激活函数里,即

y=σ(Wx+b) y = σ ( W ⋅ x + b )

其中, W W 是神经网络中某一层的权重矩阵, b b 是该层上每个神经元的偏移向量, σ() σ ( ⋅ ) 是激活函数。于是, Wx W ⋅ x 可以看成是使用权重矩阵 W W 对输入向量 x x 进行里变换,变换的结果是对输入向量进行了降维,缩放或旋转(即线性变换);而加上偏移向量 b b 就是对线性变换结果 Wx W ⋅ x 进行了平移 (其实 Wx+b W ⋅ x + b 就是仿射变换(affine tranformation));而激活函数 σ() σ ( ⋅ ) 的运用就是对结果进行扭曲、挤压和变形(非线性变换),很有意思吧。
图一,变换可以对空间里向量进行升降维,缩放,旋转,平移和扭曲,图片来源[2]

图一,变换可以对空间里向量进行升降维,缩放,旋转,平移和扭曲,图片来源[2]

回过头来,上面说了变换既是函数又是运动,这个怎么理解呢?其实我们的高等数学因为引入极限的概念研究的就是”运动的数学“ [1]。既然是运动,那么就一定有方向和大小,这就是为什么向量可以求导,为什么用梯度下降算法求最小值时需要沿着负梯度方向更新,这些在后面会介绍。

1、线性变换

在这里我们只关注线性变换,直观上线性变换需要满足两个条件[4]:

  1. 直线在变换后仍然保持为直线,不能有所弯曲;
  2. 原点必须保持固定,即线性变换前后原点的位置保持不变。

对于第1条,比如在直角坐标系中虽然变换后的坐标线是直线,原点也没变化,但是坐标上的刻度间隔距离发生变化,导致原坐标系里的对角线在变换后发生了弯曲,这样的变换也不是线性变换。也就是说,线性变换是”保持网格线平行且同一个方向上(如x-轴方向或y-轴方向)等距分布“的变换[4],如图二。如果1满足,2不满足,则是仿射变换 affine transform,在计算机图形学中常用。

图二,线性变换:1、保持网格线平行且等距分布;2,原点固定不动。图片来源[4]

图二,线性变换:1、保持网格线平行且等距分布;2,原点固定不动。图片来源[4]

好了,到这里在直观上已经对线性变换有了直观的了解:线性变换就是空间中的向量从一个位置运动到另一个位置。那么如何来描述这个运动呢?

2、用矩阵描述线性变换

线性变换是空间中向量的线性运动(沿着直线移动),那么这种向量的直线移动该如何度量呢,怎样从数学上来描述这种移动?前面我们说了要从系统整体上来考虑,变换可以看成将每一个输入向量都移动到了对应输出向量的位置。注意,这里说的是空间中的每一个输入向量的移动都考虑进来。而第一节中我们介绍了空间是基向量的张成,也就是说空间中的每一个输入向量都可以用基向量线性表示。所以,我们只需要对空间中的基向量进行相应的线性变换,然后变换后的向量就可以用这个变换后的基向量进行线性组合

回忆在第一节时候我们介绍了向量的线性组合如下:

w=α1v1+...+αnvn=i=1nαivi w = α 1 v 1 + . . . + α n v n = ∑ i = 1 n α i v i

由于 线性组合可以用矩阵与向量的乘积表示,于是假设矩阵 A=[v1    vn] A = [ v 1     …     v n ] , 即 矩阵 A A 的列是由向量 v1,,vn v 1 , … , v n 组成,那么上式可以表示成:
w=Aα w = A ⋅ α

其中,
α=α1αn α = [ α 1 ⋮ α n ]

我们回到线性变换,我们刚刚说了”变换后的向量可以用这个变换后的基向量进行线性组合“,那么就是说我们可以用变换后的基向量来作为矩阵 A A 的列,这个时候矩阵 A A 乘以任意输入向量就可以得到变换后的输出向量(比如这里的向量 α α 就可以看成是一个输入向量)。到这里,我们将矩阵和线性变换联系起来了,简单总结就是:

  • 线性变换就是在空间移动输入向量
  • 由于任何向量都可以是空间基向量的线性组合,所以向量的线性变换可以看成两步:首先对基向量进行变换;然后,变换后的基向量进行线性组合得到输出向量。
  • 如果一个矩阵 A A 的列由变换后的基向量组成,那么矩阵 A A 就描述这个线性变换。不同的线性变换规则会得到不同的矩阵,而这些矩阵就是相似矩阵,后面会介绍。

还有一个地方值得说一下,第三节的时候我们在解释张成的时候,我们提到过”缩放基向量再相加“的思想,也就是首先固定基向量,只改变每个基向量的长度进行缩放,然后相加后就可以张成整个空间。而线性变换可以看成是一个相反的运算过程:线性变换首先固定了缩放大小(也就是上面说的输入向量 α α ),根据不同的线性变换规则得到变换后的基向量(即基向量变化了,也就是改变基向量的长度和方向),从而得到变换后向输出向量

在数学计算上,变换后的基向量组成了矩阵 A A 的列,他乘以输入向量就得到了输出向量。 我们可以把矩阵 A A 左乘向量 x x (即 Ax A x )就看成是向量 x x 的一个函数 f(x) f ( x )

说到这里还是比较抽象,举例吧(非常重要,下面的例子基于[4])。

首先,平面上直角坐标系的两个标准基向量分别为 i

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值