matrix calculator

1.matrix derivative

2.trace operator

3.normal equation

 

特别感谢在线LaTeX生成器


 

2.1 Matrix derivative 

//这一节上的已经凌乱了……一点一点整理吧

  首先,明确几个概念。

  方向导数&梯度(滚混去看高数吧书上都有你上学期到底学了些屎)

    定义就不说了,通俗的来说,方向导数是给定一个角度(或者一个单位向量e 表示为(cos a,cos b)a+b=pi/2)或者说方向,函数在该方向的导数。其值为函数在某方向的函数变化率,即单位长度下函数的改变量。可以使任意方向,所以一个函数上的一点有无数个方向导数。

    梯度指的是方向导数中函数变化率最大的方向所对应的向量。其值为基底分别乘该方向的函数偏导相加(注意是向量不是标量)。

 

  接着我们回到课堂内容吧。(课堂内容会比讲义详细一点,尽管字幕有可能会稍微的不准确)以下这段真的好难理解。(导数和梯度到底是什么关系啊)

 

  J is a function of a vector of parameters theta,// J是系数theta向量的函数

  define the derivative of the gradient of J with respect to theta //定义J关于theta的梯度里的每一个导数(梯度方向的导数)

  as self of vector//它本身也是一个向量(列向量,每一个元素是J对于某方向的偏导)

  and so this is going to be an (n+1) dimensional vector//这将是一个n+1维的向量 下标从0-n

  导数是这个形式。

  所以可以把梯度下降法写成如下形式:

    theta := theta - alpha * gradient;(theta,gradient均为n+1维向量)

  //所以现在可以明白,梯度可以表示成向量,每一个系数是函数在每一维度上的偏导,

  //向量的导数即为向量的梯度

  

  //给定一个函数J,表示为一个列向量[theta0,theta1,theta2,.....theta n]'(自变量为theta序列)(*[x0,x1,x2,....xn]=J,x为theta系数),该向量的导数即为函数的导数,就是函数在每个方向上的偏导,即为函数对每个theta的偏导,即为向量(或者说函数)的梯度。

  //注:视theta为向量,x为系数。

 

  更普遍的来说,

  已知函数f:Matrix->real number  ,f(A) A=R^m*n

  so if you have a function ,F of A(N*N),

  so this function is matched from matrices to real numbers,the function that takes this input to matrix

  define the derivative with respect to F of the matrix A //定义关于A矩阵的函数F的导数 标记为 倒三角F(A)

  输入的矩阵的梯度,是个矩阵,把它定义为矩阵……,所以关于f的导数 本身也是一个矩阵,矩阵中包含了f关于A的每个元素的偏导数(A的每个元素视为一个小矩阵) 

  so thes derivation of F with respect to A is itself a matrix,

  and the matrix contains all the partial derivatives of F with respect to the elements of A

    

  //现在还是有一个函数,更普遍的是,将上面的theta向量,改成矩阵,则矩阵的梯度就是……(导数矩阵)

  //所以与其说是矩阵求导,不如说是关于矩阵的函数对矩阵的每一个元素求导,即对函数求导并表示成矩阵。

  

  好的,这段结束。接下来是迹运算。

 

2.2 Trace operator

   1.basic equation:

  

  for equation 

  证明

  //不知道你们看懂了没有……反正我是没看懂……

  //然而……过程中出现了一步矩阵乘矩阵的转置……虽然我还是没看懂……但是有人懂……链接

 

  2.设f(A)=tr AB,则 应用上面的知识可得,f()对矩阵求导过程。

 

  以d(tr(BX))/dX为例,B为m*n、X为n*m的矩阵.
    1) 设B的第i,j个元素为bij,X的第i,j个元素为xij,则BX的第i,j个元素yjj为(k从1到n求和)bik*xkj.
    2) 于是有tr(BX)为对BX的对角线上的元素,也就是第jj个元素yjj对j从1到n求和,也就是两层求和(分别将bjk*xkj对j和k),将其看做xij的函数.
    3) 对矩阵X求导,就是对矩阵X的每个元素xij求偏导,放到与X大小相同的矩阵的对应位置上.此时,我们令tr(BX)对xij求偏导.虽然前面求和求的很多,但tr(BX)中,与xij相乘的只有bji.因此,对xij求偏导得到的是bji.
    4) 综上,d(tr(BX))/dX得到的矩阵的第i,j个元素是bji,也就是说,d(tr(BX))/dX的结果是B的转置.

 

2.3 Normal equation

  //讲义已经很详细了,我就不赘述了。

posted @ 2015-11-01 00:54  travelller_ml  阅读(473)  评论(0编辑  收藏  举报