概率统计、数值优化算法

概率统计:

样本空间:一个随机试验(或随机事件)所有可能结果的集合
样本点:随机试验中的每个可能结果
随机变量:本质上是一个实值函数映射,即为每一个实验的结果映射为一个数值。注意区别“随机变量”的定义与“随机变量取值的概率”的定义.

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,\cdots P(X=xk)=pk,k=1,2,
若级数 ∑ k = 1 ∞ x k p k \sum_{k=1}^{\infty}x_{k}p_{k} k=1xkpk绝对收敛,则随机变量 X X X的数学期望
E ( X ) = ∑ k = 1 ∞ x k p k E(X)=\sum_{k=1}^{\infty}x_{k}p_{k} E(X)=k=1xkpk
(2.)若连续型随机变量 X X X的概率分布密度函数为 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([XE(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([XE(X)][YE(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)
:度量随机变量概率分布的不确定性。
H ( X ) = − ∑ i = 1 n p i log ⁡ p i H(X)=-\sum_{i=1}^{n}p_{i}\log{p_{i}} H(X)=i=1npilogpi
条件熵:在已知随机变量 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 i ) H(Y|X)=E_{X}[H(Y|X)]=\sum_{i=1}^{n}P(X=x_{i})H(Y|X=x_{i}) H(YX)=EX[H(YX)]=i=1nP(X=xi)H(YX=xi)
H ( Y ∣ X = x i ) = ∑ j = 1 m [ − P ( Y = y j ∣ X = x i ) log ⁡ P ( Y = y j ∣ X = x i ) ] H(Y|X=x_{i})=\sum_{j=1}^{m} \big[-P(Y=y_{j}|X=x_{i})\log P(Y=y_{j}|X=x_{i})\big] H(YX=xi)=j=1m[P(Y=yjX=xi)logP(Y=yjX=xi)]
互信息,信息增益:给定随机变量 X X X后,随机变量 Y Y Y的不确定性削减程度。
I ( X , Y ) = H ( Y ) − H ( Y ∣ X ) I(X,Y)=H(Y)-H(Y|X) I(X,Y)=H(Y)H(YX)
相对熵:也叫KL散度,度量真实分布 p p p和非真实分布 q q q之间的差异,差异越大,相对熵越大。
D ( p ∣ ∣ q ) = H ( p , q ) − H ( q ) = ∑ i p i l o g p i q i D(p||q)=H(p,q)-H(q)=\sum\limits_{i}p_ilog\frac{p_i}{q_i} D(pq)=H(p,q)H(q)=ipilogqipi
交叉熵:按不真实分布q来编码样本所需的编码长度的期望【信息熵(即“熵”)可以理解为“按真实分布p来编码样本所需的编码长度的期望”】
∑ i p i l o g 1 q i \sum\limits_{i}p_ilog\frac{1}{q_i} ipilogqi1

数值优化算法:

机器学习的训练模型,最终都归结为最优化问题,即寻找最优参数,使得模型的误差损失函数减小。
通常, 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)单调递减(当然,存在间隔性递减的优化算法,但是这里不考虑)。

下面,先考虑记住非约束优化算法。

(1.)梯度下降法:

每一步迭代的方向沿着当前点的梯度方向的反方向。
每次迭代使用的训练数据集范围
Batch Gradient Descent:误差损失函数由全量训练数据的误差构成,
Stochastic Gradient Descent:每次更新只考虑一个样本数据的误差损失,可在线更新,
Mini-Batch Gradient Descent:优化目标函数包含 n n n个样本的数据( n n n一般较小, 10 ∼ 500 10\thicksim 500 10500)。
更新策略
a.)固定步长,负梯度方向:步长太小收敛慢,步长太大震荡
b.)动量更新,方向修正(在一定程度上保留之前更新的方向 v i − 1 v_{i-1} vi1,同时也利用当前的梯度方向 d ( θ i − 1 ) d(\theta^{i-1}) d(θi1)进行微调):
迭 代 方 向 : v i = μ v i − 1 + α d ( θ i − 1 ) 迭代方向:v_{i}=\mu v_{i-1}+\alpha d(\theta^{i-1}) vi=μvi1+αd(θi1)
迭 代 参 数 序 列 点 : θ i = θ i − 1 − v i 迭代参数序列点:\theta^{i}=\theta^{i-1}-v_{i} θi=θi1vi
c.)改进的动量更新(将迭代方向 v i v_{i} vi θ i \theta^{i} θi的作用进行拆分):
中 间 量 : ( θ i − 1 ) ′ = θ i − 1 − μ v i − 1 中间量:(\theta^{i-1})^{'}=\theta^{i-1}-\mu v_{i-1} (θi1)=θi1μvi1

中 间 量 梯 度 : θ i = ( θ i − 1 ) ′ − d ( ( θ i − 1 ) ′ ) 中间量梯度:\theta^{i}=(\theta^{i-1})^{'}-d((\theta^{i-1})^{'}) θi=(θi1)d((θi1))
d.)自适应步长更新(学习率 α \alpha α在每个方向固定,迭代时容易被卡在鞍点):
累 加 梯 度 : a c c i = a c c i − 1 + ( d ( θ i − 1 ) ) 2 累加梯度:acc_{i}=acc_{i-1}+(d(\theta_{i-1}))^2 acci=acci1+(d(θi1))2
θ i = θ i − 1 − α a c c i + ϵ d ( θ i − 1 ) \theta_{i}=\theta_{i-1}-\frac{\alpha}{\sqrt{acc_{i}+\epsilon}}d(\theta_{i-1}) θi=θi1acci+ϵ αd(θi1)
从上式可见,当累加梯度比较小时,学习率会比较大,迭代步长变大,收敛快;当累加梯度比较大是,学习率会比较小,迭代步长变小,防止迭代过头。学习率会随迭代次数增长而减小,在接近目标函数的极小值时,不会因为学习率过大而走过头。

