机器学习1-2章
简介
什么是机器学习

为什么要学机器学习

第一章 数学基础
1.1 微积分
1.1.1 导数
1.1.1.1 概念
导数是微积分中的一个概念。函数在某一点的导数是指这个函数在这一点附近的变化率(即函数在这一点的切线斜率)。导数的本质是通过极限的概念对函数进行局部的线性逼近。

当函数
f
f
f的自变量在一点
x
0
x_0
x0上产生一个增量
h
h
h时,函数输出值的增量
∆
y
∆y
∆y与自变量增量
∆
x
∆x
∆x的比值在
∆
x
∆x
∆x趋于0时的极限如果存在,即为
f
f
f在
x
0
x_0
x0处的导数,记作
f
′
(
x
0
)
f'(x_0)
f′(x0)、
d
f
d
x
(
x
0
)
\frac{df}{dx}(x_0)
dxdf(x0)或
d
f
d
x
∣
x
=
x
0
\frac{df}{dx}|_{x=x_0}
dxdf∣x=x0。
f
′
(
x
0
)
=
lim
Δ
x
→
0
f
(
x
0
+
Δ
x
)
−
f
(
x
0
)
Δ
x
f'(x_0) = \lim\limits_{\Delta x \to 0} \frac{f(x_0 + \Delta x) - f(x_0)}{\Delta x}
f′(x0)=Δx→0limΔxf(x0+Δx)−f(x0)
1.1.1.2 基本函数的导数
| 说明 | 公式 | 例子 |
|---|---|---|
| 常数的导数 | ( C ) ′ = 0 (C)'=0 (C)′=0 | ( 3 ) ′ = 0 (3)'=0 (3)′=0 |
| 幂函数的导数 | ( x a ) ′ = a x a − 1 (x^a)'=ax^{a-1} (xa)′=axa−1 | ( x 3 ) ′ = 3 x 2 (x^3)'=3x^2 (x3)′=3x2 |
| 指数函数的导数 | ( a x ) ′ = a x l n a (a^x)'=a^xlna (ax)′=axlna | ( 3 x ) ′ = 3 x l n 3 (3^x)'=3^xln3 (3x)′=3xln3 |
| 指数函数的导数 | ( e x ) ′ = e x (e^x)'=e^x (ex)′=ex | - |
| 对数函数的导数 | ( l o g a x ) ′ = 1 x l n a (log_ax)'=\frac{1}{xlna} (logax)′=xlna1 | ( l n 3 x ) ′ = 1 x l n 3 (ln_3x)'=\frac{1}{xln3} (ln3x)′=xln31 |
| 对数函数的导数 | ( l n x ) ′ = 1 x (lnx)'=\frac{1}{x} (lnx)′=x1 | - |
| 三角函数的导数 | ( s i n x ) ′ = c o s x (sin x)'=cosx (sinx)′=cosx | - |
| 三角函数的导数 | ( c o s x ) ′ = − s i n x (cosx)'=-sinx (cosx)′=−sinx | - |
| 三角函数的导数 | ( t a n x ) ′ = s e c 2 x = 1 c o s 2 x (tanx)'=sec^2x=\frac{1}{cos^2x} (tanx)′=sec2x=cos2x1 | - |
| 三角函数的导数 | ( c o t x ) ′ = − c s c 2 x = − 1 s i n 2 x (cotx)'=-csc^2x=\frac{-1}{sin^2x} (cotx)′=−csc2x=sin2x−1 | - |
1.1.1.3 导数的求导法则
| 说明 | 公式 |
|---|---|
| 两函数之和求导 | ( f + g ) ′ = f ′ + g ′ (f+g)'=f'+g' (f+g)′=f′+g′ |
| 两函数之积求导 | ( f g ) ′ = f ′ g + f g ′ (fg)'=f'g+fg' (fg)′=f′g+fg′ |
| 两函数之商求导 | ( f g ) ′ = f ′ g − f g ′ g 2 (\frac{f}{g})'=\frac{f'g-fg'}{g^2} (gf)′=g2f′g−fg′ |
| 复合函数的导数 | 若 f ( x ) = h [ g ( x ) ] f(x)=h[g(x)] f(x)=h[g(x)],则 f ′ ( x ) = h ′ [ g ( x ) ] ⋅ g ′ ( x ) f'(x)=h'[g(x)]·g'(x) f′(x)=h′[g(x)]⋅g′(x) |
例如:求函数 f ( x ) = x 4 + s i n ( x 2 ) − l n ( x ) e x + 7 f(x)=x^4+sin(x^2)-ln(x)e^x+7 f(x)=x4+sin(x2)−ln(x)ex+7在 x = 3 x=3 x=3处的导数。
f ′ ( x ) = 4 x 4 − 1 + c o s ( x 2 ) ⋅ 2 x − ( e x x + l n ( x ) e x ) + 0 f'(x)=4x^{4-1}+cos(x^2)·2x-(\frac{e^x}{x}+ln(x)e^x)+0 f′(x)=4x4−1+cos(x2)⋅2x−(xex+ln(x)ex)+0
= 4 x 3 + 2 x c o s ( x 2 ) − e x x − l n ( x ) e x =4x^3+2xcos(x^2)-\frac{e^x}{x}-ln(x)e^x =4x3+2xcos(x2)−xex−ln(x)ex
f ′ ( 3 ) = 108 + 6 c o s ( 9 ) − e 3 3 − l n ( 3 ) e 3 f'(3)=108+6cos(9)-\frac{e^3}{3}-ln(3)e^3 f′(3)=108+6cos(9)−3e3−ln(3)e3
1.1.1.4 利用导数求极限
导数等于零的点称为函数的驻点,(或极值可疑点),在这类点上函数可能会取得极大值或极小值。进一步判断则需要导数在附近的符号。

例如,
f
(
x
)
=
x
3
f(x)=x^3
f(x)=x3在
x
=
0
x=0
x=0处的导数为0,但并不会取得极大值或者极小值。

1.1.1.5 二阶导数
- 二阶导数的概念
在微积分中,函数的二阶导数是函数导数的导数。粗略来说,某个量的二阶导数描述该量变化率变化的快慢。例如物体位置对时间的二阶导数是物体的瞬时加速度,即该物体速度随时间的变化率: a = d v d t = d 2 x d t 2 a=\frac{dv}{dt}=\frac{d^2x}{dt^2} a=dtdv=dt2d2x。
函数f的二阶导数通常记作 f ′ ′ f'' f′′、 d 2 y d x 2 \frac{d^2y}{dx^2} dx2d2y或 d d x ( d y d x ) \frac{d}{dx}(\frac{dy}{dx}) dxd(dxdy)。 - 二阶导数与函数凹凸的关系
函数的二阶导数描述了函数图像的凹凸方向和程度。若二阶导数在某区间恒为正,则函数在该区间向上弯(也称下凸函数)( f ( x 1 + x 2 2 ) ≤ f ( x 1 ) + f ( x 2 ) 2 f(\frac{x_1+x_2}{2})≤\frac{f(x_1)+f(x_2)}{2} f(2x1+x2)≤2f(x1)+f(x2))。反之,若二阶导数在某区间恒为负,则函数在该区间向下弯(也称上凸函数)( f ( x 1 + x 2 2 ) ≥ f ( x 1 ) + f ( x 2 ) 2 f(\frac{x_1+x_2}{2})≥\frac{f(x_1)+f(x_2)}{2} f(2x1+x2)≥2f(x1)+f(x2))。

若函数的二阶导数在某点左右异号,则图像由向上弯转为向下弯,或反之。这种点称之为拐点。若二阶导数连续,则在该点处二阶导数为0。但反之二阶导数为0的点不一定是拐点。如 f ( x ) = x 4 f(x)=x^4 f(x)=x4,在 x = 0 x=0 x=0处有 f ′ ′ ( 0 ) = 0 f''(0)=0 f′′(0)=0,但 f ( x ) f(x) f(x)在实数系上无拐点。

