标签:
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向量,改成矩阵,则矩阵的梯度就是……(导数矩阵)
//所以与其说是矩阵求导,不如说是关于矩阵的函数对矩阵的每一个元素求导,即对函数求导并表示成矩阵。
好的,这段结束。
标签:
原文地址:http://www.cnblogs.com/travelller-ml/p/4926591.html