机器学习中的矩阵求导的一点总结(三种方法求线性回归最佳参数)

      • 一. 利用矩阵偏导数与微分的关系
        • 1.1 实值函数对向量的微分
        • 1.2 实值函数对矩阵的微分
        • 1.3 上面两个公式的应用
        • 1.4 运算法则
        • 1.5 迹技巧
      • 二 用迹的性质简化矩阵求导问题。
      • 三. 机器学习中常用的矩阵求导

在实际机器学习工作中,最常用的就是实值函数 y 对向量 x或矩阵 X 求导,比如最简单的线性回归问题中由目标函数 dJ(w) d J ( w ) 求解最佳参数向量 w w

  • 矩阵/向量求导问题中要明确是什么量对什么量求导,得到的是什么形式的量

    • 实值函数向量求导,结果是同样维度和方向向量
    • 实值函数矩阵求导,结果是同样维度矩阵

本文以线性回归问题中由目标函数 dJ(w) d J ( w ) 求解最佳参数向量 w w 问题为例子,介绍个人总结的一点机器学习矩阵求导的的技巧和方法,其中包括:

1. 全微分与偏导数关系
2. 迹技巧
3. 常用的矩阵求导公式

一. 利用矩阵偏导数与微分的关系

1.1 实值函数对向量的微分

1.2 实值函数对矩阵的微分

