机器学习中经常涉及到一些优化工作,优化时又涉及矩阵、向量的Frobenius 范数(Frobenius-Norm),这个F范数又可以转化成矩阵自乘求迹trace的形式,然后对trace求导。这块没学过矩阵论的话,有时候经常会感觉到困惑。所以这里找到一篇文章,有助于理解这块的内容。同时我也在一些地方留了笔记,更有助于理解。
Errata:
抱歉在F-Norm那块留的墨迹有错误,当时我想算一下Linear Regression求导,所以在那块写了一点墨迹,但是写的有误,这里重新写一下:
Y Y Y是n维列向量, θ \theta θ是n维列向量, X X X是mxn维矩阵:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxSPJdVWpZUbZhmRyMGaOhVW6ZkMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zROBlLzIjM0IzN0QTMxEzMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
其实这里最重要的就是那个(4)和(5)式,搞定了这个,其实就明白所有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