关闭

一些数值计算的知识

标签: 机器学习数学
242人阅读 评论(0) 收藏 举报
分类:

标签:机器学习


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

  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. 在双线性代数中,正定矩阵的性质类似复数中的正实数。与正定矩阵相对应的线性算子是对称正定双线性形式(复域中则对应埃尔米特正定双线性形式)。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:45858次
    • 积分:1212
    • 等级:
    • 排名:千里之外
    • 原创:72篇
    • 转载:2篇
    • 译文:1篇
    • 评论:41条
    最新评论