一些数值计算的知识

标签:机器学习


计算机进行计算时有几个问题:

  1. 用理论上等价的算法,在实际计算中会产生误差。如何保证数值稳定性?
  2. 数据量大难以计算?利用迭代算法

了解并运用一些数学知识有助于更好地进行机器学习。


正定矩阵

A是对称正定矩阵1,则

AT=A,vTAv>0(v0)

性质:

  1. 所有特征值大于0
  2. 存在满秩矩阵X, A=XXT
  3. 可作为高斯分布的协方差矩阵

而当 vTAv0 时,A为半正定矩阵,此时性质1,2,3均不成立,它只能作为退化的协方差矩阵。


Cholesky分解

对于对称正定矩阵,找到下三角矩阵L,满足 LLT=A ,之后有关A的运算用L来代替,如图即可唯一分解出L

L的性质为:对角元全大于0.

分解的复杂度为O( n3 )。

应用:

  1. Ax=b 已知A,b求x
    一般的求 A1 复杂度较高,因此带入分解因子 LLTx=b ,换元如下
    [1] : Lv=b ,
    [2] : LTx=v
    先求v,再求x,利用L是下三角矩阵的性质,复杂度为O( n2 )
  2. log|A|
    log|A|=2log|L|=2logni=1li,i
  3. bTA1b
    bTA1b=||v||2 ,代入 bT(LLT)1b=||v||2 ,得 Lv=b ,只需O( n2 )求出v。
  4. 多元高斯分布换元
    Σ=LLT,μ=La 稳定性更好,复杂度更小。

奇异值分解(SVD)

A=UΛVTRm×n,UTU=I,VTV=I,Λ,λi0
奇异值矩阵 ΛRd×dd=min(m,n)

性质:

  1. ATA=(UΛVT)TUΛVT=VΛ2VT
  2. A对称时,U=VD,D为对称矩阵, di{1,1}
  3. 若A正定,SVD就成为特征分解
  4. 复杂度为O( n3 )
  5. 比Cholesky分解慢,但是准确

应用:

  1. 主成分分析(PCA),用于降维
  2. 线性近似
  3. 规范化(Laplace)

网上有一篇博客讲得很好,奇异值分解(SVD)原理详解及推导


共轭梯度算法(Conjugate Gradient Algorithm, CG)

共轭梯度法是介于最速下降法牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hesse矩阵并求逆的缺点,共轭梯度法不仅是解决大型线性方程组最有用的方法之一,也是解大型非线性最优化最有效的算法之一。

用于找到局部最小值,每次朝着变化梯度最大的方向走,直到变化为0,即到了最小值。

若非零向量u,v满足 uTAv=0(A) ,则u,v是关于A正交的,也称共轭

如下列问题:
对于正定矩阵A,求出最优参数 X=argmin{q(x)=12xTAxbTx}
首先求导 g(x)=q(x)=Axb

  1. 初始位置为 x0
  2. 遍历k个方向,令 gk1=g(xk1) ,以及以前的方向来确认 dk ,即下一步的方向,再偏移到该方向使 xk=xk1+αkdk ,走多远由 αk 决定, αk=argmin(q(xk))
  3. 重复步骤2直到q是最小值。

步骤里要解决的问题有:

  1. dk 的取向?
    要使得下降最快,应该朝着最陡的方向(Steepest Descent),即 dk=gk1 。比SD更好的办法是新的梯度总是正交于旧的方向。由此可以得到
    gk+1=A(xk+αk+1dk+1)b=gk+αk+1Adk+1  (Δ)
    0=gTk+1dk=gTkdk+αk+1dTk+1Adk
    再归纳得到,当A为对称矩阵时
    dTjAdk=0(jk)
    dj,dk 共轭。
    一直走到某个位置 xk,s.t.gTkdk=0 .
  2. αk
    为了方便计算引入 dk+1=gk+βkdk
    gTkdk=0 ,并将 gk 展开,可得
    gTk1dk+αkdTkAdk=0  ()
    αk=gTk1dkdTkAdk=gTk1(gk1+βk1dk1)dTkAdk=||gk1||2dTkAdk  ()
    dTk+1Adk=0 ,并将 dk+1 展开,得
    (gk+βkdk)TAdk=0
    βk=gTkAdkdTkAdk=()gTk(αkAdk)gTk1dk=()gTk(αkAdk)||gk1||2=(Δ)gTk(gkgk1)||gk1||2=||gk||2||gk1||2

向量微积分

函数:
df(x)=f(x+(dx))f(x)=(f(x))T(dx)+O(||dx||2)
d(XY)=(dX)Y+X(dY)

矩阵:
d(X1)=X1(dX)X1
d(log|X|)=trX1(dX)
d|X|=d(elog|X|)=|X|(d log|X|)

对于向量、矩阵求导,只要找到对应的自变量和应变量的位置即可降维求导。


  1. 在双线性代数中,正定矩阵的性质类似复数中的正实数。与正定矩阵相对应的线性算子是对称正定双线性形式(复域中则对应埃尔米特正定双线性形式)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值