ML中的数学
这里把对应的基础概念进行了总结,后面会一些概念进行补充,后面会对这些概念进行工程上的使用,后面会用pytorch进行实现。
线性代数
? 线性代数面对的是连续数学而不是离散数学,在机器学习中占有很大的比重,线性代数的数学概念比大学所接触的要多很多概念,大学那些线性代数是不足以去满足机器学习要求的。
标量,矩阵,张量
这里只是写一些基础概念,对于大学甚至考研期间经常用的一些的基础知识就不进行赘述。
标量
? 标量是一个单独的数字,不是1*1的矩阵
向量
- 向量:是n*1,或者1×n,如果我们把向量看成空间上的点,那么每个数字就是对应坐标轴的坐标
x
=
[
x
1
x
2
.
x
i
]
x = \begin{bmatrix}x_1\\x_2\\.\\x_i \end{bmatrix}
x=?????x1?x2?.xi???????
- 向量的下标表示指引,我们通常会把向量进行重组,或者根据序列号进行索引, 代码中我们也会用
x
?
1
x_{-1}
x?1?来表示最后一位, 用下面表示除了集合S以外所有的向量
x
?
S
x_{-S}
x?S?
矩阵,张量
-
一个n*n的数组,每个元素由两个索引进行确定,标记为大写字母,其中有一个矩阵的概念,转置进行镜像翻转 -
通常我们把超过二维的称之为张量
A
i
,
j
,
k
A_{i,j,k}
Ai,j,k? -
广播🚡 把向量b和A的每一行相加
C
i
,
j
=
A
i
,
j
+
b
j
C_{i,j} = A_{i,j}+b_{j}
Ci,j?=Ai,j?+bj?
线性相关与生成子空间-用于矩阵间的互相表示
方程组的解
如果A的逆矩阵存在,那么对于任意b,Ax=b恰好存在一个解
对于方程组而言b却不一定完全有解或者有多个解
如果x,y都是方程组的解,那么
z
=
α
x
+
(
1
?
α
)
y
z = \alpha x+(1-\alpha)y
z = αx+(1?α)y 一定是方程组的解,A分解为向量的线性组合,就是生成子空间,所以这里的主要就是解方程
范数-用于描述矩阵(向量)的大小xuexi
? 我们用范数去衡量一个向量的大小,而不是n维时候的行列式,对于
L
P
L^P
LP
∣
∣
x
∣
∣
p
=
(
∑
i
n
∣
x
i
∣
p
)
1
p
||x||_p = (\sum_i^n|x_i|^p)^{1\over p}
∣∣x∣∣p?=(i∑n?∣xi?∣p)p1? ?
? 然后我们就可以用一些数学的方法对其进行使用,比如一些不等式运算,满足线性,其中p=2的时候,称之为欧几里得范数。
p
=
∞
p=\infty
p=∞时候,称xiangliang之为最大范数。 深度学习中我们也会用到Frobenius范数来衡量矩阵的大小
∣
∣
x
∣
∣
F
=
∑
i
,
j
n
A
i
,
j
2
||x||_{F} = \sqrt {\sum_{i,j}^nA_{i,j}^2}
∣∣x∣∣F?=i,j∑n?Ai,j2?
?
特征分解
也就是矩阵里面的特征值运算,分解为几个可以表示矩阵的量,其中A的特征向量这么运算
A
v
=
λ
v
Av = \lambda v
Av=λv 我们把
λ
\lambda
λ称之为特征值(标量),v为特征向量。
奇异值分解
我们还有另外一种分解向量的办法,分为奇异向量和奇异值(奇异种子233333),也会得到和特征分解一样的信息。然而,奇异值分解更广泛。
? 这个是特征值分解,其中V是特征向量构成的矩阵,r是特征值构成的向量矩阵
A
=
V
d
i
a
g
(
λ
)
V
?
1
A= Vdiag(\lambda)V^{-1}
A=Vdiag(λ)V?1 ? 对于奇异分解:其中U和V都是正交矩阵,D为对角矩阵
A
=
U
D
V
T
A = UDV^T
A=UDVT
- 左奇异矩阵:U的列向量,是
A
A
T
AA^T
AAT的特征向量
- 右奇异矩阵:V的列向量,是
A
T
A
A^TA
ATA的特征向量
Moore-Penrose 伪逆
对于非方矩阵A,我们就无法计算
A
?
1
A^{-1}
A?1,也无法解一些方程
这里定义伪逆的概念
A
+
=
l
i
m
α
?
0
(
A
T
A
+
α
I
)
?
1
A
T
A^+ = lim_{\alpha-0} (A^TA+\alpha I)^{-1}A^T
A+=limα?0?(ATA+αI)?1AT 由于计算的时候比较困难,引入极限,所以计算时候基本使用如下的计算方式,这里的参数对应奇异分解的矩阵
A
+
=
V
D
+
U
T
A^+ = VD^+U^T
A+=VD+UT
迹
我们把对角线之和称之为逆
T
r
(
A
)
=
∑
i
A
i
,
i
Tr(A) = \sum_i A_{i,i}
Tr(A)=i∑?Ai,i? 迹运算也有很多用,比如用于Frobenius范数:
∣
∣
A
∣
∣
F
=
T
r
(
A
T
A
)
||A||_F = \sqrt {Tr(A^TA)}
∣∣A∣∣F?=Tr(ATA)
?
这里就是全部的线性代数的基础概念
|