广义上讲,满足以下两个操作的特定对象即可称为向量(vector)。
- 两个对象相加,结果类型不变
- 与一个实数相乘,结果类型不变。
向量示例:
- 几何向量
- 多项式
- 音频信号
- 实数元组(tuple)
最后一种元组就是数学中,也是本书研究的对象。向量在机器学习担任重要角色,也是本书的核心概念。
2.1 System of Linear Equations
线性方程组是线性代数的中心内容。线性方程组的解,有且只有三种情况:
- 无解
- 有一个解
- 有无穷个解
线性回归(Linear regression)可以用来解线性方程组。线性方程组的几种写法:
写法一
写法二
写法三
2.2 Matrices
矩阵定义:
矩阵
2.2.1 Matrix Addition and Multiplication
C=A+B,shape相同,cij = aij + bij
C=AB, A 是 m×n,B 是 n×k,则 C 是 m×k:
矩阵相乘
import numpy as np
a = np.arange(6).reshape(2, 3)
b = np.array([3,4,5,6,7,8]).reshape(2, 3)
print('a\n', a)
print('b\n', b)
print('sum\n', a+b )
b = np.array([3,4,5,6,7,8]).reshape(3, 2)
print('b\n', b)
print('dot\n', a.dot(b) )
[OUT]:
a
[[0 1 2]
[3 4 5]]
b
[[3 4 5]
[6 7 8]]
sum
[[ 3 5 7]
[ 9 11 13]]
b
[[3 4]
[5 6]
[7 8]]
dot
[[19 22]
[64 76]]
显然,点乘(dot product)不满足交换律。入下图所示:
点乘
矩阵加法、点乘和单位矩阵,具有以下三个结合律、分配率和单位乘法三个性质:
三个性质
2.2.2 Inverse and Transpose
若方阵A、B 满足 AB = I = BA,则A、B互称为对方的逆矩阵。记为:A = B-1。
不存在逆矩阵的矩阵,称为奇异矩阵(singular,其实就是单身狗的意思)。
解线性方程组是一种求逆矩阵的方法。由矩阵元素组成的特定多项式可以用来判断是否可逆,此式也称为矩阵的判定式(determinant)。例如,2×2方阵的判定式是:a11a22 - a12a21 ≠ 0。
把一个 m×n 的矩阵 A 的行全部转置为列,即得到一个 n×m 的矩阵,称为 A 的转置矩阵,记为 AT。逆矩阵和转置矩阵具有下述性质:
逆与转置的性质
补充说明:
- 当一个方阵按对角线对称时, A=AT,称为对角(Symmetric)矩阵。
- 若一个方阵可逆,则它的转置也可逆,且存在等式:(A-1)T=(AT)-1,记为 A-T。
- 两个相同形状的对角矩阵的和(sum)通常还是对角矩阵,但他们的乘积(product)通常不再是对角矩阵。
2.2.3 Multiplication by a scalar
标量乘法律
2.3 Solving Systems of Linear Equations
线性方程组可以写成通式 Ax=b 。
2.3.1 Particular and General Solution
若通式中的矩阵 A 前 a 列(a<=n)是单位矩阵,求解这类特殊方程组可分为三步:
- 寻找特解。只考虑前 a 个xi,其余 xi (i>a)皆取0。
- 寻找所有 Ax=0 的解。将 A 中其后的每一列表示成前 a 列之和,即得此列之解。显然,此解乘以任意实数 λ 依然满足 Ax=0,是为通解。
- 将上述两步所得之特解和所有通解相加,即为 Ax = b 的通解。
通过高斯消元法(Gaussian elemination),任意线性方程组都可以转换为上述特殊情况,其关键在于初等变换。