二阶导数与凹凸性的关系有助于判断函数的驻点是否为极大值点或极小值点:
- 若 f ′ ( x ) = 0 f'(x)=0 f′(x)=0, f ′ ′ ( x ) < 0 f''(x)<0 f′′(x)<0,则f在x取得极大值。
- 若 f ′ ( x ) = 0 f'(x)=0 f′(x)=0, f ′ ′ ( x ) > 0 f''(x)>0 f′′(x)>0,则f在x取得极小值。
- 若 f ′ ( x ) = 0 f'(x)=0 f′(x)=0, f ′ ′ ( x ) = 0 f''(x)=0 f′′(x)=0,则该点可能是拐点,也可能是极大值点或极小值点。
代码验证

输入 jupyter-notebook
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0,6,0.1)
y = np.sin(x)
print(x)
print(y)
# 画出函数图像
plt.plot(x,y)
plt.xlabel("x")
plt.ylabel("y")
plt.title("y=sin(x)")
plt.show()
# 导函数y'=cosx
y1 = np.cos(x)
print(y1)
# 画出导函数图像
plt.plot(x,y1)
plt.xlabel("x")
plt.ylabel("y")
plt.title("y=cos(x)")
plt.show()
# 将函数和导数图像放在一张图中
plt.plot(x,y,label="y=sin(x)")
plt.plot(x,y1,label="y'=cos(x)",linestyle="--")
plt.xlabel("x")
plt.ylabel("y")
plt.title("y=cos(x)")
plt.legend()
plt.show()
1.1.2 偏导与梯度
1.1.2.1 偏导数
如果函数f的自变量并非单个元素,而是多个元素,例如:
f
(
x
,
y
)
=
x
2
+
x
y
+
y
2
f(x,y)=x^2+xy+y^2
f(x,y)=x2+xy+y2

可将其中一个元素
x
x
x看作常数,此时
f
f
f可看作关于另一元素
y
y
y的函数。
f
x
(
y
)
=
x
2
+
x
y
+
y
2
f_x(y)=x^2+xy+y^2
fx(y)=x2+xy+y2
在
x
=
a
x=a
x=a固定的情况下,可计算
f
x
f_x
fx关于
y
y
y的导数:
f
x
=
a
′
(
y
)
=
a
+
2
y
f_{x=a}'(y)=a+2y
fx=a′(y)=a+2y
这种导数称为偏导数,一般记作:
∂
f
∂
y
(
x
,
y
)
=
x
+
2
y
\frac{∂f}{∂y}(x,y)=x+2y
∂y∂f(x,y)=x+2y
更一般地来说,一个多元函数
f
(
x
1
,
x
2
,
…
,
x
n
)
f(x_1,x_2,…,x_n)
f(x1,x2,…,xn)在点
(
a
1
,
a
2
,
…
,
a
n
)
(a_1,a_2,…,a_n)
(a1,a2,…,an)处对
x
i
x_i
xi的偏导数定义为:
∂
f
∂
x
i
(
a
1
,
a
2
,
…
,
a
n
)
=
lim
∆
x
i
→
0
f
(
a
1
,
…
a
i
+
∆
x
i
,
…
,
a
n
)
−
f
(
a
1
,
…
a
i
,
…
,
a
n
)
∆
x
i
\frac{∂f}{∂x_i}(a_1,a_2,…,a_n)=\lim\limits_{∆x_i→0}\frac{f(a_1,…a_i+∆x_i,…,a_n)−f(a_1,…a_i,…,a_n)}{∆x_i}
∂xi∂f(a1,a2,…,an)=∆xi→0lim∆xif(a1,…ai+∆xi,…,an)−f(a1,…ai,…,an)
1.1.2.2 方向导数
偏导数可以看作是多元函数
f
f
f沿某个自变量轴方向的变化率。
如果我们任意选取一个方向
l
l
l,那么在某个点
x
0
,
y
0
x_0,y_0
x0,y0处,二元函数
f
(
x
,
y
)
f(x,y)
f(x,y) 沿着这个方向的变化率可以用极限定义为:
∂
f
∂
l
(
x
0
,
y
0
)
=
lim
∆
l
→
0
f
(
x
0
+
∆
x
,
y
0
+
∆
y
)
−
f
(
x
0
,
y
0
)
∆
l
\frac{∂f}{∂l}(x_0,y_0)=\lim\limits_{∆l→0}\frac{f(x_0+∆x, y_0+∆y)−f(x_0, y_0)}{∆l}
∂l∂f(x0,y0)=∆l→0lim∆lf(x0+∆x,y0+∆y)−f(x0,y0)
这里,
∆
l
∆l
∆l 就是沿方向
l
l
l的微小改变量,
∆
x
∆x
∆x 和
∆
y
∆y
∆y 与
∆
l
∆l
∆l 的关系为:
∆
x
=
∆
l
⋅
c
o
s
α
,∆
y
=
∆
l
⋅
c
o
s
β
∆x= ∆l· cosα,∆y= ∆l· cosβ
∆x=∆l⋅cosα,∆y=∆l⋅cosβ

根据全微分公式,上式可以表示为:
∂
f
∂
l
(
x
0
,
y
0
)
=
f
x
(
x
0
,
y
0
)
c
o
s
α
+
f
y
(
x
0
,
y
0
)
c
o
s
β
\frac{∂f}{∂l}(x_0,y_0)=f_x(x_0,y_0)cosα+f_y(x_0,y_0)cosβ
∂l∂f(x0,y0)=fx(x0,y0)cosα+fy(x0,y0)cosβ
其中
f
x
(
x
0
,
y
0
)
、
f
y
(
x
0
,
y
0
)
f_x(x_0,y_0)、f_y(x_0,y_0)
fx(x0,y0)、fy(x0,y0) 表示点
x
0
,
y
0
x_0,y_0
x0,y0处
f
f
f对
x
、
y
x、y
x、y的偏导数;cosα、cosβ是方向
l
l
l的方向余弦,即l方向的单位方向向量可以表示为
l
0
=
(
c
o
s
α
,
c
o
s
β
)
l_0=(cosα, cosβ)
l0=(cosα,cosβ)。
这个“沿某个方向的变化率”,就被称为
f
(
x
,
y
)
f(x,y)
f(x,y) 沿方向l的方向导数。
1.1.2.3 梯度
多元函数
f
(
x
1
,
…
,
x
n
)
f(x_1,…,x_n)
f(x1,…,xn)关于每个变量xi都有偏导数
∂
f
∂
x
i
\frac{∂f}{∂x_i}
∂xi∂f,在点
a
=
a
1
,
a
2
,
…
,
a
n
a=a_1,a_2,…,a_n
a=a1,a2,…,an 处,这些偏导数定义出一个向量:
∇
f
(
a
)
=
[
∂
f
∂
x
1
(
a
)
,
∂
f
∂
x
2
(
a
)
,
…
,
∂
f
∂
x
n
(
a
)
]
∇f(a)=[\frac{∂f}{∂x_1}(a),\frac{∂f}{∂x_2}(a),…,\frac{∂f}{∂x_n(a)}]
∇f(a)=[∂x1∂f(a),∂x2∂f(a),…,∂xn(a)∂f]
这个向量称为
f
f
f在点
a
a
a的梯度,记作
∇
f
a
∇fa
∇fa 或者 grad
f
(
a
)
f(a)
f(a)。
例如:
f
(
x
,
y
)
=
x
2
+
x
y
+
y
2
f(x,y)=x^2+xy+y^2
f(x,y)=x2+xy+y2在(1,1)处的梯度为[3,3]。

