码迷,mamicode.com
首页 > 其他好文 > 详细

matrix calculator

时间:2015-11-01 01:38:27      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:

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向量,改成矩阵,则矩阵的梯度就是……(导数矩阵)

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

  好的,这段结束。

 

matrix calculator

标签:

原文地址:http://www.cnblogs.com/travelller-ml/p/4926591.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!