概率统计、数值优化算法

一、概率统计:

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

Eg:在抛一枚均匀的硬币过程中,将正面映射为1,反面映射为0,则随机变量X的定义为X(正面)=1,X(反面)=0。此时,随机变量取值的概率定义为P(X(正面)=1)=P(X(反面)=0)=0.5。很显然,随机变量X的定义时存在一个映射,随机变量取值的概率定义时又存在一个概率映射,即从样本点到随机变量取值的概率过程进行了两步映射

  1. 数学期望:
    (1.)若离散型随机变量XXX的分布律为:
    P(X=xk)=pk,k=1,2,...P(X=x_k)=p_k, k=1, 2, ...P(X=xk)=pk,k=1,2,...
    若级数∑k=1∞xkpk\sum^\infty_{k=1}{x_kp_k}k=1xkpk绝对收敛,则随机变量XXX的数学期望
    E(X)=∑k=1∞xkpkE(X) = \sum^\infty_{k=1}{x_k}p_kE(X)=k=1xkpk
    (2.)若连续型随机变量XX的概率分布密度函数为f(x)f(x)f(x),若积分∫−∞∞xf(x)dx\int_{-\infty}^\infty{xf(x)dx}xf(x)dx绝对收敛,则随机变量XXX的数学期望
    E(X)=∫−∞∞xf(x)dxE(X)=\int_{-\infty}^\infty{xf(x)dx}E(X)=xf(x)dx
  2. 方差:
    Var(X)=E([X−E(X)]2)Var(X)=E([X-E(X)]^2)Var(X)=E([XE(X)]2)
  3. 协方差:
    Cov(X,Y)=E([X−E(X)][Y−E(Y)])=E(XY)−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)
  4. 相关系数(此公式为简单相关系数):
    ρXY=Cov(X,Y)Var(X)Var(Y)\rho_{XY}=\frac{Cov(X, Y)}{\sqrt{Var(X)}\sqrt{Var(Y)}}ρXY=Var(X)Var(Y)Cov(X,Y)

A. 这里ρxy=r(x,y)\rho_{xy}=r(x, y)ρxy=r(x,y)ρxy\rho_{xy}ρxy是可以表征xxxyyy之间线性关系紧密程度的量,具有两个性质

  • ∣ρxy∣≤1\lvert \rho_{xy}\rvert\le 1ρxy1
  • ∣ρxy∣=1\lvert \rho_{xy}\rvert= 1ρxy=1 的充要条件是,存在常数aaabbb使得P{Y=a+bX}=1P\{Y=a+bX\}=1P{Y=a+bX}=1

B. 由性质衍生

  • 相关系数定量地刻画了 X 和 Y的相关程度,即∣ρxy∣\lvert \rho_{xy}\rvertρxy越大,相关程度越大; ∣ρxy∣=0\lvert \rho_{xy}\rvert= 0ρxy=0对应相关程度最低;
  • X 和Y 完全相关的含义是在概率为1的意义下存在线性关系,于是∣ρxy∣\lvert \rho_{xy}\rvertρxy是一个可以表征X 和Y 之间线性关系紧密程度的量。当∣ρxy∣\lvert \rho_{xy}\rvertρxy较大时,通常说X 和Y相关程度较好;当∣ρxy∣\lvert \rho_{xy}\rvertρxy较小时,通常说X 和Y相关程度较差;当X和Y不相关,通常认为X和Y之间不存在线性关系,但并不能排除X和Y之间可能存在其他关系。
  1. 信息熵:度量随机变量概率分布的不确定性。
    H(X)=−∑i=1npilog⁡piH(X)=-\sum^n_{i=1}{p_i \log{p_i}}H(X)=i=1npilogpi

