机器学习-熵和优化方法

信息熵公式

H ( X ) = − ∑ x P ( x ) l o g P ( x ) H(X)=-\sum_{x}P(x)logP(x) H(X)=xP(x)logP(x)

条件熵

H ( X ∣ Y ) = − ∑ x , y P ( x , y ) l o g P ( x ∣ y ) H(X|Y)=-\sum_{x,y}P(x,y)logP(x|y) H(XY)=x,yP(x,y)logP(xy)

联合熵

H ( X , Y ) = − ∑ x , y P ( x , y ) l o g P ( x , y ) H(X,Y)=-\sum_{x,y}P(x,y)logP(x,y) H(X,Y)=x,yP(x,y)logP(x,y)

互信息

I ( X , Y ) = H ( X ) − H ( X ∣ Y ) = − ∑ x , y P ( x , y ) P ( x , y ) P ( x ) P ( y ) I(X,Y)=H(X)-H(X|Y)=-\sum_{x,y}P(x,y)\frac{P(x,y)}{P(x)P(y)} I(X,Y)=H(X)H(XY)=x,yP(x,y)P(x)P(y)P(x,y)

交叉熵

H ( p , q ) = − ∑ x P ( x ) l o g Q ( x ) H(p,q)=-\sum_{x}P(x)logQ(x) H(p,q)=xP(x)logQ(x)

相对熵(K-L散度)

D k l ( p , q ) = − ∑ x P ( x ) P ( x ) Q ( x ) = − ( H p ( x ) − H ( p , q ) ) D_{kl}(p,q)=-\sum_{x}P(x)\frac{P(x)}{Q(x)}=-(H_{p(x)}-H(p,q)) Dkl(p,q)=xP(x)Q(x)P(x)=(Hp(x)H(p,q))

优化方法

梯度下降算法

梯度下降算法batch大小的影响

  • batch大 : 全局最优解、易于并行| 训练样本多的时候,训练很慢
  • batch小 : 训练速度快、准确率略有下降|局部最优、训练震荡

SGD于GD的比较:sgd能更有效的利用信息、特别是信息比较冗余的时候,SGD前期迭代效果显著,当数据量很大时候,SGD在计算复杂度上更有优势。

牛顿法

求解 f ( x ) = 0 f(x)=0 f(x)=0

x n + 1 = x n + 1 − f ( x n ) f ( x n ) ′ x_{n+1}=x_{n+1}-\frac{f(x_n)}{f(x_n)'} xn+1=xn+1f(xn)f(xn)

所以为了求解 f ( x ) f(x) f(x)的极值,也即求 f ( x ) ′ = 0 f(x)'=0 f(x)=0

x n + 1 = x n + 1 − f ( x n ) ′ f ( x n ) ′ ′ x_{n+1}=x_{n+1}-\frac{f(x_n)'}{f(x_n)''} xn+1=xn+1f(xn)f(xn)

对于多元的情况

x n + 1 = x n + 1 − ( ∇ 2 f ( x n ) ) − 1 f ( x n ) ′ = x n − H − 1 g x_{n+1}=x_{n+1}-(\nabla^2f(x_n))^{-1}{f(x_n)'}= x_n-H^{-1}g xn+1=xn+1(2f(xn))1f(xn)=xnH1g
H H H为Hession矩阵, g g g为梯度

问题

  • Hession可能不可逆
  • 求逆计算复杂度高
  • 可能不会收敛到一个最优解(甚至不能保证收敛)

##拟牛顿法

不计算Hession矩阵的逆,用其他方法得到逆的近似

改进的迭代尺度法

猜你喜欢

转载自blog.csdn.net/lovoslbdy/article/details/104860379