概率统计、数值优化算法

一、概率统计:

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

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

  1. 数学期望:
    (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=1xkpk绝对收敛,则随机变量 X X X的数学期望
    E ( X ) = ∑ k = 1 ∞ x k p k E(X) = \sum^\infty_{k=1}{x_k}p_k E(X)=k=1xkpk
    (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
  2. 方差:
    V a r ( X ) = E ( [ X − E ( X ) ] 2 ) Var(X)=E([X-E(X)]^2) Var(X)=E([XE(X)]2)
  3. 协方差:
    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)
  4. 相关系数(此公式为简单相关系数):
    ρ 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 ρxy1
  • ∣ ρ 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之间可能存在其他关系。
  1. 信息熵:度量随机变量概率分布的不确定性。
    H ( X ) = − ∑ i = 1 n p i log ⁡ p i H(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. 条件熵:在已知随机变量 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(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散度,度量真实分布 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(pq)=i=1N(pilogpipilogqi)=ipilogqipi
  4. 交叉熵:按不真实分布q来编码样本所需的编码长度的期望【信息熵(即“熵”)可以理解为“按真实分布p来编码样本所需的编码长度的期望”】
    ∑ i p i log ⁡ 1 q i \sum_i{p_i\log{\frac{1}{q_i}}} ipilogqi1

对相对熵公式变形,可得到:
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(pq)=H(p,q)H(q)=i=1Npilogpii=1Npilogqi=H(p)+[i=1Npilogqi]
等式的前一部分恰巧就是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=1Npilogqi
在机器学习中,我们需要评估label和predicts之间的差距,使用KL散度刚刚好,即 D K L ( y ∣ ∣ y ^ ) D_{KL}(y||\hat y) DKL(yy^),由于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)单调递减(当然,存在间隔性递减的优化算法,但是这里不考虑)。

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

  1. 梯度下降法:
    每一步迭代的方向沿着当前点的梯度方向的反方向。
  • 每次迭代使用的训练数据集范围:
    Batch Gradient Descent:误差损失函数由全量训练数据的误差构成,
    Stochastic Gradient Descent:每次更新只考虑一个样本数据的误差损失,可在线更新,
    Mini-Batch Gradient Descent:优化目标函数包含n个样本的数据( n n n一般较小, 10 ∼ 500 10∼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 ) 迭 代 参 数 序 列 点 : θ i = θ i − 1 − v i 迭代方向:v_i=μv_{i−1}+αd(θ^{i−1}) \\ 迭代参数序列点:θ^i=θ^{i−1}−v_i vi=μvi1+αd(θi1)θi=θi1vi
    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})') (θi1)=θi1μvi1θi=(θi1)d((θi1))
    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=acci1+(d(θi1))2θi=θi1acci+ϵ αd(θi1)
    从上式可见,当累加梯度比较小时,学习率会比较大,迭代步长变大,收敛快;当累加梯度比较大是,学习率会比较小,迭代步长变小,防止迭代过头。学习率会随迭代次数增长而减小,在接近目标函数的极小值时,不会因为学习率过大而走过头。
  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=QRn×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=0i=jf(Px)=21(Px)TQ(Px)+bT(Px)+c=i=1n(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)+λkpkxk+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求得。

  2. 牛顿法:
    对任意二阶可微的函数 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(xxk)+21(xxk)T2f(xk)(xxk)
    则在 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=xk2f(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

  3. 拟牛顿法:
    牛顿法里,步长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+1xk)
    上式就是拟牛顿条件,用 ∇ 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

你可能感兴趣的:(神经网络与相关技术)