![优化理论与实用算法](https://wfqqreader-1252317822.image.myqcloud.com/cover/413/46055413/b_46055413.jpg)
2.2 多维导数
梯度是导数在多元函数的推广。它代表了函数的局部斜率,从而能够预测从一点的任意方向移动一个小的步长后的效果。回想一下,导数是切线的斜率。梯度指向切线超平面的最陡上升方向,如图2.3所示。n维空间中的切线超平面是满足以下条件的点集:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-022-2.jpg?sign=1739310907-R0EkOvplC0ORyv5DhvE5zQcKJtnUVIBT-0-1cf1654afdde31646417ee89ad47307b)
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-2d3.jpg?sign=1739310907-PoUjcVMrko9OiJb8ZQgnzPIHoFjqVMyy-0-cbfd65ec11a7a93960bc19f93532e2bd)
图2.3 梯度的每个分量都定义了一条局部切线。这些切线定义了局部切线超平面。梯度向量指向最大增长方向(见彩插)
其中w为向量,b为标量。一个超平面具有n-1个维度。
f在x处的梯度写作∇f(x),它是一个向量。该向量由f关于它的每一个分量的偏导数[1]组成:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-022-3.jpg?sign=1739310907-VPJtSpggdLrhuGPHSrJXNjhQzt8TY7I0-0-82e889584973bb756f7a266d6c7bfa76)
一般规定列向量由逗号分隔。例如,。例2.2展示了如何计算特定点上函数的梯度。
多元函数的黑塞矩阵是一个包含关于所有输入的二阶导数的矩阵[2]。二阶导数包含函数局部曲率的信息。
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-022-4.jpg?sign=1739310907-Bhz1ac1hXuAyLgnuiRbuLHByX9g2G7gR-0-88d606b979250e7371474d20a152e5f1)
例2.2 计算特定点的梯度
计算当c=[2,0]时,f(x)=x1sin(x2)+1的梯度。
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-1.jpg?sign=1739310907-2eFF8X9hfPIuwE59XCJ5LTgQmgEpAJMT-0-dd2ad6503858c75bfa432bbde4d97765)
多元函数f的方向导数∇sf(x)是x以速度s移动时f(x)的瞬时变化率。该定义与一元函数导数的定义紧密相关[3]:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-2.jpg?sign=1739310907-BaFtuPhuf6lv5wQceFsrdjBCyCYQ5d0K-0-ace558525d7eaa7698a53ad06be3a4e6)
方向导数可以使用函数的梯度来计算:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-3.jpg?sign=1739310907-mVStQcXRRYv6GV52MIgzbKeQdU4RRkRV-0-7c8a3a2f2087b45b174f1d68a579115f)
计算方向导数∇sf(x)的另一种方法是定义g(α)≡f(x+αs),然后计算g′(0),如例2.3所示。
方向导数在梯度方向上最高,而在与梯度相反的方向上最低。这种方向依赖性源于方向导数定义中的点积,以及梯度是局部切线超平面的事实。
例2.3 计算方向导数
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-2z1.jpg?sign=1739310907-2R2LjSPB7899ejNf2BwZm7bdCNz1mPs1-0-3954babbb1a2819f742088e0a341b241)
我们希望计算出s=[-1,-1]方向上,f(x)=x1x2在x=[1,0]处的方向导数:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-4.jpg?sign=1739310907-T4SVvzcbbZ2X6pe9bN9p5h5XWJmLdwMz-0-0cabadc1822677402382e25f423d9de1)
我们还可以这样计算方向异数:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-5.jpg?sign=1739310907-4INyp8ZPBc9OwBg6XX6idiUr0OZN082T-0-791659aa6e2a1b119e2c9391286150b9)
[1] 函数关于变量的偏导数是假定所有其他输入变量保持不变的导数,记为∂f/∂x。
[2] 只有当f的二阶导数在其取值点的邻域中都连续时,黑塞矩阵才是对称的:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-022-5.jpg?sign=1739310907-goF45uGhEWN0RbazoX9e4LP0aKOR1nzL-0-bdaf95480d2e907774ef75354e0e94a1)
[3] 有些文献要求s是单位向量。例如:
G. B.Thomas,Calculus and Analytic Geometry,9th ed. Addison-Wesley,1968.