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

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

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

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

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

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

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

1.1 实值函数对向量的微分

image

1.2 实值函数对矩阵的微分

image

1.3 上面两个公式的应用

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

    • 例子: 线性回归

    • d J ( w )

      = d ( X w Y ) T ( X w Y ) + ( X w Y ) T d ( X w Y )

      = 2 ( X w Y ) T X d w `

      = ( 2 X T X w 2 X T Y ) T d w

      因此, w J ( w ) = 2 X T X w 2 X T Y

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

1.4 运算法则

  • 加减法
    d ( X ± Y ) = d X ± d Y
  • 矩阵乘法
    d ( X Y ) = d X Y + X d Y
  • 转置
    d ( X T ) = ( d X ) T
  • d tr ( X ) = tr ( d X )
  • d X 1 = X 1 d X X 1
    此式可在
    X X 1 = I
    两侧求微分来证明。

1.5 迹技巧

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

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

性质1 t r a = a , t r ( a A ) = a t r A ,a为标量
性质2 t r ( A + B ) = t r A + t r B

性质3 t r A B = t r B A , t r A B C = t r C A B = t r B C A

性质4 t r A = t r A T

性质5 A t r ( A B ) = B T
性质6 A t r ( A B A T C ) = C A B + C T A B T


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

w J ( w ) = w t r J ( w )

= w t r ( X w Y ) T ( X w Y )

= 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
    • w J ( w ) 是标量J(w)对一个向量 w 求导,其结果是一个向量,维数和w向量相同。

w J ( w ) = w t r J ( w )

= w t r ( X w Y ) T ( X w Y )

= w t r ( w T X T X w Y T X w w T X T Y + Y T Y )

= w t r ( w T X T X w ) w t r ( Y T X w ) w t r ( w T X T Y )

  • 注:

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

    t r ( A + B ) = t r A + t r B

w J ( w ) = w t r J ( w )

= w t r ( X w Y ) T ( X w Y )

= w t r ( w T X T X w Y T X w w T X T Y + Y T Y )

= w t r ( w T X T X w ) w t r ( Y T X w ) w t r ( w T X T Y )

= w t r ( w w T X T X ) w t r ( Y T X w ) w t r ( w T X T Y )

= w t r ( w w T X T X ) 2 w t r ( Y T X w )

  • 注:
    • 这里应用 t r A B = t r B A ( A = w T X T X , B = w )
    • 以及 t r A T = t r A ( A = w T X T Y )

w J ( w ) = w t r J ( w )

= w t r ( X w Y ) T ( X w Y )

= w t r ( w T X T X w Y T X w w T X T Y + Y T Y )

= w t r ( w T X T X w ) w t r ( Y T X w ) w t r ( w T X T Y )

= w t r ( w w T X T X ) w t r ( Y T X w ) w t r ( w T X T Y )

= w t r ( w w T X T X ) 2 w t r ( Y T X w )

= w t r ( w I w T X T X ) 2 w t r ( Y T X w )

= ( X T X w I + X T X I w ) 2 w t r ( Y T X w )

  • 注:
    • 这里应用
      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
    • 以及 t r A T = t r A ( A = w T X T Y )

w J ( w ) = w t r J ( w )

= w t r ( X w Y ) T ( X w Y )

= w t r ( w T X T X w Y T X w w T X T Y + Y T Y )

= w t r ( w T X T X w ) w t r ( Y T X w ) w t r ( w T X T Y )

= w t r ( w w T X T X ) w t r ( Y T X w ) w t r ( w T X T Y )

= w t r ( w w T X T X ) 2 w t r ( Y T X w )

= w t r ( w I w T X T X ) 2 w t r ( Y T X w )

= ( X T X w I + X T X I w ) 2 w t r ( Y T X w )

= 2 X T X w 2 X T Y w

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

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

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

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

    • x T A x x = ( A T + A ) x

    • x T x x = 2 x

    • β T x x = β

    • x T β x = β

  • 证明第一条公式:
    d ( x T A x ) = d ( x T ) A x + x T d ( A x )
    = ( A x ) T d x + x T ( A T ) T d x
    = ( x T A T + x T A ) d x
    则:

    x T A x x = ( x T A T + x T A ) T = ( A T + A ) x

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

w J ( w )

= w ( X w Y ) T ( X w Y )

= w ( w T X T X w Y T X w w T X T Y + Y T Y )

= w ( w T X T X w ) w ( Y T X w ) w ( w T X T Y )

= 2 X T X w X T Y X T Y

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

参考文章:矩阵求导公式

参考文章:矩阵求导术

参考视频:吴恩达机器学习课程

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

猜你喜欢

转载自blog.csdn.net/promisejia/article/details/80159619