(2.)共轭梯度法:

由于,可以将任何二次可微的函数做二阶Taylor展开作近似,所以下面只叙述二次型的优化:
f ( x ) = 1 2 x T Q x + b T x + c f(x)=\frac{1}{2}x^{T}Qx+b^{T}x+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},\cdots,x_{n})^{T},Q^{T}=Q\in R^{n\times n} x=(x1,x2,,xn)T,QT=QRn×n。如果找到一组关于 Q Q Q共轭的基,那么就可以将 f ( x ) f(x) f(x)进行各维度变量的分离,再分别沿每一个维度方向进行一维搜索:
p i T Q p j = 0 , i ≠ j p_{i}^{T}Qp_{j}=0,i\neq j piTQpj=0i̸=j
f ( P x ) = 1 2 ( P x ) T Q ( P x ) + b T ( P x ) + c f(Px)=\frac{1}{2}(Px)^{T}Q(Px)+b^{T}(Px)+c f(Px)=21(Px)TQ(Px)+bT(Px)+c
= ∑ i = 1 n ( 1 2 x i T p i T Q p i x i + b T ( p i x i ) ) + c =\sum_{i=1}^{n}\Big(\frac{1}{2}x_{i}^{T}p_{i}^{T}Qp_{i}x_{i}+b^{T}(p_{i}x_{i})\Big)+c =i=1n(21xiTpiTQpixi+bT(pixi))+c
= f 1 ( x 1 ) + f 2 ( x 2 ) + ⋯ + f n ( x n ) + c =f_{1}(x_{1})+f_{2}(x_{2})+\cdots+f_{n}(x_{n})+c =f1(x1)+f2(x2)++fn(xn)+c
所以,优化目标就是寻找有效的关于 Q Q Q共轭基向量组 p 1 , p 2 , ⋯   , p n p_{1},p_{2},\cdots,p_{n} p1,p2,,pn:
方 向 合 成 : p k + 1 = − ∇ f ( x k + 1 ) + λ k p k 方向合成:p_{k+1}=-\nabla f(x^{k+1})+\lambda_{k}p_{k} pk+1=f(xk+1)+λkpk
迭 代 点 更 新 : x k + 1 = x k + α k p k 迭代点更新:x^{k+1}=x^{k}+\alpha_{k}p_{k} xk+1=xk+αkpk
上式中,方向合成参数 λ k \lambda_{k} λk由基共轭条件 p k T Q p k + 1 = 0 p_{k}^{T}Qp_{k+1}=0 pkTQpk+1=0求得,迭代点更新步长参数 α k \alpha_{k} αk由精确线性搜索 ∇ f ( x k + 1 ) = 0 \nabla f(x^{k+1})=0 f(xk+1)=0求得。

(3.)牛顿法:

对任意二阶可微的函数 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)\approx f(x^{k})+\nabla f(x^{k})^{T}(x-x^{k})+\frac{1}{2}(x-x^{k})^{T}\nabla^{2}f(x^{k})(x-x^{k}) f(x)f(xk)+f(xk)T(xxk)+21(xxk)T2f(xk)(xxk)
则在 f ( x ) f(x) f(x)的极值点 x ∗ x^{*} x处由 ∇ f ( x ∗ ) = 0 \nabla f(x^{*})=0 f(x)=0得:
x ∗ = x k − ∇ f ( x k ) ∇ 2 f ( x k ) x^{*}=x^{k}-\frac{\nabla f(x^{k})}{\nabla^2 f(x^{k})} x=xk2f(xk)f(xk)
类比于前面的迭代算法,这里迭代方向是 d k = ∇ f ( x k ) d_{k}=\nabla f(x^{k}) dk=f(xk),步长为 λ k = ( ∇ 2 f ( x k ) ) − 1 \lambda_{k}=(\nabla^2 f(x^{k}))^{-1} λk=(2f(xk))1

(4.)拟牛顿法:

牛顿法里,步长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 ) \nabla f(x^{k+1})-\nabla f(x^{k})=\nabla^2 f(x^{k+1})(x^{k+1}-x^{k}) f(xk+1)f(xk)=2f(xk+1)(xk+1xk)
上式就是拟牛顿条件,用 ∇ 2 f ( x k + 1 ) \nabla^2 f(x^{k+1}) 2f(xk+1)近似牛顿法中的Hessian矩阵。
很多经典的算法,如DFP算法、BFGS算法等都可以用于求解Hessian矩阵及其逆矩阵,进一步,还可以证明迭代过程保持正定性等性质。

对于含约束的优化问题,可以利用Lagrange乘子法转化成无约束优化问题。

你可能感兴趣的:(ML和DL算法)