作为课程的学习,顺便自己也学习一下机器学习的基础和相关的数学基础,巩固下基础吧。

基础一定是线性代数。–先线性代数进行学习吧。课程为 MIT 18.06

# 线性代数

# 第一讲:方程组的几何解释

我们从求解线性方程组来开始这门课,从一个普通的例子讲起:方程组有 2 个未知数,一共有 2 个方程,分别来看方程组的 “行图像” 和 “列图像”。

有方程组{2xy=0x+2y=3\begin{cases}2x&-y&=0\\-x&+2y&=3\end{cases},写作矩阵形式有[2112][xy]=[03]\begin{bmatrix}2&-1\\-1&2\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}0\\3\end{bmatrix},通常我们把第一个矩阵称为系数矩阵AA,将第二个矩阵称为向量xx,将第三个矩阵称为向量bb,于是线性方程组可以表示为Ax=bAx=b
我们来看行图像,即直角坐标系中的图像:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns

x = [-2, 2, -2, 2]
y = [-4, 4, 0.5, 2.5]

fig = plt.figure()
plt.axhline(y=0, c='black')
plt.axvline(x=0, c='black')

plt.plot(x[:2], y[:2], x[2:], y[2:])

plt.draw()

演示
上图是我们都很熟悉的直角坐标系中两直线相交的情况,接下来我们按列观察方程组
x[21]+y[12]=[03]x\begin{bmatrix}2\\-1\end{bmatrix}+y\begin{bmatrix}-1\\2\end{bmatrix}=\begin{bmatrix}0\\3\end{bmatrix}(我们把第一个向量称作col1col_1,第二个向量称作col2col_2,以表示第一列向量和第二列向量),要使得式子成立,需要第一个向量加上两倍的第二个向量,即1[21]+2[12]=[03]1\begin{bmatrix}2\\-1\end{bmatrix}+2\begin{bmatrix}-1\\2\end{bmatrix}=\begin{bmatrix}0\\3\end{bmatrix}
现在来看列图像,在二维平面上画出上面的列向量:

如图,绿向量col1col_1 与蓝向量(两倍的蓝绿向量col2col_2)合成红向量bb

