二元函数对xy同时求导_矩阵求导与矩阵微分

矩阵求导与矩阵微分

符号定义

​ 使用大写的粗体字母表示矩阵

​ 使用小写的粗体字母表示向量

,这里默认为列向量

​ 使用小写的正体字母表示标量

需要明白的是,矩阵求导的意义在哪来,我们回想一下函数求导的意义,最大的作用就是寻找极值,导数为0的位置就是函数极值位置,某个点的导数代表梯度下降的方向。

0.布局约定

​ 当向量对于向量的求导的时候,通常会有两种结果,出现不同结果的原因是所使用的的布局不同。通常布局(Layout)有两种,分子布局(numerator layout)分母布局(denominator layout),简单来说,两种区别在于:

  • 分子布局:分子为向量或者分母为向量
  • 分母布局,分子为向量或者分母为向量

注意到分子布局与分母布局只是相差一个转置。我们考虑的大多数问题都是以函数自变量为一个矩阵或者向量(我们使用列向量),函数值为一个数,采用分母布局,得到的结果的维度将于自变量相同,所以下面都采用分母布局。

1.课本上的定义

在开始之前,先看一下戴华老师的《矩阵论》里面关于矩阵微分的描述:

矩阵

的导数

​ 矩阵

的导数可以表示成:

函数对矩阵的导数

​ 设

元函数
,定义
对矩阵
的导数为:

函数矩阵对矩阵的导数

​ 设

元函数
定义函数矩阵:

的的导数如下:

其中

2.函数值为数

​ 本节中我们考虑的问题是求

或者
,说白了就是一些变量到一个数的函数映射,在该情况下,
矩阵求导就是为了找到这些变量的具体的值,使得这个函数映射取得极值

矩阵求导就为了寻找

2.1 通过定义求解例——最小二乘问题

​ 以上我们知道了矩阵求导的定义,也明确了有两种基本的布局,由于在本文中,我们求解的问题通常是函数值为一个数,自变量为矩阵,目的是求矩阵变化对函数值的影响,导数应该维度与自变量相同,所以采用分母布局。一个最经典的问题就是最小二乘问题

​ 最小二乘问题是为了求解方程

,其中
。为了求解
,映射到一个数,当满足
时候,这个数取极值。构造如下映射:

很显然,这个数只有在满足测量的情况下,取得极值0。求极值就需要求导,求

对于
的导数有两种方法,首先最简单的一种就是写成定义形式:

所以有:

其中:

上式展示的是导数的每一行,

的求和可以看成是两个向量的内积,特别要注意,只利用的是分母布局,得到的是一个列向量,对于
需要转置,
,得到:

2.2 更简单的解法——矩阵微分

​ 可以看出,使用定义写法非常麻烦,需要把每个分量都写出来,而且特别容易出错,有没有更简单的方法,那是肯定的,可以使用矩阵微分的方法。

因为这里面都是数,可以写成:

可以更快得到最终结果。

​ 该简单的方法主要用到了矩阵微分的方法,矩阵微分主要有以下几种:

  • 加减乘运算,转置,求迹:

  • 求逆运算:

​ 简单证明:

  • 哈达玛积,也就是一般说的逐元素乘,即

  • 逐元素函数,其中

​ 接下来将导数与微分联系起来。我们先考虑对于一个二元函数

导数与微分的联系:

对于一个函数矩阵

,类似的,有:

写成矩阵形式就是:

注意到,如果矩阵降维成向量,上式子直接变成了

​ 结合求迹的技巧,可以更加方便地计算求导:

  • 标量求迹:
  • 转置:
  • 线性:
  • 乘法交换:

2.3 更多的例子

  1. 首先给出一个非常简单的例子:

    直接求迹,可以得到:
    ,所以可以得到
  2. 再给出一个更加复杂的例子,这个例子中会出现哈达玛积:

计算其导数,有

这里利用了哈达玛积的交换性,式子中的
表示将向量变成对角矩阵。所以可以得到:
  1. 还有一些例子可以见知乎上大佬的文章: 矩阵求导术(上)

写在最后

​ 本文简单介绍了矩阵求导的一些相关计算方法,本文的主要目的是通过矩阵求导寻找极值问题,为了帮助大家梳理,我给出了以下思维导图:

二元函数对xy同时求导_矩阵求导与矩阵微分_第1张图片

未完待续。。。

以后有机会我还会更新寻找极值的一些常见方法,主要包括梯度下降法牛顿法。希望能够帮到大家。

你可能感兴趣的:(二元函数对xy同时求导,分类变量,哑变量矩阵,指标矩阵)