机器学习中常用的矩阵向量求导公式

版权声明:作者:Rookiekk 联系邮箱:[email protected] 欢迎转载或分享,但请务必声明文章出处。 https://blog.csdn.net/qq_18888869/article/details/82814258

学习机器学习的时候有很的线性代数的知识,其中有一些矩阵向量求导的东西不是很熟悉,今天查了很久觉得做一个总结。

 

定义1.梯度(Gradient) [标量对列向量微分]

f(x)是一个变量为x的标量函数,其中x=(x_{1}...x_{n})^{T}。那么定义f(x)x的梯度为\frac{\mathrm{d} f(x)}{\mathrm{d} x}:

 定义2. 海森矩阵(Hessian matrix)[海森矩阵是二阶梯度]

f(x)是一个变量为x的二阶可微分的标量函数,其中x=(x_{1}...x_{n})^{T}。那么定义f(x)x的海森矩阵为\frac{\mathrm{d} ^{2}f(x)}{\mathrm{d} x\mathrm{d} x^{T}}:

 海森矩阵是对称阵。

 定义3. 雅可比矩阵(Jacobian matrix)[雅可比矩阵本质上是一阶梯度,向量对向量微分]

f(x)是一个K*1的列向量函数

 其中x=(x_{1}...x_{n})^{T}。那么定义f(x)x的雅可比矩阵为\frac{\mathrm{d} f(x)}{\mathrm{d} x^{T}}:

è¿éåå¾çæè¿°

定义4. [矩阵对标量微分]

M\times N的矩阵A的元素是一个向量x的元素x^{_{q}}的函数,定义\frac{\partial A}{\partial x_{q}}为:

矩阵的二阶微分:

因为机器学习(这里指的是有监督的机器学习)的一般套路是给定输入X,选择一个模型f作为决策函数,由f(X)预测出Y'。而得到f的参数θ(往往是向量),需要定义一个loss函数(一般都是实值函数),描述当前f预测值Y'与实际的Y值的接近程度。模型学习的过程就是求使得 loss函数 L(f(X),Y)最小的参数θ。这是一个最优化问题,实际应用中都是用和梯度相关的最优化方法,如梯度下降,共轭梯度,拟牛顿法等等。


其实只要掌握上面这个公式,就能搞定很多问题了。


为了方便推导,下面列出一些机器学习中常用的求导公式,其中andrew ng那一套用矩阵迹的方法还是挺不错的,矩阵的迹也是实值的,而一个实数的迹等于其本身,实际工作中可以将loss函数转化成迹,然后在求导,可能会简化推导的步骤。

 

 证明:二次函数f(x) = x^{T}Vx, 其中x=(x_{1}...x_{n})^{T}k\times k矩阵V。则f(x)k\times 1的列向量x的微分为:\frac{\mathrm{d} (x^{T}Vx)}{\mathrm{d} x} = (V+V^{T})x,以k=3的情况举例说明: 

 矩阵微分的应用(看了其他博客内容,留下来回顾)

 

 本文主要参考了https://blog.csdn.net/yc461515457/article/details/49682473

                   http://blog.sina.com.cn/u/2393639721

猜你喜欢

转载自blog.csdn.net/qq_18888869/article/details/82814258
今日推荐