接着,我们继续观察x[21]+y[12]=[03]x\begin{bmatrix}2\\-1\end{bmatrix}+y\begin{bmatrix}-1\\2\end{bmatrix}=\begin{bmatrix}0\\3\end{bmatrix}col1,col2col_1,col_2 的某种线性组合得到了向量bb,那么col1,col2col_1,col_2 的所有线性组合能够得到什么结果?它们将铺满整个平面。
下面进入三个未知数的方程组:{2xy=0x+2yz=13y+4z=4\begin{cases}2x&-y&&=0\\-x&+2y&-z&=-1\\&-3y&+4z&=4\end{cases},写作矩阵形式A=[210121034], b=[014]A=\begin{bmatrix}2&-1&0\\-1&2&-1\\0&-3&4\end{bmatrix},\ b=\begin{bmatrix}0\\-1\\4\end{bmatrix}
在三维直角坐标系中,每一个方程将确定一个平面,而例子中的三个平面会相交于一点,这个点就是方程组的解。
同样的,将方程组写成列向量的线性组合,观察列图像:x[210]+y[123]+z[014]=[014]x\begin{bmatrix}2\\-1\\0\end{bmatrix}+y\begin{bmatrix}-1\\2\\-3\end{bmatrix}+z\begin{bmatrix}0\\-1\\4\end{bmatrix}=\begin{bmatrix}0\\-1\\4\end{bmatrix}。易知教授特意安排的例子中最后一个列向量恰巧等于等式右边的bb 向量,所以我们需要的线性组合为x=0,y=0,z=1x=0,y=0,z=1。假设我们令b=[113]b=\begin{bmatrix}1\\1\\-3\end{bmatrix},则需要的线性组合为x=1,y=1,z=0x=1,y=1,z=0

# 第二讲:矩阵消元

# 算了,按老师 PPT 上把概念捋一遍

# 线代

# 奇异矩阵

奇异矩阵的判定方法:

  1. 行列式 | A | 是否等于 0,若等于 0,称矩阵 A 为奇异矩阵;

非奇异矩阵的判定方法:

  1. 一个矩阵非奇异当且仅当它的行列式不为零。
  2. 一个矩阵非奇异当且仅当它代表的线性变换是个自同构。
  3. 一个矩阵非奇异当且仅当它的秩为 n。 (R (A)<n 则行列式为 0)
  4. 可逆矩阵就是非奇异矩阵,非奇异矩阵也是可逆矩阵。*
# 正交矩阵

如果: AA ATA^T =E (E 为单位矩阵),则 n 阶实矩阵 A 称为正交矩阵。
其接着可证明 A1A^{-1} = ATA^T

# 黑森矩阵

是向量的二阶偏导数的矩阵。注意该矩阵一定是对称的,因为求解偏导的结果和求偏导的顺序无关。如果黑森矩阵为半正定矩阵(即沿任意方向的二阶偏导数结果大于 0),则表明其一定是正定的。同理如果黑森矩阵为半负定矩阵,则说明函数为凹函数。

# 正定矩阵

正定矩阵的所有特征值都为整数。如果 A 正定,那么有 xTAxx^TAx > 0 对任意非零向量都成立。xTAxx^TAx >= 0 为半正定矩阵。

# 矩阵的秩
  • 秩是图像经过矩阵变换之后的空间维度
    简单来说,秩是任意一个矩阵中最大线性无关向量的个数,最大线性无关向量是指:一个矩阵中,线性无关的向量最多是几个。
    特别注意矩阵的秩 = 行秩 = 列秩。但是,行满秩的矩阵的秩不一定是列满秩的矩阵的秩
# 矩阵的迹

令域 F 上的 N 维方阵 A 的矩阵元为 aija_{ij}∈F,它的迹定义为对角线矩阵元之和。

# 相似性度量

闵可夫斯基距离:

# 最优化方法

# 梯度下降法(梯度法)

重要公式: θi+1=θiηk×f(θ)\theta_{i+1} = \theta_{i} - \eta_{k} \times \nabla f(\theta)
最速降 ηk=argminf(θkη×f(θ)\eta_k = argmin f(\theta_{k} - \eta \times \nabla f(\theta)
这里的 θ\theta 是自变量的值。θi+1θi=Δθ\theta_{i+1} - \theta_{i} = \Delta\theta

# 牛顿法 和拟牛顿法

牛顿法和梯度下降法有些相同点

  • 梯度下降法为求一阶导数,即参数的梯度,根据梯度的方向乘以一个 lr 即学习率来对参数进行改变。而牛顿法则是对函数在初始点进行二阶泰勒展开。之后对 Δθ\Delta \theta 进行求导,以求得最优增量。这时将等式变换可以得到 最优增量为 Δθ=(Hf(θ))1\Delta\theta = - \nabla(H_{f}(\theta))^{-1} 这里的 H 即黑森矩阵,为向量二阶求导后得出的偏导数矩阵。但是这里有几个问题,黑森矩阵可能是不可逆的,故后面引出了拟牛顿法来通过求解一个相似的黑森矩阵来解决这个问题。
    故下面介绍下拟牛顿法
  • 其实不知道拟牛顿法会出一些什么题。课本上有一个证明秩 1 修正的对偶性。(暂时没太看懂)

# 约束优化

# 拉格朗日乘数法

通过拉格朗日乘数法可以将约束问题转化为无约束问题进行求解。
拉格朗日乘法形式:设函数 u=f(x,y,z,t)u = f(x,y,z,t), 约束条件为φ(x,y,z,t)=0,ψ(x,y,z,t)=0\varphi(x,y,z,t)=0, \psi(x,y,z,t)=0 , 可以进行构造拉格朗日函数。
L(x,y,z,t,λ1,λ2)=f(x,y,z,t)+λ1φ(x,y,z,t)+λ2ψ(x,y,z,t)L(x,y,z,t,\lambda_1,\lambda_2) = f(x,y,z,t) + \lambda_1\varphi(x,y,z,t)+\lambda_2\psi(x,y,z,t) 分别对上述各个变量求导列方程即可得到可能的极值点坐标。