一、概率统计:
- 样本空间:一个随机试验(或随机事件)所有可能结果的集合
- 样本点:随机试验中的每个可能结果
- 随机变量:本质上是一个实值函数映射,即为每一个实验的结果映射为一个数值。注意区别“随机变量”的定义与“随机变量取值的概率”的定义.
Eg:在抛一枚均匀的硬币过程中,将正面映射为1,反面映射为0,则随机变量X的定义为X(正面)=1,X(反面)=0。此时,随机变量取值的概率定义为P(X(正面)=1)=P(X(反面)=0)=0.5。很显然,随机变量X的定义时存在一个映射,随机变量取值的概率定义时又存在一个概率映射,即从样本点到随机变量取值的概率过程进行了两步映射!
- 数学期望:
(1.)若离散型随机变量 X X X的分布律为:
P ( X = x k ) = p k , k = 1 , 2 , . . . P(X=x_k)=p_k, k=1, 2, ... P(X=xk)=pk,k=1,2,...
若级数 ∑ k = 1 ∞ x k p k \sum^\infty_{k=1}{x_kp_k} ∑k=1∞xkpk绝对收敛,则随机变量 X X X的数学期望
E ( X ) = ∑ k = 1 ∞ x k p k E(X) = \sum^\infty_{k=1}{x_k}p_k E(X)=k=1∑∞xkpk
(2.)若连续型随机变量XX的概率分布密度函数为 f ( x ) f(x) f(x),若积分 ∫ − ∞ ∞ x f ( x ) d x \int_{-\infty}^\infty{xf(x)dx} ∫−∞∞xf(x)dx绝对收敛,则随机变量 X X X的数学期望
E ( X ) = ∫ − ∞ ∞ x f ( x ) d x E(X)=\int_{-\infty}^\infty{xf(x)dx} E(X)=∫−∞∞xf(x)dx - 方差:
V a r ( X ) = E ( [ X − E ( X ) ] 2 ) Var(X)=E([X-E(X)]^2) Var(X)=E([X−E(X)]2) - 协方差:
C o v ( X , Y ) = E ( [ X − E ( X ) ] [ Y − E ( Y ) ] ) = E ( X Y ) − E ( X ) ⋅ E ( Y ) Cov(X, Y)=E([X-E(X)][Y-E(Y)])\\ =E(XY)-E(X)\cdot E(Y) Cov(X,Y)=E([X−E(X)][Y−E(Y)])=E(XY)−E(X)⋅E(Y) - 相关系数(此公式为简单相关系数):
ρ X Y = C o v ( X , Y ) V a r ( X ) V a r ( Y ) \rho_{XY}=\frac{Cov(X, Y)}{\sqrt{Var(X)}\sqrt{Var(Y)}} ρXY=Var(X)Var(Y)Cov(X,Y)
A. 这里 ρ x y = r ( x , y ) \rho_{xy}=r(x, y) ρxy=r(x,y), ρ x y \rho_{xy} ρxy是可以表征 x x x和 y y y之间线性关系紧密程度的量,具有两个性质:
- ∣ ρ x y ∣ ≤ 1 \lvert \rho_{xy}\rvert\le 1 ∣ρxy∣≤1
- ∣ ρ x y ∣ = 1 \lvert \rho_{xy}\rvert= 1 ∣ρxy∣=1 的充要条件是,存在常数 a a a、 b b b使得 P { Y = a + b X } = 1 P\{Y=a+bX\}=1 P{Y=a+bX}=1
B. 由性质衍生:
- 相关系数定量地刻画了 X 和 Y的相关程度,即 ∣ ρ x y ∣ \lvert \rho_{xy}\rvert ∣ρxy∣越大,相关程度越大; ∣ ρ x y ∣ = 0 \lvert \rho_{xy}\rvert= 0 ∣ρxy∣=0对应相关程度最低;
- X 和Y 完全相关的含义是在概率为1的意义下存在线性关系,于是 ∣ ρ x y ∣ \lvert \rho_{xy}\rvert ∣ρxy∣是一个可以表征X 和Y 之间线性关系紧密程度的量。当 ∣ ρ x y ∣ \lvert \rho_{xy}\rvert ∣ρxy∣较大时,通常说X 和Y相关程度较好;当 ∣ ρ x y ∣ \lvert \rho_{xy}\rvert ∣ρxy∣较小时,通常说X 和Y相关程度较差;当X和Y不相关,通常认为X和Y之间不存在线性关系,但并不能排除X和Y之间可能存在其他关系。
- 信息熵:度量随机变量概率分布的不确定性。
H ( X ) = − ∑ i = 1 n p i log p i H(X)=-\sum^n_{i=1}{p_i \log{p_i}} H(X)=−i=1∑npilogpi
不确定性函数f是概率P的减函数;两个独立符号所产生的不确定性应等于各自不确定性之和,即f(P1,P2)=f(P1)+f(P2),这称为可加性。同时满足这两个条件的函数f是对数函数,即
在信源中,考虑的不是某一单个符号发生的不确定性,而是要考虑这个信源所有可能发生情况的平均不确定性。若信源符号有n种取值:U1…Ui…Un,对应概率为:P1…Pi…Pn,且各种符号的出现彼此独立。这时,信源的平均不确定性应当为单个符号不确定性-logPi的统计平均值(E),可称为信息熵,即
,式中对数一般取2为底,单位为比特。但是,也可以取其它对数底,采用其它相应的单位,它们间可用换底公式换算。
- 条件熵:在已知随机变量
X
X
X的条件下,随机变量
Y
Y
Y的不确定性。
H ( Y ∣ X ) = E X [ H ( Y ∣ X ) ] = ∑ i = 1 n P ( X = x i ) H ( Y ∣ X = x 1 ) H ( Y ∣ X = x i ) = ∑ j = 1 m [ − P ( Y = y j ∣ X = x i ) l o g P ( Y = y j ∣ X = x i ) ] H(Y|X)=E_X[H(Y|X)]=\sum_{i=1}^n{P(X=x_i)}H(Y|X=x_1) \\ H(Y|X=x_i)=\sum^m_{j=1}{[-P(Y=y_j|X=x_i)logP(Y=y_j|X=x_i)]} H(Y∣X)=EX[H(Y∣X)]=i=1∑nP(X=xi)H(Y∣X=x1)H(Y∣X=xi)=j=1∑m[−P(Y=yj∣X=xi)logP(Y=yj∣X=xi)] - 互信息,信息增益:给定随机变量XX后,随机变量YY的不确定性削减程度。
I ( X , Y ) = H ( Y ) − H ( Y ∣ X ) I(X,Y)=H(Y)−H(Y∣X) I(X,Y)=H(Y)−H(Y∣X) - 相对熵:也叫KL散度,度量真实分布
p
p
p和非真实分布
q
q
q之间的差异,差异越大,相对熵越大。
D ( p ∣ ∣ q ) = ∑ i = 1 N ( p i log p i − p i log q i ) = ∑ i p i log p i q i D(p||q)=\sum^N_{i=1}{(p_i\log {p_i}-p_i\log {q_i})}=\sum_i{p_i\log {\frac{p_i}{q_i}}} D(p∣∣q)=i=1∑N(pilogpi−pilogqi)=i∑pilogqipi - 交叉熵:按不真实分布q来编码样本所需的编码长度的期望【信息熵(即“熵”)可以理解为“按真实分布p来编码样本所需的编码长度的期望”】
∑ i p i log 1 q i \sum_i{p_i\log{\frac{1}{q_i}}} i∑pilogqi1
对相对熵公式变形,可得到:
D
(
p
∣
∣
q
)
=
H
(
p
,
q
)
−
H
(
q
)
=
∑
i
=
1
N
p
i
log
p
i
−
∑
i
=
1
N
p
i
log
q
i
=
−
H
(
p
)
+
[
−
∑
i
=
1
N
p
i
log
q
i
]
D(p||q)=H(p,q)-H(q)=\sum^N_{i=1}{p_i\log {p_i}-\sum^N_{i=1}{p_i\log {q_i}}}\\ =-H(p)+[-\sum^N_{i=1}{p_i\log {q_i}}]
D(p∣∣q)=H(p,q)−H(q)=i=1∑Npilogpi−i=1∑Npilogqi=−H(p)+[−i=1∑Npilogqi]
等式的前一部分恰巧就是p的熵,等式的后一部分,就是交叉熵:
H
(
p
,
q
)
=
−
∑
i
=
1
N
p
i
log
q
i
H(p,q) = -\sum^N_{i=1}{p_i\log {q_i}}
H(p,q)=−i=1∑Npilogqi
在机器学习中,我们需要评估label和predicts之间的差距,使用KL散度刚刚好,即
D
K
L
(
y
∣
∣
y
^
)
D_{KL}(y||\hat y)
DKL(y∣∣y^),由于KL散度中的前一部分−H(y)不变,故在优化过程中,只需要关注交叉熵就可以了。所以一般在机器学习中直接用用交叉熵做loss,评估模型。
二、数值优化算法:
机器学习的训练模型,最终都归结为最优化问题,即寻找最优参数,使得模型的误差损失函数减小。
通常,
x
0
x_0
x0是
f
(
x
)
f(x)
f(x)的极小值点的必要条件是
∇
f
(
x
0
)
=
0
\nabla f(x_0)=0
∇f(x0)=0。简单情况可以解析求解;但在某些复杂情况下,需要数值求解极小值点,即通过迭代法,利用逼近序列求极小值点。所以,优化问题转化为“如何得到逼近极小值的极小化点序列,包括迭代步长和迭代方向”:
x
k
+
1
=
x
k
+
λ
k
d
k
x^{k+1}=x^k+\lambda_k d_k
xk+1=xk+λkdk
通常,要求迭代序列
(
x
0
,
x
1
,
⋯
,
x
k
,
⋯
)
(x^0, x^1, \cdots, x^k, \cdots)
(x0,x1,⋯,xk,⋯)是收敛的,且使
f
(
x
)
f(x)
f(x)单调递减(当然,存在间隔性递减的优化算法,但是这里不考虑)。
下面,先考虑记住非约束优化算法。
- 梯度下降法:
每一步迭代的方向沿着当前点的梯度方向的反方向。
- 每次迭代使用的训练数据集范围:
Batch Gradient Descent:误差损失函数由全量训练数据的误差构成,
Stochastic Gradient Descent:每次更新只考虑一个样本数据的误差损失,可在线更新,
Mini-Batch Gradient Descent:优化目标函数包含n个样本的数据( n n n一般较小, 10 ∼ 500 10∼500 10∼500)。 - 更新策略:
a.)固定步长,负梯度方向:步长太小收敛慢,步长太大震荡
b.)动量更新,方向修正(在一定程度上保留之前更新的方向 v i − 1 v_{i-1} vi−1,同时也利用当前的梯度方向 d ( θ i − 1 ) d(\theta^{i-1}) d(θi−1)进行微调):
迭 代 方 向 : v i = μ v i − 1 + α d ( θ i − 1 ) 迭 代 参 数 序 列 点 : θ i = θ i − 1 − v i 迭代方向:v_i=μv_{i−1}+αd(θ^{i−1}) \\ 迭代参数序列点:θ^i=θ^{i−1}−v_i 迭代方向:vi=μvi−1+αd(θi−1)迭代参数序列点:θi=θi−1−vi
c.)改进的动量更新(将迭代方向 v i v_i vi对 θ i θi θi的作用进行拆分):
中 间 量 : ( θ i − 1 ) ′ = θ i − 1 − μ v i − 1 中 间 量 梯 度 : θ i = ( θ i − 1 ) ′ − d ( ( θ i − 1 ) ′ ) 中间量:(θ^{i−1})^′=θ^{i−1}−μv_{i−1} \\ 中间量梯度:θ^i=(θ^{i−1})'−d((θ^{i−1})') 中间量:(θi−1)′=θi−1−μvi−1中间量梯度:θi=(θi−1)′−d((θi−1)′)
d.)自适应步长更新(学习率α在每个方向固定,迭代时容易被卡在鞍点):
累 加 梯 度 : a c c i = a c c i − 1 + ( d ( θ i − 1 ) ) 2 θ i = θ i − 1 − α a c c i + ϵ d ( θ i − 1 ) 累加梯度:acc_i=acc_{i−1}+(d(θ_{i−1}))^2 \\ θ_i=θ_{i−1}−\frac{α}{\sqrt{acci+ϵ}}d(θ_{i−1}) 累加梯度:acci=acci−1+(d(θi−1))2θi=θi−1−acci+ϵαd(θi−1)
从上式可见,当累加梯度比较小时,学习率会比较大,迭代步长变大,收敛快;当累加梯度比较大是,学习率会比较小,迭代步长变小,防止迭代过头。学习率会随迭代次数增长而减小,在接近目标函数的极小值时,不会因为学习率过大而走过头。
-
共轭梯度法:
由于,可以将任何二次可微的函数做二阶Taylor展开作近似,所以下面只叙述二次型的优化:
f ( x ) = 1 2 x T Q x + b T x + c f(x)=\frac{1}{2}x^TQx+b^Tx+c f(x)=21xTQx+bTx+c
其中 x = ( x 1 , x 2 , ⋯ , x n ) T , Q T = Q ∈ R n × n x=(x_1, x_2, ⋯, x_n)^T, Q^T=Q∈R^{n×n} x=(x1,x2,⋯,xn)T,QT=Q∈Rn×n。如果找到一组关于 Q Q Q共轭的基,那么就可以将 f ( x ) f(x) f(x)进行各维度变量的分离,再分别沿每一个维度方向进行一维搜索:
p i T Q p j = 0 , i ≠ j f ( P x ) = 1 2 ( P x ) T Q ( P x ) + b T ( P x ) + c = ∑ i = 1 n ( 1 2 x i T p i T Q p i x i + b T ( p i x i ) ) + c = f 1 ( x 1 ) + f 2 ( x 2 ) + ⋯ + f n ( x n ) + c p^T_iQp_j=0,i≠j \\ f(Px)=\frac{1}{2}(Px)^TQ(Px)+b^T(Px)+c \\ =∑^n_{i=1}(\frac{1}{2}x^T_ip^T_iQp_ix_i+b^T(p_ix_i))+c \\ =f_1(x_1)+f_2(x_2)+⋯+f_n(x_n)+c \\ piTQpj=0,i=jf(Px)=21(Px)TQ(Px)+bT(Px)+c=i=1∑n(21xiTpiTQpixi+bT(pixi))+c=f1(x1)+f2(x2)+⋯+fn(xn)+c
所以,优化目标就是寻找有效的关于 Q Q Q共轭基向量组 p 1 , p 2 , ⋯ , p n p_1, p_2, ⋯, p_n p1,p2,⋯,pn:
方 向 合 成 : p k + 1 = − ∇ f ( x k + 1 ) + λ k p k 迭 代 点 更 新 : x k + 1 = x k + α k p k 方向合成:p_{k+1}=−∇f(x^{k+1})+λ_kp_k \\ 迭代点更新:x^{k+1}=x^k+α_kp_k 方向合成:pk+1=−∇f(xk+1)+λkpk迭代点更新:xk+1=xk+αkpk
上式中,方向合成参数 λ k λ_k λk 由基共轭条件 p k T Q p k + 1 = 0 p^T_kQp_{k+1}=0 pkTQpk+1=0求得,迭代点更新步长参数 α k α_k αk由精确线性搜索 ∇ f ( x k + 1 ) = 0 ∇f(x_{k+1})=0 ∇f(xk+1)=0求得。 -
牛顿法:
对任意二阶可微的函数 f ( x ) f(x) f(x)进行二阶Taylor展开:
f ( x ) ≈ f ( x k ) + ∇ f ( x k ) T ( x − x k ) + 1 2 ( x − x k ) T ∇ 2 f ( x k ) ( x − x k ) f(x)≈f(x^k)+∇f(x^k)^T(x−x^k)+\frac{1}{2}(x−x^k)^T∇^2f(x^k)(x−x^k) f(x)≈f(xk)+∇f(xk)T(x−xk)+21(x−xk)T∇2f(xk)(x−xk)
则在 f ( x ) f(x) f(x)的极值点 x ∗ x∗ x∗处由 ∇ f ( x ∗ ) = 0 ∇f(x^∗)=0 ∇f(x∗)=0得:
x ∗ = x k − ∇ f ( x k ) ∇ 2 f ( x k ) x^∗=x^k−\frac{∇f(x^k)}{∇^2f(x^k)} x∗=xk−∇2f(xk)∇f(xk)
类比于前面的迭代算法,这里迭代方向是 d k = ∇ f ( x k ) d_k=∇f(x^k) dk=∇f(xk),步长为 λ k = ( ∇ 2 f ( x k ) ) − 1 λ_k=(∇^2f(x^k))^{−1} λk=(∇2f(xk))−1 -
拟牛顿法:
牛顿法里,步长Hessian矩阵的逆在实际计算中计算量过大,考虑寻求替代。对 f ( x ) f(x) f(x)在 x k + 1 x^{k+1} xk+1处二阶Taylor展开式,然后求导,再令 x = x k + 1 x=x^{k+1} x=xk+1
,有:
∇ f ( x k + 1 ) − ∇ f ( x k ) = ∇ 2 f ( x k + 1 ) ( x k + 1 − x k ) ∇f(x^{k+1})−∇f(x^k)=∇^2f(x^{k+1})(x^{k+1}−x^k) ∇f(xk+1)−∇f(xk)=∇2f(xk+1)(xk+1−xk)
上式就是拟牛顿条件,用 ∇ 2 f ( x k + 1 ) ∇^2f(x^{k+1}) ∇2f(xk+1)近似牛顿法中的Hessian矩阵。
很多经典的算法,如DFP算法、BFGS算法等都可以用于求解Hessian矩阵及其逆矩阵,进一步,还可以证明迭代过程保持正定性等性质。
对于含约束的优化问题,可以利用Lagrange乘子法转化成无约束优化问题。
参考资料:
- 百度百科
- https://blog.csdn.net/tsyccnh/article/details/79163834
- https://blog.csdn.net/cymy001/article/details/78152599?utm_source=blogxgwz7