不确定性函数f是概率P的减函数;两个独立符号所产生的不确定性应等于各自不确定性之和,即f(P1,P2)=f(P1)+f(P2),这称为可加性。同时满足这两个条件的函数f是对数函数,即在这里插入图片描述
在信源中,考虑的不是某一单个符号发生的不确定性,而是要考虑这个信源所有可能发生情况的平均不确定性。若信源符号有n种取值:U1…Ui…Un,对应概率为:P1…Pi…Pn,且各种符号的出现彼此独立。这时,信源的平均不确定性应当为单个符号不确定性-logPi的统计平均值(E),可称为信息熵,即在这里插入图片描述
,式中对数一般取2为底,单位为比特。但是,也可以取其它对数底,采用其它相应的单位,它们间可用换底公式换算。

  1. 条件熵:在已知随机变量XXX的条件下,随机变量YYY的不确定性。
    H(Y∣X)=EX[H(Y∣X)]=∑i=1nP(X=xi)H(Y∣X=x1)H(Y∣X=xi)=∑j=1m[−P(Y=yj∣X=xi)logP(Y=yj∣X=xi)] 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(YX)=EX[H(YX)]=i=1nP(X=xi)H(YX=x1)H(YX=xi)=j=1m[P(Y=yjX=xi)logP(Y=yjX=xi)]
  2. 互信息,信息增益:给定随机变量XX后,随机变量YY的不确定性削减程度。
    I(X,Y)=H(Y)−H(Y∣X)I(X,Y)=H(Y)−H(Y∣X)I(X,Y)=H(Y)H(YX)
  3. 相对熵:也叫KL散度,度量真实分布ppp和非真实分布qqq之间的差异,差异越大,相对熵越大。
    D(p∣∣q)=∑i=1N(pilog⁡pi−pilog⁡qi)=∑ipilog⁡piqiD(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(pq)=i=1N(pilogpipilogqi)=ipilogqipi
  4. 交叉熵:按不真实分布q来编码样本所需的编码长度的期望【信息熵(即“熵”)可以理解为“按真实分布p来编码样本所需的编码长度的期望”】
    ∑ipilog⁡1qi\sum_i{p_i\log{\frac{1}{q_i}}}ipilogqi1

对相对熵公式变形,可得到:
D(p∣∣q)=H(p,q)−H(q)=∑i=1Npilog⁡pi−∑i=1Npilog⁡qi=−H(p)+[−∑i=1Npilog⁡qi]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(pq)=H(p,q)H(q)=i=1Npilogpii=1Npilogqi=H(p)+[i=1Npilogqi]
等式的前一部分恰巧就是p的熵,等式的后一部分,就是交叉熵:
H(p,q)=−∑i=1Npilog⁡qiH(p,q) = -\sum^N_{i=1}{p_i\log {q_i}} H(p,q)=i=1Npilogqi
在机器学习中,我们需要评估label和predicts之间的差距,使用KL散度刚刚好,即DKL(y∣∣y^)D_{KL}(y||\hat y)DKL(yy^),由于KL散度中的前一部分−H(y)不变,故在优化过程中,只需要关注交叉熵就可以了。所以一般在机器学习中直接用用交叉熵做loss,评估模型。

二、数值优化算法:

机器学习的训练模型,最终都归结为最优化问题,即寻找最优参数,使得模型的误差损失函数减小。
通常,x0x_0x0f(x)f(x)f(x)的极小值点的必要条件是∇f(x0)=0\nabla f(x_0)=0f(x0)=0。简单情况可以解析求解;但在某些复杂情况下,需要数值求解极小值点,即通过迭代法,利用逼近序列求极小值点。所以,优化问题转化为“如何得到逼近极小值的极小化点序列,包括迭代步长和迭代方向”
xk+1=xk+λkdkx^{k+1}=x^k+\lambda_k d_kxk+1=xk+λkdk
通常,要求迭代序列(x0,x1,⋯ ,xk,⋯ )(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个样本的数据(nnn一般较小,10∼50010∼50010500)。
  • 更新策略:
    a.)固定步长,负梯度方向:步长太小收敛慢,步长太大震荡
    b.)动量更新,方向修正(在一定程度上保留之前更新的方向vi−1v_{i-1}vi1,同时也利用当前的梯度方向d(θi−1)d(\theta^{i-1})d(θi1)进行微调):
    迭代方向:vi=μvi−1+αd(θi−1)迭代参数序列点:θi=θi−1−vi 迭代方向:v_i=μv_{i−1}+αd(θ^{i−1}) \\ 迭代参数序列点:θ^i=θ^{i−1}−v_i vi=μvi1+αd(θi1)θi=θi1vi
    c.)改进的动量更新(将迭代方向viv_iviθiθiθi的作用进行拆分):
    中间量:(θi−1)′=θi−1−μvi−1中间量梯度:θi=(θi−1)′−d((θi−1)′) 中间量:(θ^{i−1})^′=θ^{i−1}−μv_{i−1} \\ 中间量梯度:θ^i=(θ^{i−1})'−d((θ^{i−1})') (θi1)=θi1μvi1θi=(θi1)d((θi1))
    d.)自适应步长更新(学习率α在每个方向固定,迭代时容易被卡在鞍点):
    累加梯度:acci=acci−1+(d(θi−1))2θi=θi−1−αacci+ϵd(θi−1) 累加梯度:acc_i=acc_{i−1}+(d(θ_{i−1}))^2 \\ θ_i=θ_{i−1}−\frac{α}{\sqrt{acci+ϵ}}d(θ_{i−1}) acci=acci1+(d(θi1))2θi=θi1acci+ϵαd(θi1)
    从上式可见,当累加梯度比较小时,学习率会比较大,迭代步长变大,收敛快;当累加梯度比较大是,学习率会比较小,迭代步长变小,防止迭代过头。学习率会随迭代次数增长而减小,在接近目标函数的极小值时,不会因为学习率过大而走过头。
  1. 共轭梯度法:
    由于,可以将任何二次可微的函数做二阶Taylor展开作近似,所以下面只叙述二次型的优化:
    f(x)=12xTQx+bTx+cf(x)=\frac{1}{2}x^TQx+b^Tx+cf(x)=21xTQx+bTx+c
    其中x=(x1,x2,⋯,xn)T,QT=Q∈Rn×nx=(x_1, x_2, ⋯, x_n)^T, Q^T=Q∈R^{n×n}x=(x1,x2,,xn)T,QT=QRn×n。如果找到一组关于QQQ共轭的基,那么就可以将f(x)f(x)f(x)进行各维度变量的分离,再分别沿每一个维度方向进行一维搜索:
    piTQpj=0,i≠jf(Px)=12(Px)TQ(Px)+bT(Px)+c=∑i=1n(12xiTpiTQpixi+bT(pixi))+c=f1(x1)+f2(x2)+⋯+fn(xn)+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=0i=jf(Px)=21(Px)TQ(Px)+bT(Px)+c=i=1n(21xiTpiTQpixi+bT(pixi))+c=f1(x1)+f2(x2)++fn(xn)+c
    所以,优化目标就是寻找有效的关于QQQ共轭基向量组p1,p2,⋯,pnp_1, p_2, ⋯, p_np1,p2,,pn
    方向合成:pk+1=−∇f(xk+1)+λkpk迭代点更新:xk+1=xk+αkpk 方向合成:p_{k+1}=−∇f(x^{k+1})+λ_kp_k \\ 迭代点更新:x^{k+1}=x^k+α_kp_k pk+1=f(xk+1)+λkpkxk+1=xk+αkpk
    上式中,方向合成参数λkλ_kλk 由基共轭条件pkTQpk+1=0p^T_kQp_{k+1}=0pkTQpk+1=0求得,迭代点更新步长参数αkα_kαk由精确线性搜索∇f(xk+1)=0∇f(x_{k+1})=0f(xk+1)=0求得。

  2. 牛顿法:
    对任意二阶可微的函数f(x)f(x)f(x)进行二阶Taylor展开:
    f(x)≈f(xk)+∇f(xk)T(x−xk)+12(x−xk)T∇2f(xk)(x−xk)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(xxk)+21(xxk)T2f(xk)(xxk)
    则在f(x)f(x)f(x)的极值点x∗x∗x处由∇f(x∗)=0∇f(x^∗)=0f(x)=0得:
    x∗=xk−∇f(xk)∇2f(xk)x^∗=x^k−\frac{∇f(x^k)}{∇^2f(x^k)}x=xk2f(xk)f(xk)
    类比于前面的迭代算法,这里迭代方向是dk=∇f(xk)d_k=∇f(x^k)dk=f(xk),步长为λk=(∇2f(xk))−1λ_k=(∇^2f(x^k))^{−1}λk=(2f(xk))1

  3. 拟牛顿法:
    牛顿法里,步长Hessian矩阵的逆在实际计算中计算量过大,考虑寻求替代。对f(x)f(x)f(x)xk+1x^{k+1}xk+1处二阶Taylor展开式,然后求导,再令x=xk+1x=x^{k+1}x=xk+1
    ,有:
    ∇f(xk+1)−∇f(xk)=∇2f(xk+1)(xk+1−xk)∇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+1xk)
    上式就是拟牛顿条件,用∇2f(xk+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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值