第 08 章 性能曲面与最优点
对应原书第 8 章。从这一章起进入性能学习(performance learning):给网络定义一个衡量好坏的数值指标,再在权值空间里找让它最小的点。本章只回答"最优点长什么样、怎么判断",下一章(原书第 9 章)回答"怎么找到它"。Taylor 展开、梯度、Hessian、一二阶最优性条件这些通用内容与第 04 册第 02 章(无约束优化基础)重叠,本章压缩通用部分,重点放在原书特有的视角:用 Hessian 的特征值和特征向量读懂二次性能曲面的形状,以及线性网络的平方误差为什么一定是二次曲面。
学习目标
读完本章,你应当能够:
- 说明性能学习的两步:选性能指标、在参数空间中搜索;写出性能指标在某点的二阶 Taylor 展开,指出梯度和 Hessian 的位置。
- 计算一阶、二阶方向导数,说明最陡方向是梯度方向、等高线切线方向斜率为零。
- 区分强极小、弱极小、全局极小、鞍点;陈述并推导一阶必要条件、二阶必要条件和二阶充分条件。
- 对二次函数 \(\frac12\mathbf{x}^T\mathbf{A}\mathbf{x}+\mathbf{d}^T\mathbf{x}+c\),求梯度、Hessian、驻点,并用 Hessian 的特征值/特征向量画出等高线草图、判断曲面类型。
- 推导"线性神经元 + 平方误差 = 二次性能曲面",求出最优权值。
- 把均值–方差组合优化看成二次性能曲面,用 Hessian 的条件数解释最优权重的不稳定性。
读前导读
这一章在解决什么问题
结论先说:训练神经网络就是"找一个函数的最低点"。本章只回答一个问题:怎样判断一个点是不是最低点、最低点附近的地形长什么样。工具是二阶 Taylor 展开——你其实早就在用:债券价格变化 \(\Delta P/P\approx-D\,\Delta y+\frac12C(\Delta y)^2\) 就是价格对收益率的二阶 Taylor 展开,久期 \(D\) 对应一阶导数(梯度),凸性 \(C\) 对应二阶导数(Hessian)。本章把它推广到"很多个变量同时变化":梯度是一个向量(每个参数一个斜率),Hessian 是一个矩阵(每对参数一个曲率)。
本章有两个和你直接相关的结论。第一,线性神经元 + 误差平方和,性能曲面一定是一个"碗"(二次函数),碗底就是 OLS 解——所以线性回归是最简单的神经网络训练问题,答案你早就会算。第二,均值–方差组合优化也是同一种碗,碗的形状由协方差矩阵决定;资产高度相关时碗底是一条又平又长的山谷,最优权重沿谷底大幅漂移,这就是 Markowitz 优化"误差放大"的几何解释。
需要先想起来的数学
- 导数与 Taylor 展开。\(F(x)\approx F(x^*)+F'(x^*)(x-x^*)+\frac12F''(x^*)(x-x^*)^2\):用"当前值 + 斜率 × 位移 + 曲率 × 位移平方的一半"近似函数。例:\(F(x)=e^x\) 在 0 处,\(e^{0.1}\approx1+0.1+0.005=1.105\)(真值 1.10517)。见 第 00 册第 02 章 导数与泰勒展开(含久期凸性的对照)。
- 偏导数、梯度与 Hessian。偏导数 \(\partial F/\partial x_i\) 是"只动 \(x_i\)、其余不动"时的导数。例:\(F=x_1^2+3x_1x_2\),\(\partial F/\partial x_1=2x_1+3x_2\),\(\partial F/\partial x_2=3x_1\)。把所有偏导排成列向量就是梯度 \(\nabla F\)(读作 nabla F 或"梯度 F");二阶偏导排成矩阵就是 Hessian \(\nabla^2F\),本例为 \(\begin{bmatrix}2&3\\3&0\end{bmatrix}\)。见 第 00 册第 05 章 多元微积分与优化。
- 二次型与正定。\(\mathbf{x}^T\mathbf{A}\mathbf{x}=\sum_{i,j}a_{ij}x_ix_j\) 是一个数。若对一切非零 \(\mathbf{x}\) 都有 \(\mathbf{x}^T\mathbf{A}\mathbf{x}>0\),称 \(\mathbf{A}\) 正定;\(\ge0\) 称半正定。组合方差 \(\mathbf{w}^T\boldsymbol\Sigma\mathbf{w}\ge0\) 就说明协方差矩阵半正定。判断方法:对称矩阵的特征值全正 ⇔ 正定。见 第 00 册第 06 章 线性代数速成。
- 特征分解(第 05 章)。对称矩阵 \(\mathbf{A}=\mathbf{B}\boldsymbol\Lambda\mathbf{B}^T\),\(\mathbf{B}\) 的列是标准正交的特征向量,\(\mathbf{B}^T\mathbf{B}=\mathbf{I}\)。
本章符号补充:\(\nabla F(\mathbf{x}^*)^T(\mathbf{x}-\mathbf{x}^*)\) 是梯度与位移的内积,即"各方向斜率 × 各方向位移"之和;\(F^{(n)}\) 是 \(n\) 阶导数,\(n!\) 是 \(1\times2\times\cdots\times n\);"⇔"读作"当且仅当",两边互为充要条件。
怎么读这一章
核心必读是 8.2.2 节(向量 Taylor 展开)、8.4 节(最优性条件,记住两张小表)、8.5 节(二次函数,尤其 8.5.2 特征值就是曲率)和 8.6 节(线性网络的性能曲面)。8.3 节方向导数读懂"梯度方向最陡、切线方向为零"两个结论即可。8.2.1 节 \(\cos x\) 的例子和 8.4.1 节几个非二次例子可以快速浏览。8.7 节量化实战建议细读,它是整章最有实际价值的部分。
8.1 性能学习
到目前为止的学习规则分两类:联想学习(第 07 章 Hebb 学习,后面还有第 15 章)和竞争学习(第 15 章,原书第 16 章)。第三类是性能学习:调整网络参数,使网络的"性能"最优。原书第 8–14 章都属于这一类,它包括第 10 章的 LMS 和第 11 章的反向传播,是今天神经网络训练的主流。
性能学习分两步:
- 定义"性能":找一个定量的性能指标(performance index)\(F(\mathbf{x})\),网络表现好时小、表现差时大。\(\mathbf{x}\) 是所有权值和偏置排成的向量。本章和下一章假定指标已经给定,第 10、11、13 章讨论怎样选择。
- 搜索参数空间:调整 \(\mathbf{x}\) 使 \(F(\mathbf{x})\) 减小。本章研究 \(F\) 的曲面——性能曲面(performance surface)——的形状,以及保证极小点存在的条件。
量化里几乎所有"拟合"都是性能学习:回归最小化残差平方和,GARCH 最大化似然(最小化负对数似然),组合优化最小化风险减收益,策略参数优化最大化夏普率。本章的工具对它们全部适用。
8.2 Taylor 展开、梯度与 Hessian
8.2.1 标量情形
\(F(x)\) 在名义点 \(x^*\) 处的 Taylor 级数为
截取有限项来近似 \(F\)。
例(原书 8.2–8.6) \(F(x)=\cos x\) 在 \(x^*=0\) 处:\(\cos x=1-\frac12x^2+\frac1{24}x^4-\cdots\)。零阶近似 \(F_0=1\);一阶近似与零阶相同(一阶导为零);二阶近似 \(F_2=1-\frac12x^2\);四阶近似 \(F_4=1-\frac12x^2+\frac1{24}x^4\)。\(x\) 很接近 0 时三者都准确;远离时只有高阶近似准确,阶数越高准确范围越宽——因为高次项含 \((x-x^*)\) 的高次幂,\(x\) 越接近 \(x^*\) 它们越快地变小。
对比(原书 P8.1) 同一个 \(\cos x\) 在 \(x^*=\pi/2\) 处展开:\(\cos x=-(x-\frac\pi2)+\frac16(x-\frac\pi2)^3-\cdots\)。这里零阶近似 \(F_0=0\) 很差,一阶近似 \(F_1=\frac\pi2-x\) 在相当宽的范围内都准确。展开点的选择决定了哪一阶近似有用:在极值点附近,一阶项消失,二阶项决定局部形状——这正是我们在极小点附近关心的。
8.2.2 向量情形
性能指标是全部 \(n\) 个参数的函数。在 \(\mathbf{x}^*\) 处展开:
其中梯度(gradient)和 Hessian 矩阵为
梯度和 Hessian 是理解性能曲面的两个核心对象。Taylor 定理的严格形式(含余项)见第 04 册第 02 章。
金融直觉:式 (8.9) 就是"多因子版的久期–凸性公式"。设债券组合价格依赖两条关键利率 \(y_1,y_2\)(比如 2 年和 10 年)。价格变化 \(\approx\) 各关键利率久期 × 各自变动之和(梯度项)+ \(\frac12\) × 二阶项。二阶项 \(\frac12\Delta\mathbf{x}^T\nabla^2F\Delta\mathbf{x}\) 展开为 \(\frac12\big(F_{11}\Delta x_1^2+2F_{12}\Delta x_1\Delta x_2+F_{22}\Delta x_2^2\big)\),其中 \(F_{11},F_{22}\) 是各自的凸性,交叉项 \(F_{12}\) 是"两个利率一起动"时额外的曲率(交叉凸性)。Hessian 的对角元是普通凸性,非对角元是交叉凸性。Hessian 一定是对称的(\(F_{12}=F_{21}\)),因为光滑函数的二阶偏导与求导顺序无关。
8.3 方向导数
梯度的第 \(i\) 个分量是沿 \(x_i\) 轴的斜率,Hessian 的第 \(i\) 个对角元是沿 \(x_i\) 轴的曲率。沿任意方向 \(\mathbf{p}\):
除以 \(\|\mathbf{p}\|\) 是为了让结果只依赖方向、不依赖长度。
推导拆解:方向导数公式从 Taylor 展开直接读出。沿单位方向 \(\mathbf{u}=\mathbf{p}/\|\mathbf{p}\|\) 走距离 \(s\),代入式 (8.9):\(F(\mathbf{x}+s\mathbf{u})\approx F(\mathbf{x})+s\,\mathbf{u}^T\nabla F+\frac12s^2\,\mathbf{u}^T\nabla^2F\,\mathbf{u}\)。把它看成 \(s\) 的一元函数,\(s\) 的系数就是一阶导数 \(\mathbf{u}^T\nabla F\),\(s^2/2\) 的系数就是二阶导数 \(\mathbf{u}^T\nabla^2F\mathbf{u}\);把 \(\mathbf{u}\) 换回 \(\mathbf{p}/\|\mathbf{p}\|\) 即得式 (8.12)–(8.13)。
为什么梯度方向最陡?一阶方向导数 \(\mathbf{u}^T\nabla F=\|\nabla F\|\cos\theta\)(\(\|\mathbf{u}\|=1\),\(\theta\) 是 \(\mathbf{u}\) 与梯度的夹角)。\(\cos\theta\) 最大为 1,在 \(\theta=0\) 即沿梯度方向取到,最大斜率就是 \(\|\nabla F\|\);\(\theta=90^\circ\) 时为 0,即等高线方向;\(\theta=180^\circ\) 时最小,即负梯度方向下降最快。
例(原书 8.14–8.16) \(F(\mathbf{x})=x_1^2+2x_2^2\),点 \(\mathbf{x}^*=[0.5,0.5]^T\),梯度 \(\nabla F=[2x_1,4x_2]^T=[1,2]^T\)。沿 \(\mathbf{p}=[2,-1]^T\) 的方向导数为 \(\frac{[2\ -1][1,2]^T}{\sqrt5}=0\)。
两个结论:
- 与梯度正交的方向斜率为零。这个方向就是等高线的切线方向——沿等高线走,函数值不变。
- 最大斜率在梯度方向上,大小为 \(\|\nabla F\|\)(此例为 \(\sqrt5\approx2.24\))。这是第 9 章最速下降法的出发点:沿负梯度方向走,函数下降最快。
原书 P8.3 用这个性质求等高线的切线:\(F(\mathbf{x})=(2+x_1)^2+5(1-x_1-x_2^2)^2\) 在原点的梯度为 \([-6,0]^T\),令 \((\mathbf{x}-\mathbf{0})^T\nabla F=0\) 得切线 \(x_1=0\)。
8.4 极小点与最优性条件
8.4.1 几种极小点
- 强极小(strong minimum):存在 \(\delta>0\),使对一切 \(0<\|\Delta\mathbf{x}\|<\delta\) 有 \(F(\mathbf{x}^*)<F(\mathbf{x}^*+\Delta\mathbf{x})\)。往任何方向挪一小步,函数都严格增大。
- 全局极小(global minimum):对一切 \(\Delta\mathbf{x}\ne\mathbf{0}\) 都有 \(F(\mathbf{x}^*)<F(\mathbf{x}^*+\Delta\mathbf{x})\)。强极小只管一个小邻域,邻域外可能有更低的点,所以也叫局部极小(local minimum)。
- 弱极小(weak minimum):不是强极小,但存在 \(\delta>0\),使 \(F(\mathbf{x}^*)\le F(\mathbf{x}^*+\Delta\mathbf{x})\)。往任何方向走函数都不下降,但某些方向上函数不变。
例:
- \(F(x)=3x^4-7x^2-\frac12x+6\)(原书 8.17):两个强极小约在 \(-1.1\) 与 \(1.1\),后者是全局极小。
- \(F(\mathbf{x})=(x_2-x_1)^4+8x_1x_2-x_1+x_2+3\)(原书 8.18):两个强局部极小约在 \((-0.42,0.42)\) 与 \((0.55,-0.55)\),后者是全局极小;\((-0.13,0.13)\) 处是鞍点(saddle point)——沿直线 \(x_1=-x_2\) 是局部极大,沿与之正交的方向是局部极小。
- \(F(\mathbf{x})=(x_1^2-1.5x_1x_2+2x_2^2)x_1^2\)(原书 8.19):直线 \(x_1=0\) 上每一点都是弱极小。
8.4.2 一阶条件
在 \(\mathbf{x}^*\) 附近,\(\|\Delta\mathbf{x}\|\) 很小时 \(F(\mathbf{x}^*+\Delta\mathbf{x})\approx F(\mathbf{x}^*)+\nabla F(\mathbf{x}^*)^T\Delta\mathbf{x}\)。若 \(\nabla F^T\Delta\mathbf{x}>0\),则反方向 \(-\Delta\mathbf{x}\) 会让函数下降,与极小矛盾。所以对一切 \(\Delta\mathbf{x}\) 都要有 \(\nabla F^T\Delta\mathbf{x}=0\),即
这是局部极小的一阶必要条件(不充分)。满足它的点叫驻点(stationary point)。
8.4.3 二阶条件
驻点处一阶项为零,展开剩下 \(F(\mathbf{x}^*+\Delta\mathbf{x})=F(\mathbf{x}^*)+\frac12\Delta\mathbf{x}^T\nabla^2F(\mathbf{x}^*)\Delta\mathbf{x}+\cdots\)。若对一切 \(\Delta\mathbf{x}\ne\mathbf{0}\) 有 \(\Delta\mathbf{x}^T\nabla^2F\,\Delta\mathbf{x}>0\),即 Hessian 正定(positive definite),则 \(\mathbf{x}^*\) 是强极小。正定可用特征值检验:全部为正 ⇔ 正定;全部非负 ⇔ 半正定(positive semidefinite)。
正定只是充分条件。二阶项为零时更高阶项仍可能使函数增大,所以强极小的二阶必要条件只是半正定。
白话解释:一元时你熟悉的规则是"\(F'=0\) 且 \(F''>0\) 就是极小"。多元时 \(F''>0\) 要换成"沿每一个方向的曲率都为正",而沿方向 \(\Delta\mathbf{x}\) 的曲率正是 \(\Delta\mathbf{x}^T\nabla^2F\,\Delta\mathbf{x}\)(差一个长度因子),所以条件就是 Hessian 正定。只检查对角元为正不够:\(\begin{bmatrix}1&2\\2&1\end{bmatrix}\) 对角元都是 1,但沿 \([1,-1]^T\) 方向 \(1-2-2+1=-2<0\),是鞍点。这和组合风险一样:每只资产方差为正不保证任意多空组合方差为正,关键看整个矩阵。用特征值判断最省事:对称矩阵特征值全正 ⇔ 正定,见 8.5.2 节的解释。
例(原书 8.32–8.34) \(F(\mathbf{x})=x_1^4+x_2^2\)。唯一驻点是原点,Hessian \(\begin{bmatrix}12x_1^2&0\\0&2\end{bmatrix}\) 在原点为 \(\begin{bmatrix}0&0\\0&2\end{bmatrix}\),只是半正定。它满足必要条件,但一、二阶条件无法证明它是极小;实际上它是强极小,靠的是四阶项。
总结:
| 条件 | 内容 |
|---|---|
| 极小(强或弱)的必要条件 | \(\nabla F(\mathbf{x}^*)=\mathbf{0}\) 且 \(\nabla^2F(\mathbf{x}^*)\) 半正定 |
| 强极小的充分条件 | \(\nabla F(\mathbf{x}^*)=\mathbf{0}\) 且 \(\nabla^2F(\mathbf{x}^*)\) 正定 |
例(原书 P8.4) \(F(x)=x^4-\frac23x^3-2x^2+2x+4\)。\(F'(x)=4x^3-2x^2-4x+2=0\) 的根为 \(1,-1,0.5\)。\(F''(x)=12x^2-4x-4\):\(F''(\pm1)>0\),\(F''(0.5)=-3<0\)。故 \(\pm1\) 是强局部极小,\(0.5\) 是强局部极大。\(F(1)=4.333\),\(F(-1)=1.667\),又因最高次项 \(x^4\) 系数为正,\(|x|\to\infty\) 时 \(F\to\infty\),所以 \(-1\) 是全局极小。**"比较所有局部极小 + 检查边界/无穷远处的行为"**是确认全局最优的基本方法。
例(原书 P8.5) 上面 8.4.1 节的二元函数,三个驻点的 Hessian 特征值分别为 \((8.0,\ 8.84)\)、\((-6.26,\ 8.0)\)、\((8.0,\ 21.42)\):第一、三个正定,是强极小;第二个特征值异号,Hessian 不定(indefinite),是鞍点。负曲率方向为 \([1,-1]^T\),正曲率方向为 \([1,1]^T\)。本章代码将数值复现这一结果。
8.5 二次函数:读懂 Hessian 的特征结构
8.5.1 为什么二次函数是核心
二次函数是"万能"的性能指标:许多应用中直接出现(线性网络的平方误差就是,见 8.6 节);而任何光滑函数在极小点附近的小邻域内都近似为二次函数(Taylor 展开到二阶)。一般形式
\(\mathbf{A}\) 对称(不对称时可换成 \((\mathbf{A}+\mathbf{A}^T)/2\),函数值不变)。利用 \(\nabla(\mathbf{h}^T\mathbf{x})=\mathbf{h}\) 与 \(\nabla(\mathbf{x}^T\mathbf{Q}\mathbf{x})=2\mathbf{Q}\mathbf{x}\)(\(\mathbf{Q}\) 对称):
推导拆解:两个梯度公式用二维例子验证最直观。\(\mathbf{h}^T\mathbf{x}=h_1x_1+h_2x_2\),对 \(x_1\)、\(x_2\) 求偏导得 \(h_1,h_2\),即梯度为 \(\mathbf{h}\)——相当于一元的 \((hx)'=h\)。\(\mathbf{x}^T\mathbf{Q}\mathbf{x}=q_{11}x_1^2+2q_{12}x_1x_2+q_{22}x_2^2\)(\(\mathbf{Q}\) 对称),对 \(x_1\) 求偏导得 \(2q_{11}x_1+2q_{12}x_2\),对 \(x_2\) 得 \(2q_{12}x_1+2q_{22}x_2\),合起来正是 \(2\mathbf{Q}\mathbf{x}\)——相当于一元的 \((qx^2)'=2qx\)。式 (8.35) 前面的 \(\frac12\) 正是为了抵消这个 2,使梯度干净地等于 \(\mathbf{A}\mathbf{x}+\mathbf{d}\)。令梯度为零解出 \(\mathbf{x}^*=-\mathbf{A}^{-1}\mathbf{d}\),相当于一元的 \(ax+d=0\Rightarrow x=-d/a\)。
更高阶导数全为零,所以 Taylor 展开的前三项精确等于二次函数。\(\mathbf{A}\) 可逆时,唯一驻点是
8.5.2 特征值就是曲率
取驻点在原点的 \(F(\mathbf{x})=\frac12\mathbf{x}^T\mathbf{A}\mathbf{x}\)。\(\mathbf{A}\) 对称,特征向量可取标准正交,\(\mathbf{B}=[\mathbf{z}_1\ \cdots\ \mathbf{z}_n]\),\(\mathbf{B}^{-1}=\mathbf{B}^T\),\(\mathbf{A}=\mathbf{B}\boldsymbol\Lambda\mathbf{B}^T\)(第 05 章)。把方向 \(\mathbf{p}\) 写成特征基下的坐标 \(\mathbf{p}=\mathbf{B}\mathbf{c}\),二阶方向导数变为
推导拆解:式 (8.47) 每一步用了什么:分子 \(\mathbf{p}^T\mathbf{A}\mathbf{p}\) 中代入 \(\mathbf{p}=\mathbf{B}\mathbf{c}\)(于是 \(\mathbf{p}^T=\mathbf{c}^T\mathbf{B}^T\),转置规则)和 \(\mathbf{A}=\mathbf{B}\boldsymbol\Lambda\mathbf{B}^T\);然后用 \(\mathbf{B}^T\mathbf{B}=\mathbf{I}\)(特征向量标准正交)把两处 \(\mathbf{B}^T\mathbf{B}\) 消掉,剩 \(\mathbf{c}^T\boldsymbol\Lambda\mathbf{c}\);对角阵的二次型就是 \(\sum_i\lambda_ic_i^2\),没有交叉项。分母同理 \(\mathbf{p}^T\mathbf{p}=\mathbf{c}^T\mathbf{c}=\sum c_i^2\)——换到正交基不改变长度。数值例:\(\mathbf{A}=\begin{bmatrix}2&1\\1&2\end{bmatrix}\),特征值 1(方向 \([1,-1]^T/\sqrt2\))和 3(方向 \([1,1]^T/\sqrt2\))。沿 \(\mathbf{p}=[1,0]^T\),\(c_1=c_2=1/\sqrt2\),曲率 \(=(1\cdot\frac12+3\cdot\frac12)/1=2\),与直接算 \(\mathbf{p}^T\mathbf{A}\mathbf{p}=a_{11}=2\) 一致。
金融直觉:这就是 5.8 节"组合方差在特征基下可加"的同一个公式:组合方差 \(\mathbf{w}^T\boldsymbol\Sigma\mathbf{w}=\sum\lambda_ic_i^2\)。单位长度组合的方差不可能小于最小特征值、也不可能大于最大特征值;最小方差的"组合方向"就是最小特征值对应的主成分。
这个式子信息量很大:
- 任意方向的二阶导数是各特征值的加权平均,权重是该方向在各特征方向上的分量平方。因此 \(\lambda_{\min}\le\dfrac{\mathbf{p}^T\mathbf{A}\mathbf{p}}{\|\mathbf{p}\|^2}\le\lambda_{\max}\)(Rayleigh 商性质,见第 01 册第 04a 章)。
- 取 \(\mathbf{p}=\mathbf{z}_{\max}\),\(\mathbf{c}\) 只在 \(\lambda_{\max}\) 对应位置为 1,二阶导数恰为 \(\lambda_{\max}\)。特征值就是对应特征向量方向上的二阶导数(曲率);最大曲率在 \(\mathbf{z}_{\max}\) 方向,最小曲率在 \(\mathbf{z}_{\min}\) 方向。
- 特征向量构成使二次型交叉项消失的坐标系,叫等高线的主轴(principal axes)。椭圆等高线的长轴沿最小曲率方向(函数沿这个方向变化慢,等高线间距大),短轴沿最大曲率方向。
8.5.3 四种典型形状
| 例子 | \(\mathbf{A}\) | 特征值与特征向量 | 形状 |
|---|---|---|---|
| \(x_1^2+x_2^2\) | \(\begin{bmatrix}2&0\\0&2\end{bmatrix}\) | \(\lambda_1=\lambda_2=2\),任意方向 | 圆形凹谷:各方向曲率相同,等高线为圆 |
| \(x_1^2+x_1x_2+x_2^2\) | \(\begin{bmatrix}2&1\\1&2\end{bmatrix}\) | \(\lambda_1=1,\ [1,-1]^T\);\(\lambda_2=3,\ [1,1]^T\) | 椭圆凹谷:长轴沿 \([1,-1]^T\) |
| \(-\frac14x_1^2-\frac32x_1x_2-\frac14x_2^2\) | \(\begin{bmatrix}-0.5&-1.5\\-1.5&-0.5\end{bmatrix}\) | \(\lambda_1=1,\ [-1,1]^T\);\(\lambda_2=-2,\ [-1,-1]^T\) | 拉长的鞍形:沿 \(\mathbf{z}_1\) 极小、沿 \(\mathbf{z}_2\) 极大 |
| \(\frac12x_1^2-x_1x_2+\frac12x_2^2\) | \(\begin{bmatrix}1&-1\\-1&1\end{bmatrix}\) | \(\lambda_1=2,\ [-1,1]^T\);\(\lambda_2=0,\ [-1,-1]^T\) | 平稳山谷:直线 \(x_1=x_2\) 上全是弱极小 |
8.5.4 按特征值符号分类
对二次函数(驻点在原点、\(\mathbf{d}=\mathbf{0}\)):
- 特征值全正 ⇒ 唯一强极小(圆形或椭圆凹谷);
- 全负 ⇒ 唯一强极大;
- 有正有负 ⇒ 唯一鞍点;
- 全非负但有零 ⇒ 弱极小(平稳山谷),或者没有驻点;
- 全非正但有零 ⇒ 弱极大,或者没有驻点。
\(c\ne0\) 只把整个曲面上下平移。\(\mathbf{d}\ne\mathbf{0}\) 且 \(\mathbf{A}\) 可逆时,等高线形状不变,只是中心移到 \(-\mathbf{A}^{-1}\mathbf{d}\)。对二次函数,强极小存在当且仅当 Hessian 正定;非二次函数则可能在 Hessian 仅半正定时仍有强极小(如 \(x_1^4+x_2^2\))。
\(\mathbf{A}\) 奇异时会怎样(原书 P8.7)。\(F(\mathbf{x})=[1\ -1]\mathbf{x}+\frac12\mathbf{x}^T\begin{bmatrix}1&1\\1&1\end{bmatrix}\mathbf{x}\)。Hessian 特征值 \(\lambda_1=0\)(\(\mathbf{z}_1=[1,-1]^T\))、\(\lambda_2=2\)(\(\mathbf{z}_2=[1,1]^T\))。没有线性项时它是平稳山谷;但线性项的梯度 \([1,-1]^T\) 恰好沿零曲率方向 \(\mathbf{z}_1\),于是函数沿 \(\mathbf{z}_2\) 弯曲、沿 \(\mathbf{z}_1\) 却一路线性下降——下降山谷(falling valley),根本没有驻点。原书 E8.13 的结论:只有当 \(\mathbf{d}\) 与零特征值方向正交(此例中 \(\mathbf{d}\propto[1,1]^T\))时,才会出现弱极小。
8.6 线性网络的性能曲面
本章的工具第一次正式用于神经网络(原书 P8.6)。单输入线性神经元 \(a=wp+b\),训练样本 \(\{p_1=2,t_1=0.5\}\),\(\{p_2=-1,t_2=0\}\),性能指标取误差平方和
把误差写成向量:\(\mathbf{e}=\mathbf{t}-\mathbf{G}\mathbf{x}\),\(\mathbf{G}=\begin{bmatrix}p_1&1\\p_2&1\end{bmatrix}\)。于是
对照式(8.35),这是二次函数,\(c=\mathbf{t}^T\mathbf{t}\),\(\mathbf{d}=-2\mathbf{G}^T\mathbf{t}\),\(\mathbf{A}=2\mathbf{G}^T\mathbf{G}\)。驻点
即 \(w=b=0.167\)。Hessian \(2\mathbf{G}^T\mathbf{G}=\begin{bmatrix}10&2\\2&4\end{bmatrix}\) 的特征值约为 10.6 和 3.4,都为正,所以是强极小;等高线是椭圆,长轴沿小特征值 3.4 对应的特征向量(约 \([0.3,-1]^T\))。
推导拆解:展开那一步和 \((t-gx)^2=t^2-2tgx+g^2x^2\) 一样,只是要注意矩阵乘法不能交换:\((\mathbf{t}-\mathbf{G}\mathbf{x})^T(\mathbf{t}-\mathbf{G}\mathbf{x})=\mathbf{t}^T\mathbf{t}-\mathbf{t}^T\mathbf{G}\mathbf{x}-\mathbf{x}^T\mathbf{G}^T\mathbf{t}+\mathbf{x}^T\mathbf{G}^T\mathbf{G}\mathbf{x}\);中间两项都是数(\(1\times1\)),一个数的转置等于它自己,所以 \(\mathbf{x}^T\mathbf{G}^T\mathbf{t}=\mathbf{t}^T\mathbf{G}\mathbf{x}\),合并为 \(-2\mathbf{t}^T\mathbf{G}\mathbf{x}\)。对照 \(\frac12\mathbf{x}^T\mathbf{A}\mathbf{x}\) 要让 \(\frac12\mathbf{A}=\mathbf{G}^T\mathbf{G}\),所以 \(\mathbf{A}=2\mathbf{G}^T\mathbf{G}\);线性项 \(\mathbf{d}^T\mathbf{x}=-2\mathbf{t}^T\mathbf{G}\mathbf{x}\),所以 \(\mathbf{d}=-2\mathbf{G}^T\mathbf{t}\)。
这里 \(\mathbf{G}\) 就是回归的设计矩阵 \(\mathbf{X}\)(每行一个样本,最后一列全是 1 对应截距/偏置),\(\mathbf{x}=[w,b]^T\) 就是 \([\hat\beta_1,\hat\beta_0]^T\),\(\mathbf{x}^*=(\mathbf{G}^T\mathbf{G})^{-1}\mathbf{G}^T\mathbf{t}\) 就是 \((\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y}\)。单个线性神经元的训练问题和 OLS 是同一个问题。
三个要点:
-
线性网络 + 平方误差 ⇒ 二次性能曲面,这对任意多个输入、任意多个样本都成立。最优解就是最小二乘解(正规方程),和第 07 章的伪逆规则是同一个答案。
-
Hessian \(2\mathbf{G}^T\mathbf{G}\) 只由输入数据决定,与目标无关。输入之间越相关,\(\mathbf{G}^T\mathbf{G}\) 越接近奇异,椭圆越扁。
金融直觉:你在 CFA 里学过 OLS 系数的协方差矩阵是 \(\sigma^2(\mathbf{X}^T\mathbf{X})^{-1}\)。这里 Hessian 正比于 \(\mathbf{X}^T\mathbf{X}\),所以"Hessian 的逆"正比于系数的估计方差:曲率小的方向(椭圆长轴),系数方差大、估计不准;曲率大的方向,系数估得准。多重共线性时两个因子系数的"差"几乎无法确定,正是因为沿这个方向的曲率接近零——谷底平坦,在上面往哪挪,误差平方和都差不多。
-
只要 \(\mathbf{G}^T\mathbf{G}\) 半正定(总是如此),曲面就不会有鞍点或极大;若 \(\mathbf{G}\) 列满秩,则有唯一强极小。第 10 章的 LMS 算法正是建立在这个"碗"形曲面上,而多层网络(第 11 章)的曲面不再是二次的,会出现多个局部极小和鞍点。
预告:在扁长的椭圆曲面上做梯度下降,学习率受最大曲率 \(\lambda_{\max}\) 限制(太大会在陡峭方向来回振荡),而沿最小曲率 \(\lambda_{\min}\) 方向的收敛又非常慢。条件数 \(\lambda_{\max}/\lambda_{\min}\) 因此决定了训练的难易,原书第 9、10 章会定量说明。
8.7 量化实战:组合优化的性能曲面
8.7.1 均值–方差就是一个二次性能曲面
无约束的均值–方差问题最小化
对照式(8.35),\(\mathbf{A}=\gamma\boldsymbol\Sigma\),\(\mathbf{d}=-\boldsymbol\mu\),最优解 \(\mathbf{w}^*=-\mathbf{A}^{-1}\mathbf{d}=\frac1\gamma\boldsymbol\Sigma^{-1}\boldsymbol\mu\) 就是式(8.62)。本章的全部几何直觉都可以直接搬过来:
- Hessian 的特征结构就是协方差矩阵的主成分结构。最大特征值方向通常是"所有资产同涨同跌"的市场方向,曲率最大——在这个方向上多押一点,风险迅速上升。最小特征值方向是高度相关资产之间的价差组合,曲率很小——几乎"不花风险"。
- 病态 Hessian ⇒ 平坦长谷 ⇒ 最优点对 \(\boldsymbol\mu\) 极度敏感。\(\boldsymbol\mu\) 的一个小误差 \(\delta\boldsymbol\mu\) 引起最优权重变化 \(\delta\mathbf{w}=\mathbf{A}^{-1}\delta\boldsymbol\mu\),在特征基下沿第 \(i\) 个方向被放大 \(1/\lambda_i\) 倍。最小特征值接近零时,曲面接近"平稳山谷"甚至"下降山谷",最优点沿谷底大幅漂移。这是均值–方差优化"误差放大"问题的几何解释。
- 补救就是改变曲面形状:对协方差做收缩(shrinkage),把最小特征值抬离零;或加 \(\ell_2\) 正则 \(\frac{\kappa}{2}\|\mathbf{w}\|^2\),等价于 \(\mathbf{A}\to\mathbf{A}+\kappa\mathbf{I}\),所有特征值都加 \(\kappa\)。
回归也一样:P8.6 的 Hessian \(2\mathbf{G}^T\mathbf{G}\) 的条件数刻画了因子共线程度,椭圆越扁,系数在长轴方向上越不确定(方差越大)。
8.7.2 非凸目标:局部极小、鞍点与"尖"与"平"
神经网络的损失、带交易成本或整数约束的组合问题、参数化策略的夏普率,都是非凸的,存在多个局部极小和鞍点。P8.4 的做法——找出所有驻点、用 Hessian 分类、比较函数值、检查无穷远处的行为——在低维时可以照做,高维时只能依赖多起点搜索。对策略参数优化还有一个实用判据:最优点处的 Hessian 曲率很大(尖峰),说明参数稍有偏离表现就骤降,往往是过拟合;曲率小的平坦宽谷对应更稳健的参数。
8.7.3 代码
下面的代码核对原书的方向导数例子、P8.5 的驻点分类和 P8.6 的线性网络性能曲面,然后构造一个 20 只高度相关资产(两两相关 0.9)的均值–方差问题:给 \(\boldsymbol\mu\) 加上年化 2% 的估计误差,看最优权重漂移多少;再把协方差向对角阵收缩 30%,看条件数和漂移如何变化。
import numpy as np
from scipy.optimize import fsolve
np.set_printoptions(precision=4, suppress=True)
# ---------- 方向导数:原书 (8.14)-(8.16) ----------
grad = lambda x: np.array([2 * x[0], 4 * x[1]]) # F = x1^2 + 2 x2^2
x0 = np.array([0.5, 0.5])
for p in [np.array([2., -1.]), np.array([1., 2.]), np.array([1., 0.])]:
print("dir", p, "slope = %.4f" % (p @ grad(x0) / np.linalg.norm(p)))
# ---------- 原书 P8.5:用 Hessian 特征值给驻点分类 ----------
def g(x):
d = x[1] - x[0]
return np.array([-4 * d**3 + 8 * x[1] - 1, 4 * d**3 + 8 * x[0] + 1])
def H(x):
d2 = 12 * (x[1] - x[0])**2
return np.array([[d2, -d2 + 8], [-d2 + 8, d2]])
F = lambda x: (x[1] - x[0])**4 + 8 * x[0] * x[1] - x[0] + x[1] + 3
for guess in ([-0.4, 0.4], [-0.1, 0.1], [0.5, -0.5]):
xs = fsolve(g, guess)
lam = np.linalg.eigvalsh(H(xs))
kind = "strong min" if lam.min() > 0 else ("saddle" if lam.min() < 0 < lam.max() else "?")
print("x* =", xs, " F = %.4f" % F(xs), " eig(H) =", lam, "->", kind)
# ---------- 原书 P8.6:线性神经元 + 平方误差 = 二次性能曲面 ----------
p = np.array([2., -1.]); t = np.array([0.5, 0.])
G = np.c_[p, np.ones(2)] # 参数 x = [w, b]
A, d, c = 2 * G.T @ G, -2 * G.T @ t, t @ t
x_star = -np.linalg.solve(A, d)
lam, Z = np.linalg.eigh(A)
print("A =\n", A, "\nx* = -A^{-1} d =", x_star, " eig(A) =", lam)
print("principal axes (columns):\n", Z)
# ========== 量化:均值-方差 = 二次函数;Hessian 病态 -> 最优权重对 mu 极度敏感 ==========
rng = np.random.default_rng(5)
n = 20
rho = 0.9 # 资产两两高度相关
vol = rng.uniform(0.15, 0.35, n)
Corr = rho * np.ones((n, n)) + (1 - rho) * np.eye(n)
Sigma = np.outer(vol, vol) * Corr
mu = 0.02 + 0.3 * vol # "真实"期望收益
gamma = 5.0
def mv(S, m): return np.linalg.solve(gamma * S, m) # w* = -A^{-1} d, A = gamma*S, d = -mu
def shrink(S, a): # 向对角阵收缩,抬高最小特征值
return (1 - a) * S + a * np.diag(np.diag(S))
w_true = mv(Sigma, mu)
for a in [0.0, 0.3]:
S = shrink(Sigma, a)
ev = np.linalg.eigvalsh(gamma * S)
devs = []
for _ in range(200):
mu_hat = mu + rng.normal(0, 0.02, n) # mu 的估计误差(年化 2%)
devs.append(np.linalg.norm(mv(S, mu_hat) - mv(S, mu)))
print(f"shrink a={a:.1f}: eig(A) min={ev.min():.4f} max={ev.max():.3f} cond={ev.max()/ev.min():7.1f} "
f"mean ||dw|| from 2% mu-noise = {np.mean(devs):.2f}")
# 二阶方向导数夹在 [lambda_min, lambda_max](Rayleigh 商)
A = gamma * Sigma; ev, V = np.linalg.eigh(A)
u = rng.standard_normal(n)
print("curvature along random dir = %.4f in [%.4f, %.4f]" % (u @ A @ u / (u @ u), ev.min(), ev.max()))
print("curvature along z_min = %.4f, along z_max = %.4f" % (V[:, 0] @ A @ V[:, 0], V[:, -1] @ A @ V[:, -1]))
print("z_max ~ equal-sign 'market' direction? all same sign:", np.all(np.sign(V[:, -1]) == np.sign(V[0, -1])))
print("||w_true|| = %.2f, sum(w_true) = %.2f" % (np.linalg.norm(w_true), w_true.sum()))
运行输出:
dir [ 2. -1.] slope = 0.0000
dir [1. 2.] slope = 2.2361
dir [1. 0.] slope = 1.0000
x* = [-0.4188 0.4188] F = 2.9267 eig(H) = [8. 8.8364] -> strong min
x* = [-0.1348 0.1348] F = 3.1295 eig(H) = [-6.2557 8. ] -> saddle
x* = [ 0.5536 -0.5536] F = 0.9438 eig(H) = [ 8. 21.4193] -> strong min
A =
[[10. 2.]
[ 2. 4.]]
x* = -A^{-1} d = [0.1667 0.1667] eig(A) = [ 3.3944 10.6056]
principal axes (columns):
[[ 0.2898 -0.9571]
[-0.9571 -0.2898]]
shrink a=0.0: eig(A) min=0.0127 max=6.023 cond= 474.6 mean ||dw|| from 2% mu-noise = 3.76
shrink a=0.3: eig(A) min=0.0470 max=4.339 cond= 92.4 mean ||dw|| from 2% mu-noise = 1.04
curvature along random dir = 0.0422 in [0.0127, 6.0229]
curvature along z_min = 0.0127, along z_max = 6.0229
z_max ~ equal-sign 'market' direction? all same sign: True
||w_true|| = 1.11, sum(w_true) = 1.43
解读:
- 方向导数:沿 \([2,-1]^T\)(与梯度正交、等高线切线方向)斜率为 0;沿梯度方向 \([1,2]^T\) 斜率为 \(\sqrt5\approx2.236\),是最大值。
- P8.5:三个驻点和 Hessian 特征值与原书一致,\((0.55,-0.55)\) 处函数值 0.944 最小,是全局极小;中间的驻点特征值一负一正,是鞍点。
- P8.6:最优权值 \(w=b=0.1667\),Hessian 特征值 3.39 与 10.61;小特征值对应的主轴约为 \([0.29,-0.96]^T\)(与原书的 \([0.3,-1]^T\) 同方向),是椭圆的长轴。
- 组合优化:20 只两两相关 0.9 的资产,Hessian 条件数约 475。\(\boldsymbol\mu\) 每个分量只差年化 2%,最优权重向量(以净值倍数计)的欧氏距离平均漂移 3.76,而真实最优权重本身的范数只有 1.11——误差比信号还大三倍多,这就是典型的"平坦长谷"。向对角阵收缩 30% 后,最小特征值从 0.0127 升到 0.047,条件数降到 92,漂移降到 1.04。代价是收缩后的协方差有偏,这是"方差–偏差权衡"在组合优化中的体现。
- 最后三行验证了 Rayleigh 商性质:随机方向的曲率 0.042 落在 \([\lambda_{\min},\lambda_{\max}]\) 内,而且因为高维随机方向在各特征方向上的分量大致均匀,它更接近大多数小特征值而非唯一的大特征值;最大曲率方向的所有分量同号,正是"市场方向"。
本章小结
性能学习先选一个性能指标,再在参数空间里找它的极小点。二阶 Taylor 展开用梯度和 Hessian 刻画性能曲面的局部形状:一阶方向导数在梯度方向最大、在等高线切线方向为零;二阶方向导数是曲率。极小点分强、弱、全局三种,驻点也可能是鞍点。一阶必要条件是梯度为零,二阶必要条件是 Hessian 半正定,充分条件是 Hessian 正定。二次函数 \(\frac12\mathbf{x}^T\mathbf{A}\mathbf{x}+\mathbf{d}^T\mathbf{x}+c\) 是最重要的特例:梯度 \(\mathbf{A}\mathbf{x}+\mathbf{d}\),Hessian \(\mathbf{A}\),驻点 \(-\mathbf{A}^{-1}\mathbf{d}\);Hessian 的特征向量是等高线主轴,特征值是对应方向的曲率,任意方向的曲率都是特征值的加权平均;按特征值符号可分为凹谷、峰顶、鞍点、平稳山谷和下降山谷。线性网络配平方误差一定得到二次性能曲面,其 Hessian \(2\mathbf{G}^T\mathbf{G}\) 由输入决定。均值–方差组合优化是同一种曲面,协方差的病态让最优权重对期望收益的误差极度敏感,收缩或正则化通过抬高最小特征值改善曲面形状。
| 概念 | 公式 / 要点 |
|---|---|
| 二阶 Taylor | \(F(\mathbf{x})\approx F(\mathbf{x}^*)+\nabla F^T\Delta\mathbf{x}+\frac12\Delta\mathbf{x}^T\nabla^2F\,\Delta\mathbf{x}\) |
| 一阶方向导数 | \(\mathbf{p}^T\nabla F/|\mathbf{p}|\);梯度方向最大,切线方向为零 |
| 二阶方向导数 | \(\mathbf{p}^T\nabla^2F\,\mathbf{p}/|\mathbf{p}|^2\in[\lambda_{\min},\lambda_{\max}]\) |
| 必要条件 | \(\nabla F=\mathbf{0}\),\(\nabla^2F\) 半正定 |
| 充分条件(强极小) | \(\nabla F=\mathbf{0}\),\(\nabla^2F\) 正定 |
| 二次函数 | \(\nabla F=\mathbf{A}\mathbf{x}+\mathbf{d}\),\(\nabla^2F=\mathbf{A}\),\(\mathbf{x}^*=-\mathbf{A}^{-1}\mathbf{d}\) |
| 特征结构 | 特征向量 = 主轴,特征值 = 曲率;长轴沿最小曲率方向 |
| 曲面分类 | 全正:凹谷;全负:峰;异号:鞍;含零:平稳山谷或下降山谷 |
| 线性网络 | \(F=|\mathbf{t}-\mathbf{G}\mathbf{x}|^2\),\(\mathbf{A}=2\mathbf{G}^T\mathbf{G}\),\(\mathbf{x}^*=(\mathbf{G}^T\mathbf{G})^{-1}\mathbf{G}^T\mathbf{t}\) |
| 均值–方差 | \(\mathbf{A}=\gamma\boldsymbol\Sigma\),\(\mathbf{d}=-\boldsymbol\mu\),\(\mathbf{w}^*=\boldsymbol\Sigma^{-1}\boldsymbol\mu/\gamma\) |
练习
基础
- 求 \(F(x)=x^4-\frac12x^2+1\) 的驻点并分类。(原书 E8.4) 答案:\(F'=4x^3-x=0\) 得 \(x=0,\pm\frac12\);\(F''=12x^2-1\),\(F''(0)=-1<0\) 为局部极大,\(F''(\pm\frac12)=2>0\) 为强极小(两者函数值相同,都是全局极小)。
- 对 \(F(\mathbf{x})=x_1^2+x_1x_2+x_2^2+3x_1+3x_2\),求梯度、Hessian、驻点,并说明曲面形状。(E8.3 中的一个) 答案:\(\mathbf{A}=\begin{bmatrix}2&1\\1&2\end{bmatrix}\),\(\mathbf{d}=[3,3]^T\),\(\mathbf{x}^*=-\mathbf{A}^{-1}\mathbf{d}=[-1,-1]^T\);特征值 1、3,椭圆凹谷,长轴沿 \([1,-1]^T\)。
- \(F(\mathbf{x})=\frac12\mathbf{x}^T\begin{bmatrix}1&-3\\-3&1\end{bmatrix}\mathbf{x}+[4\ -4]\mathbf{x}+2\)。求梯度、Hessian 特征值,判断驻点类型,并求在原点沿 \([1,1]^T\) 的一阶、二阶方向导数。(原书 E8.7) 答案要点:特征值 \(-2\)(方向 \([1,1]^T\))与 4(方向 \([1,-1]^T\)),鞍点;原点梯度为 \(\mathbf{d}=[4,-4]^T\),沿 \([1,1]^T\) 一阶方向导数为 0,二阶方向导数为 \(-2\)。
- \(F(\mathbf{x})=x_1x_2-x_1+2x_2\):求驻点并分类,再求在 \([-1,1]^T\) 处沿 \([-1,1]^T\) 的方向导数。(原书 E8.11) 答案要点:\(\nabla F=[x_2-1,\ x_1+2]^T\),驻点 \([-2,1]^T\);Hessian \(\begin{bmatrix}0&1\\1&0\end{bmatrix}\) 特征值 \(\pm1\),鞍点;在 \([-1,1]^T\) 梯度为 \([0,1]^T\),方向导数 \(1/\sqrt2\)。
- 只改变 P8.7 中的 \(\mathbf{d}\)(保持非零),使函数出现弱极小。(原书 E8.13) 答案:\(\mathbf{d}\) 必须与零特征值方向 \([1,-1]^T\) 正交,即 \(\mathbf{d}\propto[1,1]^T\)。
进阶
- \(F(\mathbf{x})=(x_1+x_2)^4-12x_1x_2+x_1+x_2+1\)。验证 \([-0.6504,-0.6504]^T\)、\([0.085,0.085]^T\)、\([0.5655,0.5655]^T\) 是驻点,并用 Hessian 特征值分类。(原书 E8.5) 提示:仿照本章代码,把 \(g\)、\(H\) 换掉即可。Hessian 为 \(12(x_1+x_2)^2\begin{bmatrix}1&1\\1&1\end{bmatrix}+\begin{bmatrix}0&-12\\-12&0\end{bmatrix}\),特征方向固定为 \([1,1]^T\) 与 \([1,-1]^T\)。
- \(F(\mathbf{x})=\frac32x_1^2+2x_1x_2+x_2^3+4x_1+4x_2\)。在 \([1,0]^T\) 处做二次近似,求近似函数的驻点;这个点是原函数的极小点吗?(原书 E8.10) 提示:二次近似的驻点就是从 \([1,0]^T\) 出发的一步牛顿法;它一般不是原函数的驻点,这正是牛顿法需要迭代的原因(原书第 9 章)。
- 证明对任意数据,线性神经元的平方误差性能曲面 \(\|\mathbf{t}-\mathbf{G}\mathbf{x}\|^2\) 不可能有鞍点或严格极大。\(\mathbf{G}\) 何时有唯一强极小?何时是平稳山谷? 答案要点:Hessian \(2\mathbf{G}^T\mathbf{G}\) 半正定;\(\mathbf{G}\) 列满秩时正定,有唯一强极小;列线性相关(如两个输入完全共线)时有零特征值,又因 \(\mathbf{d}=-2\mathbf{G}^T\mathbf{t}\) 必在 \(\mathbf{G}^T\) 的列空间内、与零空间正交,所以是平稳山谷(弱极小),不会是下降山谷。
- 量化思考:在均值–方差问题中加入 \(\ell_2\) 正则 \(\frac\kappa2\|\mathbf{w}\|^2\)。写出新的 \(\mathbf{A}\),说明各特征值、条件数和最优权重对 \(\boldsymbol\mu\) 误差的放大倍数如何变化。 答案要点:\(\mathbf{A}=\gamma\boldsymbol\Sigma+\kappa\mathbf{I}\),每个特征值加 \(\kappa\),条件数变为 \((\lambda_{\max}+\kappa)/(\lambda_{\min}+\kappa)\),沿第 \(i\) 个主方向的放大倍数从 \(1/\lambda_i\) 降到 \(1/(\lambda_i+\kappa)\)。
- 量化思考:你用网格搜索优化一个均线策略的两个参数(快线、慢线周期),得到夏普率曲面。如何用本章的方法判断最优参数是否稳健? 提示:在最优点附近用有限差分估计 Hessian,看特征值大小(曲率越大越"尖")以及最小曲率方向;也可以直接比较最优点邻域内的平均夏普率与最优点处的值。
原书推荐习题:P8.5、E8.5(Hessian 特征值分类驻点);P8.6(线性网络二次曲面的完整推导,强烈推荐);P8.7、E8.13(奇异 Hessian 下驻点的存在性);E8.6(覆盖二次函数全部形状);E8.10(二次近似与牛顿法的关系)。
原书对照
| 本章内容 | 原书章节 | PDF 页码 |
|---|---|---|
| 8.1 性能学习 | Objectives | p.228–229 |
| 8.2 Taylor 展开 | Taylor Series(标量、向量) | p.229–231 |
| 8.3 方向导数 | Directional Derivatives | p.232–234 |
| 8.4 极小点与最优性条件 | Minima、Necessary Conditions for Optimality | p.234–239 |
| 8.5 二次函数 | Quadratic Functions、Eigensystem of the Hessian | p.239–246 |
| 结果汇总 | Summary of Results | p.247–248 |
| 8.4、8.6 中的例题 | Solved Problems P8.1–P8.7 | p.249–260 |
| 结语、延伸阅读 | Epilogue、Further Reading | p.261–262 |
| 练习 | Exercises E8.1–E8.13 | p.263–266 |
原书配套演示:nnd8ts1(标量 Taylor 近似)、nnd8ts2(向量 Taylor 近似)、nnd8dd(方向导数)、nnd8qf(二次函数)。延伸阅读推荐 Gill、Murray、Wright《Practical Optimization》,Himmelblau《Applied Nonlinear Programming》,Scales《Introduction to Non-Linear Optimization》;本套教材中对应的系统讲解在第 04 册第 02 章。