一、概率统计:
- 样本空间:一个随机试验(或随机事件)所有可能结果的集合
- 样本点:随机试验中的每个可能结果
- 随机变量:本质上是一个实值函数映射,即为每一个实验的结果映射为一个数值。注意区别“随机变量”的定义与“随机变量取值的概率”的定义.
Eg:在抛一枚均匀的硬币过程中,将正面映射为1,反面映射为0,则随机变量X的定义为X(正面)=1,X(反面)=0。此时,随机变量取值的概率定义为P(X(正面)=1)=P(X(反面)=0)=0.5。很显然,随机变量X的定义时存在一个映射,随机变量取值的概率定义时又存在一个概率映射,即从样本点到随机变量取值的概率过程进行了两步映射!
- 数学期望:
(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=1∞xkpk绝对收敛,则随机变量XXX的数学期望
E(X)=∑k=1∞xkpkE(X) = \sum^\infty_{k=1}{x_k}p_kE(X)=k=1∑∞xkpk
(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 - 方差:
Var(X)=E([X−E(X)]2)Var(X)=E([X-E(X)]^2)Var(X)=E([X−E(X)]2) - 协方差:
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([X−E(X)][Y−E(Y)])=E(XY)−E(X)⋅E(Y) - 相关系数(此公式为简单相关系数):
ρ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是可以表征xxx和yyy之间线性关系紧密程度的量,具有两个性质:
- ∣ρxy∣≤1\lvert \rho_{xy}\rvert\le 1∣ρxy∣≤1
- ∣ρxy∣=1\lvert \rho_{xy}\rvert= 1∣ρxy∣=1 的充要条件是,存在常数aaa、bbb使得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之间可能存在其他关系。
- 信息熵:度量随机变量概率分布的不确定性。
H(X)=−∑i=1npilogpiH(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为底,单位为比特。但是,也可以取其它对数底,采用其它相应的单位,它们间可用换底公式换算。
- 条件熵:在已知随机变量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(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散度,度量真实分布ppp和非真实分布qqq之间的差异,差异越大,相对熵越大。
D(p∣∣q)=∑i=1N(pilogpi−pilogqi)=∑ipilogpiqiD(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来编码样本所需的编码长度的期望”】
∑ipilog1qi\sum_i{p_i\log{\frac{1}{q_i}}}i∑pilogqi1
对相对熵公式变形,可得到:
D(p∣∣q)=H(p,q)−H(q)=∑i=1Npilogpi−∑i=1Npilogqi=−H(p)+[−∑i=1Npilogqi]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=1NpilogqiH(p,q) = -\sum^N_{i=1}{p_i\log {q_i}} H(p,q)=−i=1∑Npilogqi
在机器学习中,我们需要评估label和predicts之间的差距,使用KL散度刚刚好,即DKL(y∣∣y^)D_{KL}(y||\hat y)DKL(y∣∣y^),由于KL散度中的前一部分−H(y)不变,故在优化过程中,只需要关注交叉熵就可以了。所以一般在机器学习中直接用用交叉熵做loss,评估模型。
二、数值优化算法:
机器学习的训练模型,最终都归结为最优化问题,即寻找最优参数,使得模型的误差损失函数减小。
通常,x0x_0x0是f(x)f(x)f(x)的极小值点的必要条件是∇f(x0)=0\nabla f(x_0)=0∇f(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)单调递减(当然,存在间隔性递减的优化算法,但是这里不考虑)。
下面,先考虑记住非约束优化算法。
- 梯度下降法:
每一步迭代的方向沿着当前点的梯度方向的反方向。
- 每次迭代使用的训练数据集范围:
Batch Gradient Descent:误差损失函数由全量训练数据的误差构成,
Stochastic Gradient Descent:每次更新只考虑一个样本数据的误差损失,可在线更新,
Mini-Batch Gradient Descent:优化目标函数包含n个样本的数据(nnn一般较小,10∼50010∼50010∼500)。 - 更新策略:
a.)固定步长,负梯度方向:步长太小收敛慢,步长太大震荡
b.)动量更新,方向修正(在一定程度上保留之前更新的方向vi−1v_{i-1}vi−1,同时也利用当前的梯度方向d(θi−1)d(\theta^{i-1})d(θi−1)进行微调):
迭代方向:vi=μvi−1+αd(θi−1)迭代参数序列点:θi=θi−1−vi 迭代方向:v_i=μv_{i−1}+αd(θ^{i−1}) \\ 迭代参数序列点:θ^i=θ^{i−1}−v_i 迭代方向:vi=μvi−1+αd(θi−1)迭代参数序列点:θi=θi−1−vi
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})') 中间量:(θi−1)′=θi−1−μvi−1中间量梯度:θi=(θi−1)′−d((θi−1)′)
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=acci−1+(d(θi−1))2θi=θi−1−acci+ϵαd(θi−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=Q∈Rn×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=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
所以,优化目标就是寻找有效的关于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)+λkpk迭代点更新:xk+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})=0∇f(xk+1)=0求得。 -
牛顿法:
对任意二阶可微的函数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(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∗=xk−∇f(xk)∇2f(xk)x^∗=x^k−\frac{∇f(x^k)}{∇^2f(x^k)}x∗=xk−∇2f(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 -
拟牛顿法:
牛顿法里,步长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+1−xk)
上式就是拟牛顿条件,用∇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