梯度向量表示的方向,就是函数在这一点处,方向导数取最大值的方向。换句话说,梯度的方向,就是函数值变化最快的方向。
1.2 线性代数
1.2.1 标量与向量
1.2.1.1 标量与向量的概念
标量:标量是一个单独的数,只有大小。
向量:向量由标量组成,有大小有方向。
行向量: ( 2 5 8 ) \begin{pmatrix} 2&5&8 \end{pmatrix} (258)
列向量: ( 2 5 8 ) \begin{pmatrix} 2\\5\\8 \end{pmatrix} 258
1.2.1.2 向量运算
- 向量转置:列向量转置结果为行向量
x = ( 2 5 8 ) x=\begin{pmatrix} 2\\5\\8 \end{pmatrix} x= 258
x T = ( 2 5 8 ) x^T=\begin{pmatrix}2&5&8\end{pmatrix} xT=(258) - 向量相加:对应元素相加
( 2 5 8 ) + ( 1 3 7 ) = ( 3 8 15 ) \begin{pmatrix} 2\\5\\8 \end{pmatrix}+\begin{pmatrix} 1\\3\\7\end{pmatrix}=\begin{pmatrix} 3\\8\\15 \end{pmatrix} 258 + 137 = 3815 - 向量与标量相乘:标量与向量每个元素相乘
3 × ( 2 5 8 ) = ( 6 15 24 ) 3×\begin{pmatrix} 2\\5\\8 \end{pmatrix}=\begin{pmatrix} 6\\15\\24 \end{pmatrix} 3× 258 = 61524 - 向量内积:又称向量点乘,两向量对应元素乘积之和,结果为标量
< x , y > = < ( 2 5 8 ) , ( 1 3 7 ) > = 2 + 15 + 56 = 73 <x,y>=<\begin{pmatrix} 2\\5\\8 \end{pmatrix},\begin{pmatrix} 1\\3\\7 \end{pmatrix}>=2+15+56=73 <x,y>=< 258 , 137 >=2+15+56=73
两向量之间夹角表示为
c o s θ = < x , y > ( x , x ) ( y , y ) cosθ=\frac{<x,y>}{\sqrt{(x,x)}\sqrt{(y,y)}} cosθ=(x,x)(y,y)<x,y>
1.2.1.3 向量范数
范数(norm)是具有“长度”概念的函数。
具有非负性、齐次性、三角不等式
-
L
0
L_0
L0范数(也称0范数)
∣ ∣ x ∣ ∣ 0 = 非零元素的个数 ||x||_0=非零元素的个数 ∣∣x∣∣0=非零元素的个数
例如:
x = ( 0 2 − 1 ) , ∣ ∣ x ∣ ∣ 0 = 2 x=\begin{pmatrix}0\\2\\-1\end{pmatrix},||x||_0=2 x= 02−1 ,∣∣x∣∣0=2 -
L
1
L_1
L1范数(也称和范数或1范数) 曼哈顿距离
∣ ∣ x ∣ ∣ 1 = ∑ i = 1 m ∣ x i ∣ = ∣ x 1 ∣ + … + ∣ x m ∣ || x ||_1 = \sum_{i=1}^{m} |x_i| = |x_1| + \ldots + |x_m| ∣∣x∣∣1=i=1∑m∣xi∣=∣x1∣+…+∣xm∣
例如:
x = ( 0 2 − 1 ) , ∣ ∣ x ∣ ∣ 1 = 0 + 2 + 1 = 3 x=\begin{pmatrix}0\\2\\-1\end{pmatrix}, || x ||_1=0+2+1=3 x= 02−1 ,∣∣x∣∣1=0+2+1=3 -
L
2
L_2
L2范数(也称欧几里得范数或2范数) 欧几里得距离
∣ ∣ x ∣ ∣ 2 = ( ∑ i = 1 m ∣ x i ∣ 2 ) 1 2 = ( ∣ x 1 ∣ 2 + … + ∣ x m ∣ 2 ) ||x||_2=(\sum_{i=1}^{m}|x_i|^2)^{\frac{1}{2}}=\sqrt{(|x_1|^2+…+|x_m|^2)} ∣∣x∣∣2=(i=1∑m∣xi∣2)21=(∣x1∣2+…+∣xm∣2)
例如:
x = ( 0 2 − 1 ) , ∣ ∣ x ∣ ∣ 2 = 0 + 4 + 1 = 5 x=\begin{pmatrix}0\\2\\-1\end{pmatrix}, ||x||_2=\sqrt{0+4+1}=\sqrt{5} x= 02−1 ,∣∣x∣∣2=0+4+1=5 -
L
p
L_p
Lp范数
∣ ∣ x ∣ ∣ p = ( ∑ i = 1 m ∣ x i ∣ p ) 1 p = ( ∣ x 1 ∣ p + … + ∣ x m ∣ p ) 1 p ||x||_p=(\sum_{i=1}^{m}|x_i|^p)^{\frac{1}{p}}=(|x_1|^p+…+|x_m|^p)^{\frac{1}{p}} ∣∣x∣∣p=(i=1∑m∣xi∣p)p1=(∣x1∣p+…+∣xm∣p)p1
在numpy中,可以利用linalg.norm 函数方便地计算向量的范数。
1.2.2 矩阵与张量
1.2.2.1 矩阵的概念
一个m×n的矩阵(matrix)是一个有m行n列元素的矩形阵列。用
R
m
×
n
R^{m×n}
Rm×n表示所有m×n实数矩阵的向量空间。
[
1
2
3
5
4
8
]
∈
R
3
×
2
\begin{bmatrix} 1 & 2 \\ 3 & 5 \\ 4 & 8 \end{bmatrix} \in {R}^{3 × 2}
134258
∈R3×2
- 方阵:行数等于列数的矩阵
[ 1 2 3 4 ] ∈ R 2 × 2 \begin{bmatrix} 1 & 2 \\ 3 & 4\end{bmatrix} \in {R}^{2 × 2} [1324]∈R2×2 - 对角矩阵:主对角线以外元素全为0的方阵
[ 1 0 0 0 5 0 0 0 9 ] \begin{bmatrix} 1 & 0 & 0 \\ 0 & 5 & 0\\ 0 & 0 & 9\end{bmatrix} 100050009 - 单位矩阵:主对角线元素全为1的对角矩阵
I 3 × 3 = [ 1 0 0 0 1 0 0 0 1 ] I_{3×3}=\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0\\ 0 & 0 & 1\end{bmatrix} I3×3= 100010001
1.2.2.2 矩阵乘法
- 矩阵乘法运算
两个矩阵的乘法仅当矩阵A的列数和矩阵B的行数相等时才能定义。如 A ∈ R m × n A∈R^{m×n} A∈Rm×n, B ∈ R n × p B∈R^{n×p} B∈Rn×p,它们的乘积 A B ∈ R m × p AB∈R^{m×p} AB∈Rm×p
[ A B ] i j = a i 1 b 1 j + a i 2 b 2 j + … + a i n b n j = ∑ r = 1 n a i k b k j [AB]_{ij}=a_{i1}b_{1j}+a_{i2}b_{2j}+…+a_{in}b_{nj}=\sum_{r=1}^na_{ik}b_{kj} [AB]ij=ai1b1j+ai2b2j+…+ainbnj=r=1∑naikbkj
例如:
[ 1 0 2 − 1 3 1 ] × [ 3 1 2 1 1 0 ] = [ 1 × 3 + 0 × 2 + 2 × 1 1 × 1 + 0 × 1 + 2 × 0 ( − 1 ) × 3 + 3 × 2 + 1 × 1 ( − 1 ) × 1 + 3 × 1 + 1 × 0 ] = [ 5 1 4 2 ] \begin{bmatrix}1& 0& 2\\-1 & 3 & 1\end{bmatrix}×\begin{bmatrix}3&1\\2&1\\1&0\end{bmatrix}=\begin{bmatrix}1×3+0×2+2×1 & 1×1+0×1+2×0\\(−1)×3+3×2+1×1&(−1)×1+3×1+1×0\end{bmatrix}=\begin{bmatrix}5&1\\4&2\end{bmatrix} [1−10321]× 321110 =[1×3+0×2+2×1(−1)×3+3×2+1×11×1+0×1+2×0(−1)×1+3×1+1×0]=[5412]
特别地,矩阵与单位矩阵相乘等于矩阵本身:
A I = A ( A ∈ R m × n , I ∈ R n × n ) 或 I A = A ( I ∈ R n × n , A ∈ R n × m ) AI=A(A∈R^{m×n},I∈R^{n×n})或 IA=A(I∈R^{n×n},A∈R^{n×m}) AI=A(A∈Rm×n,I∈Rn×n)或IA=A(I∈Rn×n,A∈Rn×m)
例如:
A I = [ 1 2 3 5 4 8 ] × [ 1 0 0 1 ] = [ 1 × 1 + 2 × 0 1 × 0 + 2 × 1 3 × 1 + 5 × 0 3 × 0 + 5 × 1 4 × 1 + 8 × 0 4 × 0 + 8 × 1 ] = [ 1 2 3 5 4 8 ] = A AI=\begin{bmatrix}1 & 2\\3&5\\4&8\end{bmatrix}×\begin{bmatrix}1 & 0\\0&1\end{bmatrix}=\begin{bmatrix}1×1+2×0 & 1×0+2×1\\3×1+5×0&3×0+5×1\\4×1+8×0&4×0+8×1\end{bmatrix}=\begin{bmatrix}1 & 2\\3&5\\4&8\end{bmatrix}=A AI= 134258 ×[1001]= 1×1+2×03×1+5×04×1+8×01×0+2×13×0+5×14×0+8×1 = 134258 =A - 矩阵乘法的性质
矩阵乘法满足结合律、左分配律和右分配律。不满足交换律即AB≠BA。
结合律:若 A ∈ R m × n A∈R^{m×n} A∈Rm×n, B ∈ R n × p B∈R^{n×p} B∈Rn×p, C ∈ R p × q C∈R^{p×q} C∈Rp×q,则(AB)C=A(BC)
左分配律:若 A ∈ R m × n A∈R^{m×n} A∈Rm×n, B ∈ R m × n B∈R^{m×n} B∈Rm×n, C ∈ R n × p C∈R^{n×p} C∈Rn×p,则(A+B)C=AC+BC
右分配律:若 A ∈ R m × n A∈R^{m×n} A∈Rm×n, B ∈ R n × p B∈R^{n×p} B∈Rn×p, C ∈ R n × p C∈R^{n×p} C∈Rn×p,则A(B+C)=AB+AC
1.2.2.3 矩阵转置
- 矩阵转置运算
矩阵 A ∈ R m × n A∈R^{m×n} A∈Rm×n的转置是一个n×m的矩阵,记为 A T A^T AT。其中的第 i i i个行向量是原矩阵的第 i i i个列向量;或者说,转置矩阵 A T A^T AT第 i i i行第 j j j列的元素是原矩阵A第 j j j行第 i i i列的元素。
[ A T ] i j = a j i [A^T]_{ij}=a_{ji} [AT]ij=aji
A = [ 1 2 3 5 4 8 ] ∈ R 3 × 2 A=\begin{bmatrix}1&2\\3&5\\4&8\end{bmatrix}∈R^{3×2} A= 134258 ∈R3×2
A T = [ 1 3 4 2 5 8 ] ∈ R 2 × 3 A^T=\begin{bmatrix}1&3&4\\2&5&8\end{bmatrix}∈R^{2×3} AT=[123548]∈R2×3 - 矩阵转置的性质
( A T ) T = A (A^T)^T=A (AT)T=A
( A + B ) T = A T + B T (A+B)^T=A^T+B^T (A+B)T=AT+BT
( k A ) T = k A T (kA)^T=kA^T (kA)T=kAT
( A B ) T = B T A T (AB)^T=B^TA^T (AB)T=BTAT
1.2.2.4 矩阵的逆
对于方阵A,如果存在另一个方阵
A
−
1
A^{−1}
A−1,使得
A
A
−
1
=
I
AA^{−1}=I
AA−1=I成立,此时
A
−
1
A
=
I
A^{−1}A=I
A−1A=I也同样成立。称
A
−
1
A^{−1}
A−1为A的逆矩阵。例如:
A
A
−
1
=
[
1
2
3
5
]
×
[
−
5
2
3
−
1
]
=
[
1
×
(
−
5
)
+
2
×
3
1
×
2
+
2
×
(
−
1
)
3
×
(
−
5
)
+
3
×
5
3
×
2
+
5
×
(
−
1
)
]
=
[
1
0
0
1
]
=
I
AA^{−1}=\begin{bmatrix}1&2\\3&5\end{bmatrix}×\begin{bmatrix}-5&2\\3&-1\end{bmatrix}=\begin{bmatrix}1×(−5)+2×3&1×2+2×(−1)\\3×(−5)+3×5&3×2+5×(−1)\end{bmatrix}=\begin{bmatrix}1&0\\0&1\end{bmatrix}=I
AA−1=[1325]×[−532−1]=[1×(−5)+2×33×(−5)+3×51×2+2×(−1)3×2+5×(−1)]=[1001]=I
1.2.2.5 其他矩阵运算
- 矩阵的向量化
矩阵 A ∈ R m × n A∈R^{m×n} A∈Rm×n的向量化vec(A)将矩阵A的元素按列排列成一个mn×1的向量。
v e c ( A ) = [ a 11 , … a m 1 , … a 1 n , … a m n ] T vec(A)=[a_{11},…a_{m1},…a_{1n},…a_{mn}]^T vec(A)=[a11,…am1,…a1n,…amn]T
矩阵也可以转化为行向量rvec(A),称为矩阵的行向量化。
r v e c ( A ) = [ a 11 , … a 1 n , … a m 1 , … a m n ] rvec(A)=[a_{11},…a_{1n},…a_{m1},…a_{mn}] rvec(A)=[a11,…a1n,…am1,…amn]
例如: A = [ 1 2 3 4 ] A=\begin{bmatrix}1&2\\3&4\end{bmatrix} A=[1324], v e c ( A ) = ( 1 3 2 4 ) vec(A)=\begin{pmatrix}1\\3\\2\\4\end{pmatrix} vec(A)= 1324 , r v e c A = ( 1 2 3 4 ) rvecA=\begin{pmatrix}1&2&3&4\end{pmatrix} rvecA=(1234)。 - 矩阵的内积
矩阵 A ∈ R m × n A∈R^{m×n} A∈Rm×n和矩阵 B ∈ R m × n B∈R^{m×n} B∈Rm×n的内积记作<A,B>,它是两个矩阵对应元素乘积之和,是一个标量。
< A , B > = < v e c ( A ) , v e c ( B ) > = ∑ a i , j b i , j <A,B>=<vec(A),vec(B)>=\sum{a_{i,j}b_{i,j}} <A,B>=<vec(A),vec(B)>=∑ai,jbi,j - 矩阵的Hadamard积
矩阵 A ∈ R m × n A∈R^{m×n} A∈Rm×n和矩阵 B ∈ R m × n B∈R^{m×n} B∈Rm×n的Hadamard积记作A⨀B,它是两个矩阵对应元素的乘积,是一个m×n的矩阵。
( A ⨀ B ) i j = a i j b i j (A⨀B)_{ij}=a_{ij}b_{ij} (A⨀B)ij=aijbij - 矩阵的Kronecker积
矩阵 A ∈ R m × n A∈R^{m×n} A∈Rm×n和矩阵 B ∈ R p × q B∈R^{p×q} B∈Rp×q的Kronecker积记作A⨂B,它是矩阵A中每个元素与矩阵B的乘积,是一个mp×nq的矩阵。
( A ⨂ B ) i j = [ a B a 2 B ⋯ a n B ] = [ a i j B ] i = 1 , j = 1 m n = [ a 11 B a 12 B ⋯ a 1 n B a 21 B a 22 B ⋯ a 2 n B ⋮ ⋮ ⋱ ⋮ a m 1 B a m 2 B ⋯ a m n B ] (A⨂B)_{ij}=\begin{bmatrix}a_B&a_2B&⋯&a_nB\end{bmatrix}=\begin{bmatrix}a_{ij}B\end{bmatrix}^{mn}_{i=1,j=1}=\begin{bmatrix}a_{11}B&a_{12}B&⋯&a_{1n}B\\a_{21}B&a_{22}B&⋯&a_{2n}B\\⋮&⋮&⋱&⋮\\a_{m1}B&a_{m2}B&⋯&a_{mn}B\end{bmatrix} (A⨂B)ij=[aBa2B⋯anB]=[aijB]i=1,j=1mn= a11Ba21B⋮am1Ba12Ba22B⋮am2B⋯⋯⋱⋯a1nBa2nB⋮amnB
Kronecker积也称为直积或张量积。
| 运算类型 | 数学符号 | python实现 | 核心规则 |
|---|---|---|---|
| 哈达玛积 | ⨀ | * / np.multiply() | 逐元素相乘 |
| 矩阵乘法 | 无 | @ / .dot() | 行 × 列求和,维度匹配:A 列 = B 行 |
| 向量内积 | ⟨ v 1 , v 2 ⟩ ⟨v_1,v_2⟩ ⟨v1,v2⟩ | np.sum(A * B) / np.dot(A.flatten(),B.flatten()) | 对应元素相乘求和(标量) |
| 克罗内克积 | ⨂ | np.kron() | 元素 × 矩阵整体,维度倍增 |
1.2.2.6 张量
张量(tensor)可视为多维数组,是标量,1维向量和2维矩阵的n维推广。
例如:3维张量
[
[
1
2
3
5
4
8
]
[
3
2
1
6
7
3
]
[
5
6
9
1
2
4
]
]
\begin{bmatrix}\begin{bmatrix}1&2\\3&5\\4&8\end{bmatrix}&\begin{bmatrix}3&2\\1&6\\7&3\end{bmatrix}&\begin{bmatrix}5&6\\9&1\\2&4\end{bmatrix}\end{bmatrix}
134258
317263
592614
1.2.3 矩阵求导
矩阵求导的本质就是函数对变元的每个元素逐个求导,只是写成了向量、矩阵的形式。
为方便理解,这里对变元(自变量)和函数作统一的符号规定:
x为标量变元。
X=[x
1
_1
1,x
2
_2
2,…,x
m
_m
m]
T
∈
R
m
×
n
^T∈R^{m×n}
T∈Rm×n为实矩阵变元。
x
=
[
x
1
,
x
2
,
…
,
x
m
]
T
∈
R
m
=[x_1,x_2,…,x_m]^T∈R^m
=[x1,x2,…,xm]T∈Rm为实向量变元。
f(x)∈R为实标量函数,其变元x为实向量。
f(X)∈R为实标量函数,其变元X为实矩阵。
f(x) ∈R
p
^p
p为实向量函数,其变元x为实向量。
f(X) ∈R
p
^p
p为实向量函数,其变元X为实矩阵。
当然,函数也可以是矩阵形式F,可以看作是向量函数的扩展。
1.2.3.1 典型计算场景
-
标量 f ( x ) f(x) f(x)对向量x求导
数学上,一般定义向量为列向量形式。由于 x = [ x 1 , x 2 , … , x m ] T x=[x_1,x_2,…,x_m]^T x=[x1,x2,…,xm]T,所以
f ( x ) = f ( x 1 , x 2 , … , x m ) f(x)= f(x_1,x_2,…,x_m) f(x)=f(x1,x2,…,xm)
它对向量变元 x x x 求导,本质就是对 x x x的每个元素求偏导:
∂ f ( x ) ∂ x = [ ∂ f ∂ x 1 , ∂ f ∂ x 2 , … , ∂ f ∂ x m ] T \frac{∂f(x)}{∂x}=[\frac{∂f}{∂x_1},\frac{∂f}{∂x_2},…,\frac{∂f}{∂x_m}]^T ∂x∂f(x)=[∂x1∂f,∂x2∂f,…,∂xm∂f]T
例如:
函数 f ( x 1 , x 2 ) = x 1 2 + x 1 x 2 + 2 x 2 2 f(x_1,x_2)=x_1^2+x_1x_2+2x_2^2 f(x1,x2)=x12+x1x2+2x22,令 x = [ x 1 , x 2 ] T x=[x_1,x_2]^T x=[x1,x2]T,则
∂ f ( x ) ∂ x = [ ∂ f ∂ x 1 , ∂ f ∂ x 2 ] T = [ 2 x 1 + x 2 , x 1 + 4 x 2 ] T = [ 2 x 1 + x 2 x 1 + 4 x 2 ] \frac{∂f(x)}{∂x}=[\frac{∂f}{∂x_1},\frac{∂f}{∂x_2}]^T=[2x_1+x_2, x_1+4x_2]^T=\begin{bmatrix}2x_1+x_2\\x_1+4x_2\end{bmatrix} ∂x∂f(x)=[∂x1∂f,∂x2∂f]T=[2x1+x2,x1+4x2]T=[2x1+x2x1+4x2] -
标量 f ( x ) f(x) f(x)对矩阵X求导
变元 X 是一个m×n的矩阵,可以看成是m个行向量的组合,每个向量维度为n。
X = [ x 1 , x 2 , … , x m ] T = [ x 11 x 21 … x m 1 x 12 x 22 … x m 2 ⋮ ⋮ ⋱ ⋮ x 1 n x 2 n … x m n ] T = [ x 11 x 12 … x 1 n x 21 x 22 … x 2 n ⋮ ⋮ ⋱ ⋮ x m 1 x m 2 … x m n ] ∈ R m × n X=[x_1,x_2,…,x_m]^T=\begin{bmatrix}x_{11}& x_{21}& … & x_{m1}\\x_{12}& x_{22}& … & x_{m2}\\⋮ & ⋮ & ⋱ & ⋮\\x_{1n} & x_{2n }&… & x_{mn}\end{bmatrix}^T=\begin{bmatrix}x_{11}& x_{12}& …& x_{1n}\\x_{21}& x_{22}& … & x_{2n}\\⋮ & ⋮ & ⋱ & ⋮\\x_{m1} &x_{m2}& …& x_{mn}\end{bmatrix}∈R^{m×n} X=[x1,x2,…,xm]T= x11x12⋮x1nx21x22⋮x2n……⋱…xm1xm2⋮xmn T= x11x21⋮xm1x12x22⋮xm2……⋱…x1nx2n⋮xmn ∈Rm×n
那么f对X求导,同样也是对其中的每个元素求导,结果形状与X相同:
∂ f ( X ) ∂ X = [ ∂ f ∂ x 1 , ∂ f ∂ x 2 , … , ∂ f ∂ x m ] T = [ ∂ f ∂ x 11 ∂ f ∂ x 21 … ∂ f ∂ x m 1 ∂ f ∂ x 12 ∂ f ∂ x 22 … ∂ f ∂ x m 2 ⋮ ⋮ ⋱ ⋮ ∂ f ∂ x 1 n ∂ f ∂ x 2 n … ∂ f ∂ x m n ] T = [ ∂ f ∂ x 11 ∂ f ∂ x 12 … ∂ f ∂ x 1 n ∂ f ∂ x 21 ∂ f ∂ x 22 … ∂ f ∂ x 2 n ⋮ ⋮ ⋱ ⋮ ∂ f ∂ x m 1 ∂ f ∂ x m 2 … ∂ f ∂ x m n ] \frac{∂f(X)}{∂X}=[\frac{∂f}{∂x_1},\frac{∂f}{∂x_2},…,\frac{∂f}{∂x_m}]^T=\begin{bmatrix}\frac{∂f}{∂x_{11}}&\frac{∂f}{∂x_{21}}& … & \frac{∂f}{∂x_{m1}}\\ \frac{∂f}{∂x_{12}}& \frac{∂f}{∂x_{22}}& … & \frac{∂f}{∂x_{m2}}\\⋮ & ⋮& ⋱ & ⋮\\\frac{∂f}{∂x_{1n}}& \frac{∂f}{∂x_{2n}}& … & \frac{∂f}{∂x_{mn}}\end{bmatrix}^T=\begin{bmatrix}\frac{∂f}{∂x_{11}} & \frac{∂f}{∂x_{12}}& … & \frac{∂f}{∂x_{1n}}\\\frac{∂f}{∂x_{21}}& \frac{∂f}{∂x_{22}}& … & \frac{∂f}{∂x_{2n}}\\⋮ & ⋮ & ⋱ & ⋮\\\frac{∂f}{∂x_{m1}}& \frac{∂f}{∂x_{m2}}& … & \frac{∂f}{∂x_{mn}}\end{bmatrix} ∂X∂f(X)=[∂x1∂f,∂x2∂f,…,∂xm∂f]T= ∂x11∂f∂x12∂f⋮∂x1n∂f∂x21∂f∂x22∂f⋮∂x2n∂f……⋱…∂xm1∂f∂xm2∂f⋮∂xmn∂f T= ∂x11∂f∂x21∂f⋮∂xm1∂f∂x12∂f∂x22∂f⋮∂xm2∂f……⋱…∂x1n∂f∂x2n∂f⋮∂xmn∂f -
向量 f ( x ) f(x) f(x)对标量 x x x求导
对于向量函数 f f f,可以写为:
f ( x ) = [ f 1 ( x ) , f 2 ( x ) , … , f p ( x ) ] T f(x)=[ f_1(x),f_2(x),…,f_p(x)]^T f(x)=[f1(x),f2(x),…,fp(x)]T
显然,此时的 f f f可以看作多个函数的组合,对 x x x求导时,只要让其中的每个元素分别对 x x x求导即可:
∂ f ( x ) ∂ x = [ ∂ f 1 ∂ x , ∂ f 2 ∂ x , … , ∂ f p ∂ x ] T \frac{∂f(x)}{∂x}=[\frac{∂f_1}{∂x},\frac{∂f_2}{∂x},…,\frac{∂f_p}{∂x}]^T ∂x∂f(x)=[∂x∂f1,∂x∂f2,…,∂x∂fp]T
例如:
函数 f ( x ) = [ f 1 ( x ) , f 2 ( x ) ] T = [ 2 x 2 + 3 x + 1 s i n x ] f(x)= [f_1(x),f_2(x)]^T= \begin{bmatrix}2x^2+3x+1\\ sinx\end{bmatrix} f(x)=[f1(x),f2(x)]T=[2x2+3x+1sinx],则
∂ f ( x ) ∂ x = [ ∂ f 1 ∂ x , ∂ f 2 ∂ x ] T = [ 4 x + 3 , c o s x ] T = [ 4 x + 3 c o s x ] \frac{∂f(x)}{∂x}=[\frac{∂f_1}{∂x},\frac{∂f_2}{∂x}]^T=[4x+3, cosx]^T=\begin{bmatrix}4x+3\\cosx\end{bmatrix} ∂x∂f(x)=[∂x∂f1,∂x∂f2]T=[4x+3,cosx]T=[4x+3cosx] -
向量 f ( x ) f(x) f(x)对向量x求导(了解)
类似3中的分析,向量函数 f f f可以写为:
f ( x ) = [ f 1 ( x ) , f 2 ( x ) , … , f p ( x ) ] T f(x)= [f_1(x),f_2(x),…,f_p(x)]^T f(x)=[f1(x),f2(x),…,fp(x)]T
这里 f f f的每一个元素,都是变元 x x x为向量的实标量函数。
接下来只要应用1中的结论,将 f f f中的每个标量函数对 x x x求导即可:
∂ f ( x ) ∂ x = [ ∂ f 1 ∂ x , ∂ f 2 ∂ x , … , ∂ f p ∂ x ] T = [ ∂ f 1 ∂ x 1 ∂ f 2 ∂ x 1 … ∂ f p ∂ x 1 ∂ f 1 ∂ x 2 ∂ f 2 ∂ x 2 … ∂ f p ∂ x 2 ⋮ ⋮ ⋱ ⋮ ∂ f 1 ∂ x m ∂ f 2 ∂ x m … ∂ f p ∂ x m ] T ∈ R p × m \frac{∂f(x)}{∂x}=[\frac{∂f_1}{∂x},\frac{∂f_2}{∂x},…,\frac{∂f_p}{∂x}]^T = \begin{bmatrix}\frac{∂f_1}{∂x_1} & \frac{∂f_2}{∂x_1} & … & \frac{∂f_p}{∂x_1}\\\frac{∂f_1}{∂x_2} & \frac{∂f_2}{∂x_2}& … & \frac{∂f_p}{∂x_2}\\⋮ & ⋮ & ⋱ & ⋮\\\frac{∂f_1}{∂x_m}& \frac{∂f_2}{∂x_m}& … & \frac{∂f_p}{∂x_m}\end{bmatrix}^T∈R^{p×m} ∂x∂f(x)=[∂x∂f1,∂x∂f2,…,∂x∂fp]T= ∂x1∂f1∂x2∂f1⋮∂xm∂f1∂x1∂f2∂x2∂f2⋮∂xm∂f2……⋱…∂x1∂fp∂x2∂fp⋮∂xm∂fp T∈Rp×m
1.2.3.2 常用求导结果
∂ x T a ∂ x = ∂ a T x ∂ x = a \frac{∂x^Ta}{∂x}=\frac{∂a^Tx}{∂x}=a ∂x∂xTa=∂x∂aTx=a
∂ x T x ∂ x = 2 x \frac{∂x^Tx}{∂x}=2x ∂x∂xTx=2x
∂ A x ∂ x = A T \frac{∂Ax}{∂x}=A^T ∂x∂Ax=AT
∂ x T A ∂ x = A \frac{∂x^TA}{∂x}=A ∂x∂xTA=A
∂ x T A x ∂ x = ( A T + A ) x \frac{∂x^TAx}{∂x}=(A^T+A)x ∂x∂xTAx=(AT+A)x
∂ a T X b ∂ X = a b T \frac{∂a^TXb}{∂X}=ab^T ∂X∂aTXb=abT
∂ a T X T b ∂ X = ∂ ( a T X T b ) T ∂ X = ∂ b T X a ∂ X = b a T \frac{∂a^TX^Tb}{∂X}=\frac{∂(a^TX^Tb)^T}{∂X}=\frac{∂b^TXa}{∂X}=ba^T ∂X∂aTXTb=∂X∂(aTXTb)T=∂X∂bTXa=baT
∂ a T X X T b ∂ X = a b T X + b a T X \frac{∂a^TXX^Tb}{∂X}=ab^TX+ba^TX ∂X∂aTXXTb=abTX+baTX
∂ a T X T X b ∂ X = X b a T + X a b T \frac{∂a^TX^TXb}{∂X}=Xba^T+Xab^T ∂X∂aTXTXb=XbaT+XabT
1.2.3.3 梯度矩阵
对于实向量变元
x
x
x,实标量函数
f
(
x
)
f(x)
f(x)的梯度向量,为m×1的列向量(与
x
x
x 形状相同):
∇
x
f
(
x
)
=
∂
f
(
x
)
∂
x
=
[
∂
f
(
x
)
∂
x
1
,
∂
f
(
x
)
∂
x
2
,
…
,
∂
f
(
x
∂
)
x
m
]
T
∇_xf(x)=\frac{∂f(x)}{∂x}=[\frac{∂f(x)}{∂x_1},\frac{∂f(x)}{∂x_2},…,\frac{∂f(x∂)}{x_m}]^T
∇xf(x)=∂x∂f(x)=[∂x1∂f(x),∂x2∂f(x),…,xm∂f(x∂)]T
对于矩阵变元 X(m×n),可以类似地得到
f
(
X
)
f(X)
f(X) 的梯度矩阵:
∇
X
f
(
X
)
=
∂
f
(
X
)
∂
X
=
[
∂
f
(
X
)
∂
x
11
⋯
∂
f
(
X
)
∂
x
1
n
⋮
⋱
⋮
∂
f
(
X
)
∂
x
m
1
⋯
∂
f
(
X
)
∂
x
m
n
]
∈
R
m
×
n
∇_Xf(X)=\frac{∂f(X)}{∂X}=\begin{bmatrix}\frac{∂f(X)}{∂x_{11}}&⋯&\frac{∂f(X)}{∂x_{1n}}\\⋮&⋱&⋮\\\frac{∂f(X)}{∂x_{m1}}&⋯&\frac{∂f(X)}{∂x_{mn}}\end{bmatrix}∈R^{m×n}
∇Xf(X)=∂X∂f(X)=
∂x11∂f(X)⋮∂xm1∂f(X)⋯⋱⋯∂x1n∂f(X)⋮∂xmn∂f(X)
∈Rm×n
类似地,
f
(
x
)
f(x)
f(x) 的二阶偏导构成的矩阵被称为“黑塞矩阵”(Hessian Matrix):
H
(
x
)
=
[
∂
2
f
∂
x
i
∂
x
j
]
n
×
n
H(x)=[\frac{∂^2f}{∂x_i∂x_j}]_{n×n}
H(x)=[∂xi∂xj∂2f]n×n
1.3 概率统计
1.3.1 概率
1.3.1.1 概率的概念
概率是对事件发生的可能性的度量。通常将事件A的概率写作P(A)。
1.3.1.2 概率的计算
| 事件 | 概率 |
|---|---|
| A | P(A)∈[0,1] |
| 非A | P ( A ˉ ) = 1 − P ( A ) P(\bar{A})=1−P(A) P(Aˉ)=1−P(A) |
| A和B(联合概率) | P(A∩B)=P(A|B)P(B)=P(B|A)P(A);当A、B相互独立时:P(A∩B)=P(A)P(B) |
| A或B | P(A∪B)=P(A)+P(B)−P(A∩B);当A、B互斥时:P(A∪B)=P(A)+P(B) |
| B的情况下A的概率(条件概率) | P ( A ∣ B ) = P ( A ∩ B ) P ( B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A|B)=\frac{P(A∩B)}{P(B)}=\frac{P(B|A)P(A)}{P(B)} P(A∣B)=P(B)P(A∩B)=P(B)P(B∣A)P(A) |
例如:现有一个装有10个球的袋子,其中有6个红球和4个蓝球。从中随机抽取两个球。我们定义以下事件:
事件A:第一个抽到的是红球。
事件B:两个抽到的球都是红球。
- 计算联合概率P(A∩B)
第一个球是红球的概率:
P ( A ) = 6 10 P(A)=\frac{6}{10} P(A)=106
在第一个球是红球的情况下,两个球都是红球的概率:
P ( B ∣ A ) = 5 9 P(B|A)=\frac{5}{9} P(B∣A)=95
联合概率:
P ( A ∩ B ) = P ( B ∣ A ) P ( A ) = 5 9 × 6 10 = 1 3 P(A∩B)=P(B|A)P(A)=\frac{5}{9}×\frac{6}{10}=\frac{1}{3} P(A∩B)=P(B∣A)P(A)=95×106=31 - 计算条件概率P(A|B)
条件概率P(A|B)表示在已知两个球都是红球的情况下,第一个球是红球的概率。
两个球都是红球的概率:
P ( B ) = C 6 2 C 10 2 = 6 × 5 ÷ 2 10 × 9 ÷ 2 = 1 3 P(B)=\frac{C_6^2}{C_{10}^2}=\frac{6×5÷2}{10×9÷2}=\frac{1}{3} P(B)=C102C62=10×9÷26×5÷2=31
在两个球都是红球的情况下,第一个球是红球的概率:
P ( A ∣ B ) = P ( A ∩ B ) P ( B ) = 1 3 1 3 = 1 P(A|B)=\frac{P(A∩B)}{P(B)}=\frac{\frac{1}{3}}{\frac{1}{3}}=1 P(A∣B)=P(B)P(A∩B)=3131=1
1.3.2 概率分布
概率分布,是指用于表述随机变量取值的概率规律。事件的概率表示了一次试验中某一个结果发生的可能性大小。如果试验结果用变量X的取值来表示,则随机试验的概率分布就是随机变量的概率分布,即随机变量的可能取值及取得对应值的概率。
1.3.2.1 均匀分布
均匀分布也叫矩形分布,它表示在相同长度间隔的分布概率是等可能的。 均匀分布由两个参数a和b定义,它们是数轴上的最小值和最大值,通常缩写为U(a,b)。
均匀分布的概率密度函数可写为:
P
(
x
)
=
1
b
−
a
,
a
<
x
<
b
P(x)=\frac{1}{b−a},a<x<b
P(x)=b−a1,a<x<b
P
(
x
)
=
0
,
e
l
s
e
P(x)=0, else
P(x)=0,else
1.3.2.2 正态分布
正态分布(Normal Distribution)也称高斯分布,是常见的连续概率分布。正态分布在统计学上十分重要,经常用在自然和社会科学来代表一个不明的随机变量。
若随机变量X服从一个平均数为μ、标准差为
σ
(
σ
=
1
n
∑
i
=
1
n
(
x
i
−
μ
)
2
)
σ(σ=\sqrt{\frac{1}{n}\sum_{i=1}^n(x_i−μ)^2)}
σ(σ=n1∑i=1n(xi−μ)2)的正态分布,则记为X~N(μ,
σ
2
σ^2
σ2),其概率密度函数
f
(
x
)
=
1
σ
2
π
e
−
(
x
−
μ
)
2
2
σ
2
f(x)=\frac{1}{σ\sqrt{2π}}e^{−\frac{(x−μ)^2}{2σ^2}}
f(x)=σ2π1e−2σ2(x−μ)2
正态分布的期望μ可解释为位置参数,决定了分布的位置;其方差
σ
2
σ^2
σ2可解释为尺度参数,决定了分布的幅度。
正态分布概率密度函数图:

正态分布的概率密度函数曲线呈钟形,因此人们又经常称之为钟形曲线。我们通常所说的标准正态分布是位置参数μ=0,尺度参数
σ
2
=
1
σ^2=1
σ2=1的正态分布。
中心极限定理指出,在特定条件下,一个具有有限均值和方差的随机变量的多个样本的平均值本身就是一个随机变量,其分布随着样本数量的增加而收敛于正态分布。因此,许多与独立过程总和有关的物理量,例如测量误差,通常可被近似为正态分布。
在numpy中,提供了各种随机函数,可以用来生成服从特定分布的数据。
1.3.3 贝叶斯定理
贝叶斯定理(Bayes’ Theorem)是概率论中的一个核心定理,用于描述在已有条件概率信息的基础上,如何更新或计算事件的概率。它以英国数学家托马斯·贝叶斯的名字命名。贝叶斯定理特别适合处理“逆向概率”问题,即从结果反推原因的概率。
1.3.3.1 全概率公式
对于复杂事件B,它可能有很多种具体情况,发生概率不容易直接求得。
这些不同的具体情况可以是一组简单事件,记作
A
1
、
A
2
、
…
、
A
n
A_1、A_2、…、A_n
A1、A2、…、An,发生的概率
P
(
A
i
)
P(A_i)
P(Ai)已知;如果它们满足两两互不相容、且发生概率之和为1,就称它们是一个完备事件组。
这样,如果知道了在每个简单事件发生的前提下、复杂事件发生的概率(条件概率
P
(
B
∣
A
i
)
P(B| A_i)
P(B∣Ai) ),就可以将它们全部合并起来,求出复杂事件的概率了。
P
(
B
)
=
P
(
B
∣
A
1
)
⋅
P
(
A
1
)
+
P
(
B
∣
A
2
)
⋅
P
(
A
2
)
+
…
+
P
(
B
∣
A
n
)
⋅
P
(
A
n
)
P(B)=P(B|A_1)·P(A_1)+P(B|A_2)·P(A_2)+…+P(B|A_n)·P(A_n)
P(B)=P(B∣A1)⋅P(A1)+P(B∣A2)⋅P(A2)+…+P(B∣An)⋅P(An)
=
∑
i
n
(
P
∣
B
(
A
i
)
⋅
P
(
A
i
)
=\sum_i^n(P|B(A_i)·P(A_i)
=∑in(P∣B(Ai)⋅P(Ai)
这个公式就被称为“全概率公式”。
1.3.3.2 贝叶斯公式
贝叶斯定理建立在条件概率的基础上,假设有两事件A,B,贝叶斯定理描述了在已知B发生的情况下,A发生的概率:
P
(
A
∣
B
)
=
P
(
B
∣
A
)
∙
P
(
A
)
P
(
B
)
P(A|B)=\frac{P(B|A)∙P(A)}{P(B)}
P(A∣B)=P(B)P(B∣A)∙P(A)
- P(A|B):后验概率,B发生的情况下A发生的概率。
- P(B|A):似然概率,A发生的情况下B发生的概率。
- P(A):先验概率,A发生的概率。
- P(B):B发生的概率,通常通过全概率公式计算。
在实际问题中P(B)通常不是直接给出,而是需要通过全概率公式计算。假设样本空间被一组互斥且完备的事件 A 1 , A 2 , … , A n A_1,A_2,…,A_n A1,A2,…,An划分,则:
P ( B ) = ∑ i = 1 n P ( B ∣ A i ) ∙ P ( A i ) P(B)=\sum_{i=1}^nP(B|A_i)∙P(A_i) P(B)=i=1∑nP(B∣Ai)∙P(Ai)
例如:某疾病发病率为1%,如果一个人有疾病,检测呈阳性的概率为95%;如果一个人没有疾病,检测呈阳性的概率为5%,现有一人检测结果呈阳性,问他真正患病的概率是多少?
P ( 疾病 ∣ 阳性 ) = P ( 阳性 ∣ 疾病 ) ∙ P ( 疾病 ) P ( 阳性 ) P(疾病 | 阳性)=\frac{P(阳性 | 疾病)∙P(疾病)}{P(阳性)} P(疾病∣阳性)=P(阳性)P(阳性∣疾病)∙P(疾病)
P(阳性)=P(阳性 | 疾病)∙P(疾病)+P(阳性 | 无疾病)∙P(无疾病)
=0.95×0.01+0.05×0.99
=0.0095+0.0495
=0.059
P(疾病 | 阳性)= 0.0095 0.059 \frac{0.0095}{0.059} 0.0590.0095≈0.161
检测呈阳性的人真正患病的概率为16.1%。
1.3.4 似然函数
1.3.4.1 似然函数的概念
概率用于在已知一些参数的情况下,预测接下来在观测上所得到的结果。而似然性则是用于在已知某些观测所得到的结果时,对有关事物之性质的参数进行估值。
似然函数是对参数的函数,其定义为在给定参数值的条件下,观察到某个特定数据的概率。换句话说,似然函数是一个关于参数的函数,而不是关于数据的函数。
如果我们有一个参数化的概率模型P(X | θ),其中X是观测数据,θ是模型参数,似然函数L(θ | X)定义为:
L
(
θ
∣
X
)
=
P
(
X
∣
θ
)
L(θ|X)=P(X|θ)
L(θ∣X)=P(X∣θ)
这里,P(X | θ) 表示在参数为θ的情况下,观察到数据X的概率。
设有一组独立同分布的观测数据
X
=
(
x
1
,
x
2
,
…
,
x
n
)
X=(x_1,x_2,…,x_n)
X=(x1,x2,…,xn),并且这些数据服从某个分布(例如正态分布、二项分布等),比如服从参数为θ的某个分布,那么似然函数可以写作:
L
(
θ
∣
X
)
=
P
(
X
∣
θ
)
=
∏
i
=
1
n
P
(
x
i
∣
θ
)
L(θ|X)=P(X|θ)=\prod_{i=1}^n P(x_i|θ)
L(θ∣X)=P(X∣θ)=i=1∏nP(xi∣θ)
针对其中存在的乘法,可以使对数函数将其转化为加法:
l
o
g
L
(
θ
∣
X
)
=
l
o
g
∏
i
=
1
n
P
(
x
i
∣
θ
)
=
∑
i
=
1
n
l
o
g
P
(
x
i
∣
θ
)
logL(θ|X)=log\prod_{i=1}^nP(x_i|θ)=\sum_{i=1}^nlogP(x_i|θ)
logL(θ∣X)=logi=1∏nP(xi∣θ)=i=1∑nlogP(xi∣θ)
1.3.4.2 极大似然估计
似然函数常用于极大似然估计。我们希望找到使似然函数最大化的参数θ。这意味着在给定观测数据的情况下,选择最可能生成这些数据的参数值。
例如,掷硬币3次,2次正面1次背面,能否依据此结果逆推出正面的概率;正面概率为0.5的概率为多少、正面概率为0.6的概率为多少;最有可能的正面概率是多少?
我们用θ代表硬币正面朝上的概率,用X代表2次正面1次背面的结果
L
(
θ
∣
X
)
=
P
(
X
∣
θ
)
=
C
3
2
θ
2
(
1
−
θ
)
L(θ|X)=P(X|θ)=C_3^2θ^2(1−θ)
L(θ∣X)=P(X∣θ)=C32θ2(1−θ)
当正面概率为0.5时:
P
(
X
∣
θ
=
0.5
)
=
C
3
2
0.5
2
(
1
−
0.5
)
=
0.375
P(X|θ=0.5)=C_3^20.5^2(1−0.5)=0.375
P(X∣θ=0.5)=C320.52(1−0.5)=0.375
当正面概率为0.6时:
P
(
X
∣
θ
=
0.6
)
=
C
3
2
0.6
2
(
1
−
0.6
)
=
0.432
P(X|θ=0.6)=C_3^20.6^2(1−0.6)=0.432
P(X∣θ=0.6)=C320.62(1−0.6)=0.432
为了找出极大似然估计,对似然函数取对数并求导(看作以e为底计算),使其等于0
l
o
g
L
(
θ
∣
X
)
=
l
o
g
C
3
2
∙
θ
2
(
1
−
θ
)
=
l
o
g
3
+
2
l
o
g
θ
+
l
o
g
(
1
−
θ
)
logL(θ|X)=logC_3^2∙θ^2(1−θ)=log3+2logθ+log(1−θ)
logL(θ∣X)=logC32∙θ2(1−θ)=log3+2logθ+log(1−θ)
d
l
o
g
L
(
θ
∣
X
)
d
θ
=
2
θ
−
1
1
−
θ
=
0
\frac{dlogL(θ|X)}{dθ}=\frac{2}{θ}−\frac{1}{1−θ}=0
dθdlogL(θ∣X)=θ2−1−θ1=0
解得θ=
2
3
\frac{2}{3}
32,意味着当掷硬币3次,出现2次正面1次背面的结果时,硬币正面朝上的概率最有可能为
2
3
\frac{2}{3}
32。
第二章 机器学习概述
机器学习主要研究计算机系统对于特定任务的性能,逐步进行改善的算法和统计模型。

2.1 人工智能、机器学习与深度学习

2.2 发展历史
2.3 机器学习应用领域

2.4 基本术语

- 数据集(Data Set):多条记录的集合。
- 训练集(Training Set):用于训练模型的数据。
- 验证集(Validation Set):用于调节超参数的数据。
- 测试集(Test Set):用于评估模型性能的数据。
- 样本(Sample):数据集中的一条记录是关于一个事件或对象的描述,称为一个样本。
- 特征(Feature):数据集中一列反映事件或对象在某方面的表现或性质的事项,称为特征或属性。
- 特征向量(Feature Vector):将样本的所有特征表示为向量的形式,输入到模型中。
- 标签(Label):监督学习中每个样本的结果信息,也称作目标值(target)。
- 模型(Model):一个机器学习算法与训练后的参数集合,用于进行预测或分类。
- 参数(Parameter):模型通过训练学习到的值,例如线性回归中的权重和偏置。
- 超参数(Hyper Parameter):由用户设置的参数,不能通过训练自动学习,例如学习率、正则化系数等。
更多推荐
所有评论(0)