矩阵求导好像读书的时候都没学过,因为讲矩阵的课程上不讲求导,讲求导的课又不提矩阵。
如果从事机器学习方面的工作,那就一定会遇到矩阵求导的东西。
维基百科上:http://en.wikipedia.org/wiki/Matrix_calculus
根据Y与X的不同类型(标量==实数,向量,矩阵),给出了具体的求导公式,以及一堆相关的公式,查起来都费劲。
其实在实际的机器学习工作中,最常用到的就是标量函数y对向量X的求导,定义如下(其实就是y对向量X的每一个元素求导):
标量函数对矩阵X求导也类似:
因为机器学习(这里指的是有监督的机器学习)的一般套路是给定输入X,选择一个模型f(X)作为决策函数,由f(X)预测出Y'。而得到f(X)的参数θ(往往是向量),需要定义一个loss函数(一般都是实值函数),描述当前f预测值Y'与实际的Y值的接近程度。模型学习的过程就是求使得 loss函数 L(f(X),Y)最小的参数θ。这是一个最优化问题,实际应用中都是用和梯度相关的最优化方法,如梯度下降,共轭梯度,拟牛顿法等等。
其实只要掌握上面这个公式,就能搞定很多问题了。
为了方便推导,下面列出一些机器学习中常用的求导公式,其中andrew ng那一套用矩阵迹的方法还是挺不错的,矩阵的迹也是标量的,而一个标量的迹等于其本身,实际工作中可以将loss函数转化成迹,然后在求导,可能会简化推导的步骤。(实数==标量)
作者:7125messi
链接://www.greatytc.com/p/34e5aebf3b13
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。