天天看点

机器学习中对矩阵的迹(trace)求导的一些操作

  机器学习中经常涉及到一些优化工作,优化时又涉及矩阵、向量的Frobenius 范数(Frobenius-Norm),这个F范数又可以转化成矩阵自乘求迹trace的形式,然后对trace求导。这块没学过矩阵论的话,有时候经常会感觉到困惑。所以这里找到一篇文章,有助于理解这块的内容。同时我也在一些地方留了笔记,更有助于理解。

Errata:

抱歉在F-Norm那块留的墨迹有错误,当时我想算一下Linear Regression求导,所以在那块写了一点墨迹,但是写的有误,这里重新写一下:

Y Y Y是n维列向量, θ \theta θ是n维列向量, X X X是mxn维矩阵:

机器学习中对矩阵的迹(trace)求导的一些操作
机器学习中对矩阵的迹(trace)求导的一些操作
机器学习中对矩阵的迹(trace)求导的一些操作

其实这里最重要的就是那个(4)和(5)式,搞定了这个,其实就明白所有trace的求导操作都是可以怎么弄了。只要把trace转化为求和式,就转化为我们熟悉的求导了。

机器学习中对矩阵的迹(trace)求导的一些操作
机器学习中对矩阵的迹(trace)求导的一些操作
机器学习中对矩阵的迹(trace)求导的一些操作
机器学习中对矩阵的迹(trace)求导的一些操作
机器学习中对矩阵的迹(trace)求导的一些操作

其实总的来看,线性的情况下用的比较多的是(9)、(11)、

(17),这个搞定,很多线性情况都可以解决了。

这里再写一下:

(9):

∂ t r ( A X B ) ∂ X = ( B A ) T = A T B T \frac{\partial{tr(AXB)}}{\partial{X}} = (BA)^{T}=A^TB^T ∂X∂tr(AXB)​=(BA)T=ATBT

(11):

∂ t r ( A X T B ) ∂ X = B A \frac{\partial{tr(AX^TB)}}{\partial{X}} = BA ∂X∂tr(AXTB)​=BA

继续阅读