1.3 上面两个公式的应用

  • 由上面的两个公式,若我们可以把标量函数f的全微分形式写出来,那么,对于实值函数对向量求导的类型,只需把全微分中dX前面的项求转置便可得到 fX ∂ f ∂ X

    • 例子: 线性回归

    • d J(w) J ( w )

      =d(XwY)T(XwY)+(XwY)Td(XwY) = d ( X w − Y ) T ( X w − Y ) + ( X w − Y ) T d ( X w − Y )

      =2(XwY)TXdw = 2 ( X w − Y ) T X d w `

      =(2XTXw2XTY)Tdw = ( 2 ∗ X T X w − 2 ∗ X T Y ) T d w

      因此, wJ(w)=2XTXw2XTY ▽ w J ( w ) = 2 ∗ X T X w − 2 ∗ X T Y

  • 应用上面的的两个公式,可以证明一些矩阵求导的公式(见下面第三部分的例子)。
  • 标量函数 f 是矩阵X经加减乘法、行列式、逆、逐元素函数等运算构成,因此我们需要掌握这些向量/矩阵微分的运算法则迹的技巧

1.4 运算法则

  • 加减法
    d(X±Y)=dX±dY d ( X ± Y ) = d X ± d Y
  • 矩阵乘法
    d(XY)=dXY+XdY d ( X Y ) = d X Y + X d Y
  • 转置
    d(XT)=(dX)T d ( X T ) = ( d X ) T
  • dtr(X)=tr(dX) d tr ( X ) = tr ( d X )
  • dX1=X1dXX1 d X − 1 = − X − 1 d X X − 1
    此式可在
    XX1=I X X − 1 = I
    两侧求微分来证明。

1.5 迹技巧

  • 标量套上迹: a=tr(a) a = tr ( a )
  • 转置: tr(AT)=tr(A) t r ( A T ) = t r ( A )
  • 线性: tr(A±B)=tr(A)±tr(B) tr ( A ± B ) = tr ( A ) ± tr ( B )
  • 矩阵乘法交换: tr(AB)=tr(BA) tr ( A B ) = tr ( B A )

二 用迹的性质简化矩阵求导问题。

性质1 tra=a,tr(aA)=atrA t r a = a , t r ( a A ) = a ∗ t r A ,a为标量
性质2 tr(A+B)=trA+trB t r ( A + B ) = t r A + t r B

性质3 trAB=trBA,trABC=trCAB=trBCA t r A B = t r B A , t r A B C = t r C A B = t r B C A

性质4 trA=trAT t r A = t r A T

性质5 Atr(AB)=BT ▽ A t r ( A B ) = B T
性质6 Atr(ABATC)=CAB+CTABT ▽ A t r ( A B A T C ) = C A B + C T A B T


实例计算:使用迹的技巧求解线性回归的最佳参数

wJ(w)=wtrJ(w) ▽ w J ( w ) = ▽ w t r J ( w )

=wtr(XwY)T(XwY) = ▽ w t r ( X w − Y ) T ( X w − Y )

=wtr(wTXTXwYTXwwTXTY+YTY) = ▽ w t r ( w T X T X w − Y T X w − w T X T Y + Y T Y )

  • 注:
    • 这里应该明确的是J(w) 是两个向量的内积,因此为标量,可以应用性质1: tr a = a
    • wJ(w) ▽ w J ( w ) 是标量J(w)对一个向量 w 求导,其结果是一个向量,维数和w向量相同。

wJ(w)=wtrJ(w) ▽ w J ( w ) = ▽ w t r J ( w )

=wtr(XwY)T(XwY) = ▽ w t r ( X w − Y ) T ( X w − Y )

=wtr(wTXTXwYTXwwTXTY+YTY) = ▽ w t r ( w T X T X w − Y T X w − w T X T Y + Y T Y )

=wtr(wTXTXw)wtr(YTXw)wtr(wTXTY) = ▽ w t r ( w T X T X w ) − ▽ w t r ( Y T X w ) − ▽ w t r ( w T X T Y )

  • 注:

    • 这里应用 YTY Y T Y 与 w 无关
    • 以及

    tr(A+B)=trA+trB t r ( A + B ) = t r A + t r B

wJ(w)=wtrJ(w) ▽ w J ( w ) = ▽ w t r J ( w )

=wtr(XwY)T(XwY) = ▽ w t r ( X w − Y ) T ( X w − Y )

=wtr(wTXTXwYTXwwTXTY+YTY) = ▽ w t r ( w T X T X w − Y T X w − w T X T Y + Y T Y )

=wtr(wTXTXw)wtr(YTXw)wtr(wTXTY) = ▽ w t r ( w T X T X w ) − ▽ w t r ( Y T X w ) − ▽ w t r ( w T X T Y )

=wtr(wwTXTX)wtr(YTXw)wtr(wTXTY) = ▽ w t r ( w w T X T X ) − ▽ w t r ( Y T X w ) − ▽ w t r ( w T X T Y )

=wtr(wwTXTX)2wtr(YTXw) = ▽ w t r ( w w T X T X ) − 2 ∗ ▽ w t r ( Y T X w )

  • 注:
    • 这里应用 trAB=trBA(A=wTXTX,B=w) t r A B = t r B A ( A = w T X T X , B = w )
    • 以及 trAT=trA(A=wTXTY) t r A T = t r A ( A = w T X T Y )

wJ(w)=wtrJ(w) ▽ w J ( w ) = ▽ w t r J ( w )

=wtr(XwY)T(XwY) = ▽ w t r ( X w − Y ) T ( X w − Y )

=wtr(wTXTXwYTXwwTXTY+YTY) = ▽ w t r ( w T X T X w − Y T X w − w T X T Y + Y T Y )

=wtr(wTXTXw)wtr(YTXw)wtr(wTXTY) = ▽ w t r ( w T X T X w ) − ▽ w t r ( Y T X w ) − ▽ w t r ( w T X T Y )

=wtr(wwTXTX)wtr(YTXw)wtr(wTXTY) = ▽ w t r ( w w T X T X ) − ▽ w t r ( Y T X w ) − ▽ w t r ( w T X T Y )

=wtr(wwTXTX)2wtr(YTXw) = ▽ w t r ( w w T X T X ) − 2 ∗ ▽ w t r ( Y T X w )

=wtr(wIwTXTX)2wtr(YTXw) = ▽ w t r ( w I w T X T X ) − 2 ∗ ▽ w t r ( Y T X w )

=(XTXwI+XTXIw)2wtr(YTXw) = ( X T X w I + X T X I w ) − 2 ∗ ▽ w t r ( Y T X w )

  • 注:
    • 这里应用
      AtrABATC=CAB+CTABT(A=w,C=XTX,B=I),I1 ▽ A t r A B A T C = C A B + C T A B T ( A = w , C = X T X , B = I ) , I 是 1 维 单 位 矩 阵
    • 以及 trAT=trA(A=wTXTY) t r A T = t r A ( A = w T X T Y )

wJ(w)=wtrJ(w) ▽ w J ( w ) = ▽ w t r J ( w )

=wtr(XwY)T(XwY) = ▽ w t r ( X w − Y ) T ( X w − Y )

=wtr(wTXTXwYTXwwTXTY+YTY) = ▽ w t r ( w T X T X w − Y T X w − w T X T Y + Y T Y )

=wtr(wTXTXw)wtr(YTXw)wtr(wTXTY) = ▽ w t r ( w T X T X w ) − ▽ w t r ( Y T X w ) − ▽ w t r ( w T X T Y )

=wtr(wwTXTX)wtr(YTXw)wtr(wTXTY) = ▽ w t r ( w w T X T X ) − ▽ w t r ( Y T X w ) − ▽ w t r ( w T X T Y )

=wtr(wwTXTX)2wtr(YTXw) = ▽ w t r ( w w T X T X ) − 2 ∗ ▽ w t r ( Y T X w )

=wtr(wIwTXTX)2wtr(YTXw) = ▽ w t r ( w I w T X T X ) − 2 ∗ ▽ w t r ( Y T X w )

=(XTXwI+XTXIw)2wtr(YTXw) = ( X T X w I + X T X I w ) − 2 ∗ ▽ w t r ( Y T X w )

=2XTXw2XTY = 2 ∗ X T X w − 2 ∗ X T Y

  • 注:
    • 这里应用 Atra(AB)=BT ▽ A t r a ( A B ) = B T

三. 机器学习中常用的矩阵求导

  • 矩阵/向量求导问题中要明确是什么量对什么量求导,得到的是什么形式的量

    • 实值函数向量求导,结果是同样维度和方向向量
    • 实值函数矩阵求导,结果是同样维度矩阵
  • 重要的矩阵求导公式:公式证明可以用微分分解迹技巧证明。

    • xTAxx=(AT+A)x ∂ x T A x ∂ x = ( A T + A ) x

    • xTxx=2x ∂ x T x ∂ x = 2 x

    • βTxx=β ∂ β T x ∂ x = β

    • xTβx=β ∂ x T β ∂ x = β

  • 证明第一条公式:
    d(xTAx)=d(xT)Ax+xTd(Ax) d ( x T A x ) = d ( x T ) A x + x T d ( A x )
    =(Ax)Tdx+xT(AT)Tdx = ( A x ) T d x + x T ( A T ) T d x
    =(xTAT+xTA)dx = ( x T A T + x T A ) d x
    则:

    xTAxx=(xTAT+xTA)T=(AT+A)x ∂ x T A x ∂ x = ( x T A T + x T A ) T = ( A T + A ) x

  • 例子:线性回归问题中由目标函数 dJ(w) d J ( w ) 求解最佳参数向量 w w 问题

wJ(w) ▽ w J ( w )

=w(XwY)T(XwY) = ▽ w ( X w − Y ) T ( X w − Y )

=w(wTXTXwYTXwwTXTY+YTY) = ▽ w ( w T X T X w − Y T X w − w T X T Y + Y T Y )

=w(wTXTXw)w(YTXw)w(wTXTY) = ▽ w ( w T X T X w ) − ▽ w ( Y T X w ) − ▽ w ( w T X T Y )

=2XTXwXTYXTY = 2 ∗ X T X w − X T Y − X T Y

=2XTXw2XTY = 2 ∗ X T X w − 2 ∗ X T Y
- 注:求导公式忘了可以用微分转换和迹技巧推导

参考文章:矩阵求导公式

参考文章:矩阵求导术
参考视频:吴恩达机器学习课程

参考文章:重要矩阵求导的公式

你可能感兴趣的:(数学基础)