深度学习基础:线性代数本质3——矩阵与线性变换
深度学习基础:线性代数本质3——矩阵与线性变换
在线性代数的学习中,矩阵是一个核心概念。但你是否真正理解矩阵的本质?本文将从线性变换的角度,深入浅出地解释矩阵与线性变换的关系,帮助你建立更直观的理解。
1. 线性变换
变换本质上就是函数。例如,你输入一个向量,经过某个变换(即函数)的作用之后,输出另一个向量。
既然,变换本质上就是函数,那为啥还要多搞出这样一个术语?
其实,“变换”这个词暗示了我们能够以某种方式可视化这一输入—-输出关系。它暗示我们要从向量运动的角度去理解。即,变换让向量从一个地方(对应输入向量),运动到了另一个地方(对应输出向量)。
线性代数限制在一种特殊类型的变换上,称为“线性变换”,这种变换更容易理解。直观的说,如果变换具有以下两条性质,我们便可以称他说线性的:
- 直线在变换后仍然为直线,不能有所弯曲
- 原点必须保持固定
非线性变换:直线弯曲了
仿射变换:原点发生变化
线性变换:保持网格平行且等距分布的变换
2. 使用数值来描述线性变换
如何实现你给计算机一个向量坐标,它返回给你变换后的坐标?
答案是你只需要记住两个基向量 i帽 和 j帽 变换后的位置
换句话说,
向量v 是 i帽 与 j帽 的一个特定线性组合,那么变换后的 向量v 也是变换后的 i帽 和 j帽 的线性组合,这意味着你可以通过变换后的 i帽 和 j帽 推出变换后的 向量v
小结:
- 只要记录了变换后的i帽和j帽,我们就可以推断出任意向量在变换后的位置
- 一个二维线性变换仅由四个数字完全确定(变换后i帽和j帽的两个坐标)
3. 矩阵
通常我们把上面的坐标包装在 2x2 的格子中,称它为 2x2 矩阵
你可以把它的列理解为两个特殊的向量,即变换后的 i帽 和 j帽
如果你有一个描述线性变换的 2x2矩阵,以及一个给定向量,想了解线性变换对这两个向量的作用,你只需要 取出向量坐标,分别于矩阵的特定列相乘,然后相加即可(这与缩放基向量在在相加的思想一致)
把矩阵列看作是变换后的基向量,把矩阵乘法看作它们的线性组合
4. 使用矩阵来线性线性变换
① 旋转变换
例如将整个空间逆时针旋转90度,那么i帽便落在坐标(0,1)上,j帽落在坐标(-1,0)上
如果想计算出任意向量在逆时针旋转90度后的位置,只需要把他和上面矩阵相乘即可
② 剪切变换
在这个变换里i帽保持不变,使用矩阵第一列为(1,0),j帽移动到了坐标(1,1)上,所以矩阵第二列为(1,1)
PS:如果变换后的i帽和变换后的j帽是线性相关的,意味着一个向量是另一个向量的倍数,那么这个线性变换,将各二维空间挤压到一个二维它们所在的一条直线上(也就是两个相关向量所张成的一维空间)
在之后每当你看到一个矩阵时,你都可以把他解读为:对空间的一种特定变换