精读笔记:Hagan, Demuth, Beale, De Jesús《Neural Network Design》(2nd ed.)|负责 PDF 第 267–519 页(第 9–13 章)
说明:原书页码形如 “9-1”(章-页),以下均同时给出 PDF 页码。原书页边有大量提示框(如 “Steepest Descent”“Learning Rate”“Conjugate” 等术语标签)和图示,抽取文本被切碎,以下公式均按上下文重建。原文个别页留有读者手写批注(如 p.282 的 “mutually:互相的 / orthogonal:正交的 / 对称矩阵的特征向量互相垂直”),非原书内容,已忽略。
第 9 章 性能优化(Performance Optimization)(PDF p.267–308)
9.0 目标与本章框架(PDF p.267–268)
第 8 章用泰勒级数(Taylor series)分析性能曲面(performance surface)并给出极值点的必要/充分条件;本章再次利用泰勒展开来构造寻找极小点的算法。三类算法:最速下降法(steepest descent)、牛顿法(Newton's method)、共轭梯度法(conjugate gradient)。第 10–14 章把它们用于神经网络训练。
历史背景:优化的基本原理在 17 世纪由 Kepler、Fermat、Newton、Leibniz 等奠定;1950 年后在数字计算机上被重新发现并实现,优化理论成为数学的重要分支,神经网络研究者可直接借用其成果。
目标:最小化性能指标(performance index)\(F(\mathbf{x})\),即找使 \(F\) 最小的 \(\mathbf{x}\)(网络的权值与偏置)。所有算法都是迭代式:从初值 \(\mathbf{x}_0\) 出发,按
9.1 最速下降法(Steepest Descent)(PDF p.268–276)
下降方向与最速下降方向
希望每步函数值下降:\(F(\mathbf{x}_{k+1})<F(\mathbf{x}_k)\)(9.3)。对 \(F\) 在 \(\mathbf{x}_k\) 作一阶泰勒展开:
最速下降方向:在 \(\mathbf{p}_k\) 长度不变、只改方向的前提下,使内积 \(\mathbf{g}_k^T\mathbf{p}_k\)(9.8)最负,即方向导数最负——取 \(\mathbf{p}_k=-\mathbf{g}_k\)(9.9)。代入(9.1)得最速下降法:
学习率的两种一般选法:(1) 每步沿直线 \(\mathbf{x}_k-\alpha_k\mathbf{g}_k\)(9.11)对 \(\alpha_k\) 最小化 \(F\);(2) 取固定值(如 \(\alpha_k=0.02\))或预先设定的变化序列(如 \(\alpha_k=1/k\))。
例:\(F(\mathbf{x})=x_1^2+25x_2^2\)(9.12)
初值 \(\mathbf{x}_0=[0.5,\,0.5]^T\)(9.13)。梯度 \(\nabla F=[2x_1,\;50x_2]^T\)(9.14),\(\mathbf{g}_0=[1,\;25]^T\)(9.15)。固定 \(\alpha=0.01\):
- \(\mathbf{x}_1=[0.5,0.5]^T-0.01[1,25]^T=[0.49,\;0.25]^T\)(9.16);
- \(\mathbf{x}_2=[0.49,0.25]^T-0.01[0.98,12.5]^T=[0.4802,\;0.125]^T\)(9.17)。
轨迹见图 9.1:小学习率时轨迹始终与等高线正交(因梯度与等高线正交)。把 \(\alpha\) 增至 0.035(图 9.2),轨迹开始振荡;学习率过大则振荡发散,算法不稳定。我们希望学习率尽量大以加速收敛,但又受稳定性限制——对任意函数无法预知上限,对二次函数则可以。
9.1.1 稳定学习率(Stable Learning Rates)(PDF p.272–274)
设性能指标为二次函数
例(续):\(\mathbf{A}=\begin{bmatrix}2&0\\0&50\end{bmatrix}\)(9.26),\(\lambda_1=2,\mathbf{z}_1=[1,0]^T\);\(\lambda_2=50,\mathbf{z}_2=[0,1]^T\)(9.27)。\(\alpha<2/50=0.04\)(9.28)。图 9.3:\(\alpha=0.039\) 收敛(振荡衰减),\(\alpha=0.041\) 发散。
结论:(1) 学习率受 Hessian 最大特征值(最大二阶导数)限制;(2) 算法沿最大特征值对应特征向量方向收敛最快(例中初始一步几乎平行于 \(x_2\) 轴,即 \(\mathbf{z}_2\)),而沿最小特征值方向(\(\mathbf{z}_1\))收敛最慢;(3) 最终收敛速度由最小特征值与学习率共同决定;最大与最小特征值相差悬殊(病态,条件数大)时,最速下降收敛很慢。演示程序 nnd9sdq。
9.1.2 沿直线极小化(Minimizing Along a Line)(PDF p.274–276)
每步选 \(\alpha_k\) 使 \(F(\mathbf{x}_k+\alpha_k\mathbf{p}_k)\)(9.29)最小。对任意函数需要线搜索(line search,第 12 章讨论);对二次函数可解析求解。对 \(\alpha_k\) 求导:
例:\(F(\mathbf{x})=\tfrac12\mathbf{x}^T\begin{bmatrix}2&1\\1&2\end{bmatrix}\mathbf{x}\)(9.33),\(\mathbf{x}_0=[0.8,\,-0.25]^T\)(9.34)。梯度 \([2x_1+x_2,\;x_1+2x_2]^T\)(9.35),\(\mathbf{p}_0=-\mathbf{g}_0=[-1.35,\,-0.3]^T\)(9.36)。
原因:沿直线极小化时总停在与等高线相切的点;梯度与等高线正交,因此下一步(负梯度)与上一步正交。解析证明——对(9.30)用链式法则:
预告:若把搜索方向从“正交”改为“共轭”,则 \(n\) 维二次函数至多 \(n\) 步精确极小化。思考题:哪类二次函数用最速下降一步即可到达极小?(Hessian 为单位阵的倍数,即所有特征值相等、等高线为圆。)演示 nnd9mc。
9.2 牛顿法(Newton's Method)(PDF p.276–281)
基于二阶泰勒展开:
例:\(F=x_1^2+25x_2^2\)(9.44),\(\nabla F=[2x_1,50x_2]^T\),\(\nabla^2F=\mathrm{diag}(2,50)\)(9.45),\(\mathbf{x}_0=[0.5,0.5]^T\)(9.46):
非二次例:第 8 章式(8.18)函数
- 初值 \([1.5,\,0]^T\)(图 9.6):一步不收敛,但朝全局极小前进,再两步即达 0.01 精度以内。牛顿法常收敛很快,因为解析函数在强极小点附近能被二次函数很好地近似;越接近极小点,预测越准。
- 初值 \([-1.5,\,0]^T\)(图 9.7):收敛到局部极小。牛顿法只用局部的一、二阶导数信息,二次近似只有一个极小,无法区分局部与全局极小。
- 初值 \([0.75,\,0.75]^T\)(图 9.8):二次近似的 Hessian 不定(indefinite),其驻点是鞍点,靠近原函数鞍点,继续迭代收敛到鞍点。牛顿法求的是二次近似的驻点,不区分极小、极大和鞍点。
- 初值 \([1.15,\,0.75]^T\)(图 9.9):二次近似预测出一个鞍点,但它恰好很靠近原函数的局部极小,继续迭代收敛到局部极小。注意此初值离局部极小比上一例更远,却收敛到了局部极小——牛顿法结果可能非常难以预测。演示 nnd9nm、nnd9sd。
牛顿法性质小结:通常比最速下降收敛快,但行为复杂:可能收敛到鞍点(最速下降几乎不会)、可能振荡或发散;最速下降只要学习率不过大或每步做线性极小化即保证收敛。第 12 章的 Levenberg–Marquardt 变体在出现发散时退化为最速下降步,以消除发散问题。另一缺点:需计算并存储 Hessian 及其逆。
当 \(\mathbf{A}_k=\mathbf{A}_k^{-1}=\mathbf{I}\)(9.50)时牛顿方向与最速下降方向相同。由此引出拟牛顿(quasi-Newton)或单步割线(one-step-secant)法:用正定矩阵 \(\mathbf{H}_k\) 代替 \(\mathbf{A}_k^{-1}\),每步无需求逆即可更新,并设计成对二次函数 \(\mathbf{H}_k\to\mathbf{A}^{-1}\)(参见 [Gill81]、[Scal85]、[Batt92])。
9.3 共轭梯度法(Conjugate Gradient)(PDF p.281–286)
二次终止性(quadratic termination):在有限步内精确极小化二次函数的性质。牛顿法具有此性质,但需要二阶导数:梯度有 \(n\) 个元素,Hessian 有 \(n^2\) 个;神经网络常有几百到数千个权值,计算存储 Hessian 不现实。目标:只用一阶导数又具二次终止性的方法。
最速下降+线搜索在椭圆等高线上产生短步锯齿,正交方向并非最佳。改用共轭方向(conjugate directions)。
定义:对二次函数 \(F(\mathbf{x})=\tfrac12\mathbf{x}^T\mathbf{A}\mathbf{x}+\mathbf{d}^T\mathbf{x}+c\)(9.51),一组向量 \(\{\mathbf{p}_k\}\) 关于正定 Hessian \(\mathbf{A}\) 互相共轭(mutually conjugate),当且仅当
定理([Scal85]/[Gill81]):沿任意一组共轭方向 \(\{\mathbf{p}_1,\dots,\mathbf{p}_n\}\) 做精确线搜索,任意 \(n\) 参数二次函数至多 \(n\) 次搜索达到精确极小。
用梯度变化改写共轭条件:二次函数 \(\nabla F=\mathbf{A}\mathbf{x}+\mathbf{d}\)(9.54),\(\nabla^2F=\mathbf{A}\)(9.55)。第 \(k+1\) 步梯度变化
构造:第一方向任意,通常取最速下降方向 \(\mathbf{p}_0=-\mathbf{g}_0\)(9.59);之后每步构造与 \(\{\Delta\mathbf{g}_0,\dots,\Delta\mathbf{g}_{k-1}\}\) 正交的 \(\mathbf{p}_k\),类似 Gram–Schmidt 正交化(第 5 章),可简化为
算法步骤:
- \(\mathbf{p}_0=-\mathbf{g}_0\);
- 按(9.57)走一步,\(\alpha_k\) 沿方向极小化 \(F\)(一般函数用第 12 章线搜索,二次函数用(9.31));
- 按(9.60)及(9.61)/(9.62)/(9.63)计算下一方向;
- 未收敛则回到第 2 步。
例:仍用 \(F=\tfrac12\mathbf{x}^T\begin{bmatrix}2&1\\1&2\end{bmatrix}\mathbf{x}\),\(\mathbf{x}_0=[0.8,-0.25]^T\)(9.64–9.66)。\(\mathbf{p}_0=[-1.35,-0.3]^T\)(9.67),\(\alpha_0=0.413\)(9.68),\(\mathbf{x}_1=[0.24,-0.37]^T\)(9.69,与最速下降第一步相同)。\(\mathbf{g}_1=\mathbf{A}\mathbf{x}_1=[0.11,\,-0.5]^T\)(9.70)。Fletcher–Reeves:
二维二次函数两步精确收敛(图 9.10)。与图 9.4 对比:共轭梯度把第二个方向调整为穿过等高线中心,而非与上一步正交。非二次函数的调整(如重启)在第 12 章讨论。演示 nnd9mc。
9.4 结果汇总(Summary of Results)(PDF p.287–288)
- 一般极小化:\(\mathbf{x}_{k+1}=\mathbf{x}_k+\alpha_k\mathbf{p}_k\) 或 \(\Delta\mathbf{x}_k=\alpha_k\mathbf{p}_k\)。
- 最速下降:\(\mathbf{x}_{k+1}=\mathbf{x}_k-\alpha_k\mathbf{g}_k\),\(\mathbf{g}_k=\nabla F|_{\mathbf{x}_k}\)。
- 稳定学习率(常数 \(\alpha\),二次函数):\(\alpha<2/\lambda_{\max}\),\(\lambda_i\) 为 Hessian \(\mathbf{A}\) 的特征值。
- 沿直线极小化的学习率(二次函数):\(\alpha_k=-\mathbf{g}_k^T\mathbf{p}_k/(\mathbf{p}_k^T\mathbf{A}\mathbf{p}_k)\);沿直线极小化后 \(\mathbf{g}_{k+1}^T\mathbf{p}_k=0\)。
- 牛顿法:\(\mathbf{x}_{k+1}=\mathbf{x}_k-\mathbf{A}_k^{-1}\mathbf{g}_k\),\(\mathbf{A}_k=\nabla^2F|_{\mathbf{x}_k}\)。
- 共轭梯度:\(\Delta\mathbf{x}_k=\alpha_k\mathbf{p}_k\)(\(\alpha_k\) 沿线极小化),\(\mathbf{p}_0=-\mathbf{g}_0\),\(\mathbf{p}_k=-\mathbf{g}_k+\beta_k\mathbf{p}_{k-1}\),\(\beta_k\) 取 HS/FR/PR 三式之一,\(\Delta\mathbf{g}_k=\mathbf{g}_{k+1}-\mathbf{g}_k\)。
9.5 例题精解(Solved Problems)(PDF p.289–302)
P9.1(等高线、轨迹与最大稳定学习率)\(F(\mathbf{x})=5x_1^2-6x_1x_2+5x_2^2+4x_1+4x_2\)。写成标准二次型:\(\mathbf{A}=\begin{bmatrix}10&-6\\-6&10\end{bmatrix}\),\(\mathbf{d}=[4,4]^T\)。特征值/向量:\(\lambda_1=4,\ \mathbf{z}_1=[1,1]^T\);\(\lambda_2=16,\ \mathbf{z}_2=[1,-1]^T\)。等高线为椭圆,最大曲率沿 \(\mathbf{z}_2\),最小曲率沿 \(\mathbf{z}_1\)(椭圆长轴)。驻点 \(\mathbf{x}^*=-\mathbf{A}^{-1}\mathbf{d}=[-1,-1]^T\)。(ii) 小学习率下的最速下降轨迹从 \(\mathbf{x}_0=[-1,-2.5]^T\) 出发,处处与所穿过的等高线正交,可不计算直接画出(图 P9.1)。(iii) \(\alpha<2/16=0.125\);图 P9.2 用 \(\alpha=0.12\)(收敛)与 \(0.13\)(发散)验证。
P9.2(一步收敛的特例)同一函数,\(\mathbf{x}_0=[0,-2]^T\),最速下降+线性极小化。\(\mathbf{g}_0=\mathbf{A}\mathbf{x}_0+\mathbf{d}=[16,-16]^T\),\(\mathbf{p}_0=[-16,16]^T\),\(\alpha_0=-\mathbf{g}_0^T\mathbf{p}_0/(\mathbf{p}_0^T\mathbf{A}\mathbf{p}_0)=512/8192=0.0625\),\(\mathbf{x}_1=[0,-2]^T-0.0625[16,-16]^T=[-1,-1]^T\),\(\mathbf{g}_1=\mathbf{0}\),一步到达极小。原因:初值相对极小点位于 Hessian 的某个特征向量方向(\(\mathbf{x}_0-\mathbf{x}^*=[1,-1]^T\parallel\mathbf{z}_2\))。若每个方向都是特征向量(所有特征值相等),最速下降总能一步收敛。
P9.3(线性网络训练)单输入线性神经元 \(a=\mathrm{purelin}(wp+b)\),训练对 \(\{p_1=2,t_1=0.5\}\)、\(\{p_2=-1,t_2=0\}\),性能指标 \(F(\mathbf{x})=(t_1-a_1)^2+(t_2-a_2)^2\),\(\mathbf{x}=[w,b]^T\)。P8.6 已得二次型:\(c=\mathbf{t}^T\mathbf{t}=0.25\),\(\mathbf{d}=-2\mathbf{G}^T\mathbf{t}=[-2,-1]^T\),\(\mathbf{A}=2\mathbf{G}^T\mathbf{G}=\begin{bmatrix}10&2\\2&4\end{bmatrix}\)(\(\mathbf{G}\) 的行为 \([p_q,1]\))。\(\mathbf{x}_0=[1,1]^T\),\(\alpha=0.05\):\(\mathbf{g}_0=[10,5]^T\),\(\mathbf{x}_1=[0.5,0.75]^T\);\(\mathbf{g}_1=[4.5,3]^T\),\(\mathbf{x}_2=[0.275,0.6]^T\);最终收敛到 \(\mathbf{x}^*=[0.167,0.167]^T\),即 \(w=b=0.167\)(图 P9.5)。注意:这种做法需事先掌握全部输入/输出对再迭代(批量);第 10 章的自适应算法每来一个样本就更新,可跟踪变化的环境。(ii) \(\lambda_{\max}=10.6\),\(\alpha<2/10.6=0.1887\)。
P9.4(牛顿法在非二次函数上步子很小)\(F(\mathbf{x})=\exp(x_1^2-x_1+2x_2^2+4)\),\(\mathbf{x}_0=[1,-2]^T\)。梯度 \(\nabla F=e^{(\cdot)}[2x_1-1,\;4x_2]^T\);Hessian \(=e^{(\cdot)}\begin{bmatrix}4x_1^2-4x_1+3&(2x_1-1)(4x_2)\\(2x_1-1)(4x_2)&16x_2^2+4\end{bmatrix}\)。在 \(\mathbf{x}_0\):\(\mathbf{g}_0=[0.163\times10^6,\,-1.302\times10^6]^T\),\(\mathbf{A}_0=\begin{bmatrix}0.049&-0.130\\-0.130&1.107\end{bmatrix}\times10^7\)。牛顿一步 \(\mathbf{x}_1=[0.971,\,-1.886]^T\)。真极小点:指数部分是二次函数 \(\tfrac12\mathbf{x}^T\mathrm{diag}(2,4)\mathbf{x}+[-1,0]\mathbf{x}+4\),极小点 \([0.5,0]^T\)。牛顿法只迈了很小一步,因为在 \(\mathbf{x}_0\) 附近 \(F\) 不能被二次函数准确近似;最终会收敛但需很多次迭代(图 P9.6)。
P9.5(Hessian 奇异时最速下降胜过牛顿法)\(F=\tfrac12\mathbf{x}^T\begin{bmatrix}1&-1\\-1&1\end{bmatrix}\mathbf{x}\)(第 8 章的“驻谷/静止谷 stationary valley”,式 8.59),\(\mathbf{x}_0=[1,0]^T\)。Hessian 奇异,牛顿法无法执行;函数无强极小,但沿直线 \(x_1=x_2\) 有弱极小。最速下降 \(\alpha=0.1\):\(\mathbf{x}_1=[0.9,0.1]^T\),\(\mathbf{x}_2=[0.82,0.18]^T\),最终收敛到弱极小点(图 P9.7)。第 12 章将介绍把最速下降与牛顿法结合以克服(近)奇异 Hessian 的技术(即 Levenberg–Marquardt)。
P9.6(牛顿步落在二次近似的鞍点)\(F(\mathbf{x})=x_1^3+x_1x_2-x_1^2x_2^2\),\(\mathbf{x}_0=[1,1]^T\)。\(\nabla F=[3x_1^2+x_2-2x_1x_2^2,\;x_1-2x_1^2x_2]^T\),\(\nabla^2F=\begin{bmatrix}6x_1-2x_2^2&1-4x_1x_2\\1-4x_1x_2&-2x_1^2\end{bmatrix}\)。\(\mathbf{g}_0=[2,-1]^T\),\(\mathbf{A}_0=\begin{bmatrix}4&-3\\-3&-2\end{bmatrix}\),\(\mathbf{x}_1=\mathbf{x}_0-\mathbf{A}_0^{-1}\mathbf{g}_0=[0.5882,\,1.1176]^T\)。二阶泰勒近似化简为 \(F(\mathbf{x})\approx-2+[1\;\;4]\mathbf{x}+\tfrac12\mathbf{x}^T\mathbf{A}_0\mathbf{x}\),驻点即 \(\mathbf{x}_1\);\(\mathbf{A}_0\) 特征值 \(5.24\) 与 \(-3.24\) 异号,故为鞍点而非极小(图 P9.8)。判别法:两特征值皆正→强极小;皆负→强极大;异号→鞍点。
P9.7(用共轭梯度重做 P9.3)\(F=0.25+[-2,-1]\mathbf{x}+\tfrac12\mathbf{x}^T\begin{bmatrix}10&2\\2&4\end{bmatrix}\mathbf{x}\),\(\mathbf{x}_0=[1,1]^T\)。\(\mathbf{g}_0=[10,5]^T\),\(\mathbf{p}_0=[-10,-5]^T\),\(\alpha_0=125/1300=0.0962\),\(\mathbf{x}_1=[0.038,0.519]^T\);\(\mathbf{g}_1=[-0.577,1.154]^T\);Polak–Ribière:\(\beta_1=\Delta\mathbf{g}_0^T\mathbf{g}_1/(\mathbf{g}_0^T\mathbf{g}_0)=1.665/125=0.0133\)(其余两式对二次函数结果相同);\(\mathbf{p}_1=[0.444,-1.220]^T\);\(\alpha_1=1.664/5.758=0.2889\);\(\mathbf{x}_2=[0.1667,0.1667]^T\),两步到达极小(图 P9.9)。
P9.8(共轭向量线性无关)设 \(\{\mathbf{p}_0,\dots,\mathbf{p}_{n-1}\}\) 关于 \(\mathbf{A}\) 共轭,若线性相关则存在不全为零的 \(a_j\) 使 \(\sum_j a_j\mathbf{p}_j=\mathbf{0}\)。左乘 \(\mathbf{p}_k^T\mathbf{A}\):\(\sum_j a_j\mathbf{p}_k^T\mathbf{A}\mathbf{p}_j=a_k\mathbf{p}_k^T\mathbf{A}\mathbf{p}_k=0\)。\(\mathbf{A}\) 正定(存在唯一强极小)时 \(\mathbf{p}_k^T\mathbf{A}\mathbf{p}_k>0\),故所有 \(a_k=0\),矛盾。所以共轭方向必线性无关(这也是 \(n\) 步终止的基础)。
9.6 结语与延伸阅读(Epilogue / Further Reading)(PDF p.303–304)
三种算法都以泰勒展开为基础:最速下降用一阶展开;牛顿法与共轭梯度针对二阶(二次)函数设计。
- 最速下降:极简单,只需梯度;学习率足够小保证收敛到驻点;缺点是训练时间长,尤其当 Hessian 特征值量级相差很大时。
- 牛顿法:通常快得多,二次函数一步找到驻点;需计算存储 Hessian 及其逆,收敛性质复杂。第 12 章给出改进版。
- 共轭梯度:两者折中,二次函数有限步终止,又不需 Hessian,适合参数很多的问题。
后续:第 10 章用近似最速下降(Widrow–Hoff 学习)训练线性网络;第 11 章推广到多层网络(反向传播);第 12 章用共轭梯度和牛顿变体加速多层网络训练。 延伸阅读:[Batt92] Battiti 关于一阶与二阶学习方法的综述(Neural Computation 1992);[Brog91] Brogan《Modern Control Theory》(线性系统与稳定性);[Gill81] Gill, Murray, Wright《Practical Optimization》;[Himm72] Himmelblau《Applied Nonlinear Programming》;[Scal85] Scales《Introduction to Non-Linear Optimization》(直观、含伪代码)。
9.7 习题(Exercises)(PDF p.305–308)概述
- E9.1:超过 P9.1 的最大稳定学习率是否一定发散?(考查:初值若恰好只在小特征值特征向量方向上有分量,则只需 \(\alpha<2/\lambda_{\text{该方向}}\) 即可收敛。)
- E9.2:\(F=\tfrac12\mathbf{x}^T\begin{bmatrix}6&-2\\-2&6\end{bmatrix}\mathbf{x}+[-1,-1]\mathbf{x}\),画等高线、小步长轨迹(\(\mathbf{x}_0=\mathbf{0}\)),\(\alpha=0.1\) 迭代两步,最大稳定学习率及给定初值下的最大稳定学习率,并编程验证。
- E9.3:\(F=x_1^2+2x_2^2\) 沿直线 \(\mathbf{x}=[1,1]^T+\alpha[-1,-2]^T\) 求极小,并验证该点梯度与直线正交。
- E9.4:对 E8.3 的函数从 \([1,1]^T\) 做两步带线性极小化的最速下降。
- E9.5:\(F=(1+(x_1+x_2-5)^2)(1+(3x_1-2x_2)^2)\),从 \([10,10]^T\) 和 \([2,2]^T\) 各做一步牛顿法,与真极小比较。
- E9.6:\(F=\tfrac12\mathbf{x}^T\begin{bmatrix}3&2\\2&0\end{bmatrix}\mathbf{x}+[4,4]\mathbf{x}\),画等高线、从原点一步牛顿,判断是否到达极小(Hessian 不定→鞍点)。
- E9.7:\(F=(x_1+x_2)^4+2(x_2-1)^2\),在 \([-1,1]^T\) 处二阶泰勒近似、检查一阶/二阶条件,从 \([0.5,0]^T\) 做一步牛顿。
- E9.8:\(F=\tfrac12\mathbf{x}^T\begin{bmatrix}7&-9\\-9&-17\end{bmatrix}\mathbf{x}+[16,8]\mathbf{x}\),牛顿一步是否到达极小,与最速下降路径对比。
- E9.9:\(F=(1+x_1+x_2)^2+\tfrac14x_1^4\) 在 \([2,2]^T\) 的二次近似与牛顿步,讨论牛顿法是否总收敛到强极小。
- E9.10:对 E8.5 函数编程实现最速下降与牛顿法并测试不同初值。
- E9.11:用共轭梯度(三种 \(\beta\) 都用到)重做 E9.4。
- E9.12:证明或否定“\(\mathbf{p}_1\) 共轭于 \(\mathbf{p}_2\)、\(\mathbf{p}_2\) 共轭于 \(\mathbf{p}_3\),则 \(\mathbf{p}_1\) 共轭于 \(\mathbf{p}_3\)”(共轭不具有传递性,可举反例)。
第 9 章小结
本章要点
- 迭代极小化框架 \(\mathbf{x}_{k+1}=\mathbf{x}_k+\alpha_k\mathbf{p}_k\);下降方向满足 \(\mathbf{g}_k^T\mathbf{p}_k<0\),最速下降取 \(\mathbf{p}_k=-\mathbf{g}_k\)。
- 二次函数上固定学习率最速下降等价于线性动态系统 \(\mathbf{x}_{k+1}=(\mathbf{I}-\alpha\mathbf{A})\mathbf{x}_k-\alpha\mathbf{d}\),稳定条件 \(\alpha<2/\lambda_{\max}\);收敛速度受 \(\lambda_{\min}\) 限制,条件数大则慢。
- 精确线搜索步长(二次)\(\alpha_k=-\mathbf{g}_k^T\mathbf{p}_k/\mathbf{p}_k^T\mathbf{A}\mathbf{p}_k\),搜索后 \(\mathbf{g}_{k+1}\perp\mathbf{p}_k\),最速下降因此锯齿前进。
- 牛顿法 \(\mathbf{x}_{k+1}=\mathbf{x}_k-\mathbf{A}_k^{-1}\mathbf{g}_k\):二次函数一步收敛,但只找二次近似的驻点,可能趋向鞍点、振荡、发散,且需 Hessian 及逆;拟牛顿法以 \(\mathbf{H}_k\approx\mathbf{A}^{-1}\) 代替。
- 共轭梯度:共轭条件可改写为 \(\Delta\mathbf{g}_k^T\mathbf{p}_j=0\),方向更新 \(\mathbf{p}_k=-\mathbf{g}_k+\beta_k\mathbf{p}_{k-1}\)(HS/FR/PR),对 \(n\) 维二次函数至多 \(n\) 步终止,只需梯度,适合大规模参数。
与量化交易的关联
- 这三类算法是量化中几乎所有数值估计的底层工具:因子模型/回归的参数估计(最小二乘、岭回归可视作二次函数极小化,正规方程 \(=\) 牛顿一步)、GARCH/状态空间模型的极大似然(常用 BFGS 等拟牛顿法)、均值–方差组合优化 \(\min\tfrac12\mathbf{w}^T\Sigma\mathbf{w}-\lambda\boldsymbol\mu^T\mathbf{w}\) 本身就是二次函数,Hessian 即协方差矩阵。
- 条件数直觉很实用:资产高度相关时协方差矩阵病态(\(\lambda_{\max}/\lambda_{\min}\) 大),梯度法收敛慢且解对噪声敏感,这正是组合优化中需要收缩估计(shrinkage)、因子化协方差或正则化的原因之一。
- 训练预测类神经网络(收益预测、波动预测)时,学习率上限 \(2/\lambda_{\max}\) 解释了特征标准化的必要性:未标准化特征使输入相关矩阵特征值悬殊,导致只能用很小学习率。
- 共轭梯度适合大规模稀疏线性系统(如大量资产的风险模型求解、二次规划内部子问题)。牛顿法“不区分极小与鞍点”的提醒,适用于非凸的校准问题(如期权隐含波动率曲面参数校准)中初值选择与多起点搜索。
推荐习题
- P9.1/E9.2:Hessian 特征分解、等高线与最大稳定学习率,核心技能。
- P9.2、E9.1:理解“初值在特征向量方向”对收敛的影响。
- P9.5、P9.6、E9.6:牛顿法遇奇异/不定 Hessian 的失效模式。
- P9.7、E9.11:手算共轭梯度并比较 HS/FR/PR 三式。
- P9.8、E9.12:共轭向量的线性无关性与非传递性证明。
第 10 章 Widrow–Hoff 学习(Widrow-Hoff Learning)(PDF p.309–352)
10.0 目标(PDF p.309)
前两章奠定了性能学习(performance learning)的基础;本章把它用于单层线性网络。Widrow–Hoff 学习是一种以均方误差(mean square error)为性能指标的近似最速下降算法。其重要性有二:(1) 至今广泛用于信号处理;(2) 它是第 11 章多层网络反向传播算法的前身。
10.1 历史与 ADALINE 网络(PDF p.310–312)
Bernard Widrow 在 1950 年代末开始研究神经网络,与 Rosenblatt 提出感知机学习规则大致同时。1960 年 Widrow 与研究生 Marcian Hoff 提出 ADALINE(ADAptive LInear NEuron)网络及 LMS(Least Mean Square,最小均方)算法 [WiHo60]。ADALINE 与感知机的唯一区别是传输函数为线性(purelin)而非硬限幅(hardlim)。两者都只能解决线性可分问题。但 LMS 比感知机规则更强:感知机规则保证收敛到能正确分类的解,但所得边界常紧贴训练样本,对噪声敏感;LMS 最小化均方误差,会尽量把决策边界推离训练样本。LMS 实际应用远多于感知机,尤其在数字信号处理(如长途电话线的回声消除)。由于 LMS 在信号处理大获成功、而推广到多层网络失败,Widrow 在 1960 年代初转向自适应信号处理,1980 年代才回到神经网络,研究用时间反向传播(temporal backpropagation,LMS 的后代)做自适应控制。
ADALINE 网络(图 10.1):\(R\) 维输入、\(S\) 个神经元,
单个两输入 ADALINE(图 10.2):\(a={}_1\mathbf{w}^T\mathbf{p}+b=w_{1,1}p_1+w_{1,2}p_2+b\)(10.4)。令 \(n=0\) 得决策边界 \({}_1\mathbf{w}^T\mathbf{p}+b=0\),与 \(p_1\) 轴交于 \(-b/w_{1,1}\)、与 \(p_2\) 轴交于 \(-b/w_{1,2}\)(图 10.3),\({}_1\mathbf{w}\) 指向 \(a>0\) 一侧。因此 ADALINE 可做二分类,但仅限线性可分情形,与感知机局限相同。
10.2 均方误差(Mean Square Error)(PDF p.312–315)
LMS 属于有监督训练,训练集 \(\{\mathbf{p}_1,t_1\},\dots,\{\mathbf{p}_Q,t_Q\}\)(10.5)。先讨论单神经元。把权值和偏置合并为
与一般二次函数 \(F=c+\mathbf{d}^T\mathbf{x}+\tfrac12\mathbf{x}^T\mathbf{A}\mathbf{x}\)(10.14)对照:
梯度 \(\nabla F=\mathbf{d}+\mathbf{A}\mathbf{x}=-2\mathbf{h}+2\mathbf{R}\mathbf{x}\)(10.16),令为零(10.17),若 \(\mathbf{R}\) 正定则唯一驻点为强极小:
10.3 LMS 算法(PDF p.315–317)
若能算出 \(\mathbf{h}\)、\(\mathbf{R}\),可直接用(10.18),或不求逆而用最速下降+(10.16)的梯度。但通常不便计算这些统计量,于是用估计梯度的近似最速下降。Widrow 与 Hoff 的关键洞见:用第 \(k\) 次迭代的平方误差估计均方误差
\(\nabla e^2(k)\) 前 \(R\) 个元素是对权值的导数,第 \(R+1\) 个是对偏置的导数:
10.4 收敛性分析(Analysis of Convergence)(PDF p.317–322)
第 9 章:二次函数最速下降的最大稳定学习率 \(\alpha<2/\lambda_{\max}\)(\(\mathbf{A}\) 的特征值)。LMS 是近似最速下降,结论相同。
在(10.28)中 \(\mathbf{x}_k\) 只依赖于 \(\mathbf{z}(k-1),\mathbf{z}(k-2),\dots,\mathbf{z}(0)\)。假设相继输入向量统计独立,则 \(\mathbf{x}_k\) 与 \(\mathbf{z}(k)\) 独立。对满足此条件的平稳输入过程,权向量的期望将收敛到
注意:这里证明的是权值期望的收敛;单次实现的权值会在最优解附近随机波动(波动幅度与 \(\alpha\) 有关,即“失调”问题,见 [WiSt85])。
苹果/橘子例(第 3 章问题):ADALINE 设零偏置,更新 \(\mathbf{W}(k+1)=\mathbf{W}(k)+2\alpha e(k)\mathbf{p}^T(k)\)(10.47)。
- \(k=0\):\(a(0)=\mathbf{W}(0)\mathbf{p}_1=0\),\(e(0)=-1-0=-1\),\(\mathbf{W}(1)=[0,0,0]+2(0.2)(-1)[1,-1,-1]=[-0.4,\;0.4,\;0.4]\)(10.52–10.54)。
- \(k=1\):输入苹果,\(a(1)=[-0.4,0.4,0.4][1,1,-1]^T=-0.4\),\(e(1)=1-(-0.4)=1.4\)(10.55–10.56),\(\mathbf{W}(2)=[-0.4,0.4,0.4]+2(0.2)(1.4)[1,1,-1]\)(续见下页)。 得 \(\mathbf{W}(2)=[0.16,\;0.96,\;-0.16]\)(10.57)。
- \(k=2\):再输入橘子,\(a(2)=\mathbf{W}(2)\mathbf{p}_1=-0.64\)(10.58),\(e(2)=-1-(-0.64)=-0.36\)(10.59),\(\mathbf{W}(3)=[0.016,\;1.1040,\;-0.0160]\)(10.60)。
- 持续迭代收敛到 \(\mathbf{W}(\infty)=[0,\;1,\;0]\)(10.61)。
与第 4 章感知机规则比较:ADALINE 得到的正是第 3 章手工设计的决策边界,位于两参考模式正中间;感知机规则一旦全部分类正确就停止,边界可能贴近样本。LMS 最小化均方误差,因而尽量把边界推离参考模式。
10.5 自适应滤波(Adaptive Filtering)(PDF p.321–329)
ADALINE 虽与感知机同样只能处理线性可分问题,却是实际应用最广的神经网络之一,主要领域是自适应滤波。
抽头延迟线(tapped delay line)(图 10.4):输入信号 \(y(k)\) 从左端进入,输出 \(R\) 维向量 \(\mathbf{p}(k)=[y(k),\,y(k-1),\dots,y(k-R+1)]^T\)(当前值及延迟 1 到 \(R-1\) 步的值,D 表示单步延迟)。
自适应滤波器 ADALINE(图 10.5):抽头延迟线 + ADALINE:
自适应噪声消除(Adaptive Noise Cancellation)(PDF p.323–329)
特别之处:网络要最小化的“误差”其实是我们想恢复的信号的近似。
情景:医生在线查看一名分心研究生的脑电图(EEG),信号 \(s\) 被 60 Hz 噪声污染。系统(图 10.6):60 Hz 噪声源 \(v\) 的一份样本送入自适应滤波器;噪声经“噪声路径滤波器”变为污染噪声 \(m\),叠加到 EEG 上得到被污染信号 \(t=s+m\),作为滤波器的期望输出(目标);滤波器输出 \(a\),“误差” \(e=t-a\) 即恢复的信号。滤波器只知道噪声源 \(v\),只能复现 \(t\) 中与 \(v\) 线性相关的部分,即 \(m\)。它实际上在模仿噪声路径滤波器,使 \(a\approx m\),于是 \(e\approx s\)。
单一正弦噪声时,两权值、无偏置的神经元足够:输入为噪声当前值与前一值,可实现所需的衰减与相移(图 10.7):\(a(k)=w_{1,1}v(k)+w_{1,2}v(k-1)\)。
分析:\(\mathbf{R}=E[\mathbf{z}\mathbf{z}^T]\),\(\mathbf{h}=E[t\mathbf{z}]\)(10.63),\(\mathbf{z}(k)=[v(k),\,v(k-1)]^T\)(10.64),\(t(k)=s(k)+m(k)\)(10.65)。
图 10.8:\(\alpha=0.1\)、权值初值 \((0,-2)\) 时的 LMS 轨迹,看起来像带噪声的最速下降。Hessian \(\mathbf{A}=2\mathbf{R}\) 的特征系统:\(\lambda_1=2.16,\ \mathbf{z}_1=[-0.7071,\,0.7071]^T\);\(\lambda_2=0.72,\ \mathbf{z}_2=[-0.7071,\,-0.7071]^T\)(10.86),决定了等高线形状。学习率减小→轨迹更平滑但更慢;增大→更锯齿、更振荡;过大则不收敛。最大稳定学习率 \(\alpha<2/2.16=0.926\)。
图 10.9:恢复信号起初很差,约 0.2 秒(\(\alpha=0.1\))后滤波器调好;实验后半段原始与恢复信号的均方差 0.002,相比信号均方值 0.0133 很小。误差不降到零的原因:LMS 用梯度的噪声估计而非真实梯度,即使均方误差已在极小点,权值仍会持续小幅变动(图 10.8 可见)。演示 nnd10nc、nnd10eeg(真实 EEG 与更复杂噪声)。
回声消除(Echo Cancellation)(PDF p.329)
长途电话线中,连接长途线与用户本地线的“混合器(hybrid)”阻抗失配产生回声。图 10.10 [WiWi85]:在长途线末端,入线信号同时送往自适应滤波器与混合器;滤波器目标为混合器输出,于是它抵消混合器输出中与入线信号相关的部分——即回声。两端各装一个。
10.6 结果汇总(PDF p.330–331)
- ADALINE:\(\mathbf{a}=\mathrm{purelin}(\mathbf{W}\mathbf{p}+\mathbf{b})\)。
- 均方误差:\(F(\mathbf{x})=E[e^2]=E[(t-\mathbf{x}^T\mathbf{z})^2]=c-2\mathbf{x}^T\mathbf{h}+\mathbf{x}^T\mathbf{R}\mathbf{x}\),\(c=E[t^2]\),\(\mathbf{h}=E[t\mathbf{z}]\),\(\mathbf{R}=E[\mathbf{z}\mathbf{z}^T]\);唯一极小(若存在)\(\mathbf{x}^*=\mathbf{R}^{-1}\mathbf{h}\),\(\mathbf{x}=[{}_1\mathbf{w};b]\),\(\mathbf{z}=[\mathbf{p};1]\)。
- LMS:\(\mathbf{W}(k+1)=\mathbf{W}(k)+2\alpha\mathbf{e}(k)\mathbf{p}^T(k)\),\(\mathbf{b}(k+1)=\mathbf{b}(k)+2\alpha\mathbf{e}(k)\);收敛点 \(\mathbf{x}^*=\mathbf{R}^{-1}\mathbf{h}\)。
- 稳定学习率:\(0<\alpha<1/\lambda_{\max}\),\(\lambda_{\max}\) 为 \(\mathbf{R}\) 的最大特征值。
- 抽头延迟线与自适应滤波器 \(a(k)=\sum_{i=1}^R w_{1,i}y(k-i+1)+b\)。
10.7 例题精解(PDF p.332–347)
P10.1(FIR 滤波器响应)三抽头 ADALINE 滤波器,\(w_{1,1}=2,\ w_{1,2}=-1,\ w_{1,3}=3\),无偏置;输入 \(\{\dots,0,0,0,5,-4,0,0,0,\dots\}\),\(y(0)=5,\ y(1)=-4\)。(i) \(k=0\) 之前输出 0。(ii) \(a(0)=[2,-1,3][5,0,0]^T=10\);\(a(1)=[2,-1,3][-4,5,0]^T=-13\);\(a(2)=[2,-1,3][0,-4,5]^T=19\);\(a(3)=[2,-1,3][0,0,-4]^T=-12\);\(a(4)=0\),此后全为 0。(iii) \(y(0)\) 影响 \(k=0\) 到 \(k=2\) 三个时刻,等于滤波器冲激响应长度。
P10.2(线性可分性判定)类 I:\(\mathbf{p}_1=[1,1]^T,\ \mathbf{p}_3=[2,2]^T\);类 II:\(\mathbf{p}_2=[-1,-1]^T\)。线性可分;边界过 \((3,0)\) 与 \((0,3)\),即截距 \(-b/w_{1,1}=3\)、\(-b/w_{1,2}=3\),取 \(b=3,\ w_{1,1}=-1,\ w_{1,2}=-1\)(输出 \(\ge0\) 判为类 I,输出 \(<0\) 判为类 II),此边界平分 \(\mathbf{p}_1\) 与 \(\mathbf{p}_3\) 连线以留余量。第二组:类 III \(\{[1,1]^T,[1,-1]^T\}\),类 IV \(\{[1,0]^T\}\)——\([1,0]\) 位于类 III 两点之间,非线性可分,ADALINE 无解。
P10.3(均方误差曲面)无偏置,\(\{\mathbf{p}_1=[1,1]^T,t_1=1\}\)、\(\{\mathbf{p}_2=[1,-1]^T,t_2=-1\}\) 等概率。\(c=E[t^2]=1\);\(\mathbf{h}=E[t\mathbf{z}]=0.5[1,1]^T-0.5[1,-1]^T=[0,1]^T\);\(\mathbf{R}=0.5\mathbf{p}_1\mathbf{p}_1^T+0.5\mathbf{p}_2\mathbf{p}_2^T=\mathbf{I}\)。\(F=1-2w_{1,2}+w_{1,1}^2+w_{1,2}^2\)。Hessian \(2\mathbf{R}\) 两特征值均为 2→等高线为圆;极小 \(\mathbf{x}^*=\mathbf{R}^{-1}\mathbf{h}=[0,1]^T\)。
P10.4(LMS 两步)\(\alpha=0.25\),零初值,每个模式只用一次。输入 \(\mathbf{p}_1\):\(a=0,\ e=1\),\(\mathbf{W}(1)=[0,0]+2(\tfrac14)(1)[1,1]=[\tfrac12,\tfrac12]\)。输入 \(\mathbf{p}_2\):\(a=[\tfrac12,\tfrac12][1,-1]^T=0\),\(e=-1\),\(\mathbf{W}(2)=[\tfrac12,\tfrac12]+2(\tfrac14)(-1)[1,-1]=[0,1]\)。两步即到最优,边界恰在两输入正中。(目标互换时最优权值为 \([0,-1]\)。)
P10.5(最大稳定学习率)MATLAB [V,D]=eig(R) 得特征值 1、1,\(\alpha<1/\lambda_{\max}=1\)。P10.4 中 \(\alpha=0.25\) 收敛很快;\(\alpha\ge1\) 会如何?(不稳定/不收敛。)
P10.6(自适应预测器)用前两个值预测下一个:\(a(k)=w_{1,1}y(k-1)+w_{1,2}y(k-2)\),\(t(k)=y(k)\)。平稳过程自相关 \(C_y(0)=3,\ C_y(1)=-1,\ C_y(2)=-1\)。\(c=C_y(0)=3\);\(\mathbf{R}=\begin{bmatrix}3&-1\\-1&3\end{bmatrix}\);\(\mathbf{h}=[C_y(1),C_y(2)]^T=[-1,-1]^T\);\(\mathbf{x}^*=\mathbf{R}^{-1}\mathbf{h}=[-\tfrac12,-\tfrac12]^T\)。Hessian \(\mathbf{A}=2\mathbf{R}=\begin{bmatrix}6&-2\\-2&6\end{bmatrix}\),\(|\mathbf{A}-\lambda\mathbf{I}|=\lambda^2-12\lambda+32=(\lambda-8)(\lambda-4)\),\(\lambda_1=4,\ \mathbf{v}_1=[1,1]^T\)(取向可为 \([-1,-1]\));\(\lambda_2=8,\ \mathbf{v}_2=[1,-1]^T\)。椭圆长轴沿 \(\mathbf{v}_1\),中心 \(\mathbf{x}^*\)。(ii) \(\alpha<1/\lambda_{\max}(\mathbf{R})=2/\lambda_{\max}(\mathbf{A})=2/8=0.25\)。(iii) 小学习率时轨迹垂直于等高线(近似最速下降),从 \([0.75,0]^T\) 出发(图 P10.7)。
P10.7(飞行员语音降噪)驾驶舱内另设麦克风采集发动机噪声送入自适应滤波器,目标为飞行员麦克风的被污染信号;滤波器只能减去与发动机噪声线性相关(且假定与语音不相关)的部分,误差即干净语音送往塔台(图 P10.8)。
P10.8(四类问题,对比感知机 P4.5)8 个二维输入分 4 类:类 1 \(\{[1,1],[1,2]\}\),类 2 \(\{[2,-1],[2,0]\}\),类 3 \(\{[-1,2],[-2,1]\}\),类 4 \(\{[-1,-1],[-2,-2]\}\);二神经元,目标把 P4.3 中的 0 换成 \(-1\):类 1 \([-1,-1]\),类 2 \([-1,1]\),类 3 \([1,-1]\),类 4 \([1,1]\)。各模式概率 1/8。初值 \(\mathbf{W}(0)=\mathbf{I}\),\(\mathbf{b}(0)=[1,1]^T\),\(\alpha=0.04\),按下标顺序输入。第一步:\(\mathbf{a}(0)=[2,2]^T\),\(\mathbf{e}(0)=[-3,-3]^T\),\(\mathbf{W}(1)=\begin{bmatrix}0.76&-0.24\\-0.24&0.76\end{bmatrix}\),\(\mathbf{b}(1)=[0.76,0.76]^T\)。第二步:\(\mathbf{a}(1)=[1.04,2.04]^T\),\(\mathbf{e}(1)=[-2.04,-3.04]^T\),\(\mathbf{W}(2)=\begin{bmatrix}0.5968&-0.5664\\-0.4832&-0.2736\end{bmatrix}\),\(\mathbf{b}(2)=[0.5968,0.5168]^T\)。收敛到 \(\mathbf{W}(\infty)=\begin{bmatrix}-0.5948&-0.0523\\0.1667&-0.6667\end{bmatrix}\),\(\mathbf{b}(\infty)=[0.0131,0.1667]^T\)(图 P10.10)。感知机规则全部分对即停;LMS 尽量远离样本。
P10.9(重现 Widrow–Hoff 1960 字符识别)字母 T、G、F 各有原始和平移两种 4×4 图样,共 6 个模式,目标分别为 +60、0、−60(他们用电表指针显示输出,这些数值适合表盘)。蓝格 +1、白格 −1,按列从左上向下展开成 16 维向量(如未平移的 T 为 \([1,-1,-1,-1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1]^T\))。网络为 16 输入单线性神经元(图 P10.12;他们自制的 ADALINE 机器“约一个饭盒大小”)。随机顺序输入、每次用 LMS(\(\alpha=0.03\))更新,之后用全部 6 个模式计算误差平方和作为质量度量。约 60 次呈现(每个模式约 10 次)完成训练(图 P10.13,误差平方和从约 \(2.5\times10^4\) 降到接近 0),与原论文结果相近。演示 nnd10lc,可观察网络对输入噪声的敏感性。
10.8 结语与延伸阅读(PDF p.348–349)
ADALINE 与感知机类似、同样只能分类线性可分模式,但 LMS 因最小化均方误差,得到对噪声更稳健的边界。LMS 自 1950 年代末提出至今仍广泛用于自适应滤波(如长途电话回声消除;第 14 章讨论用于滤波、预测、控制的动态网络)。LMS 也是反向传播的先驱:两者都是最小化均方误差的近似最速下降,唯一区别在于导数的计算方式;反向传播把 LMS 推广到多层网络,后者不受线性可分限制。 延伸阅读:[AnRo89] Anderson & Rosenfeld《Neurocomputing》(四十余篇经典文献汇编);[StDo84] Stanley 等《Digital Signal Processing》;[WiHo60] Widrow & Hoff “Adaptive switching circuits”(LMS 原始论文);[WiSt85] Widrow & Stearns《Adaptive Signal Processing》;[WiWi88] Widrow & Winter 关于自适应滤波与模式识别的综述(系统建模、统计预测、回声消除、逆建模等)。
10.9 习题概述(PDF p.350–356)
- E10.1:三抽头滤波器(\(w=1,-4,2\))对输入 \(\{0,0,0,1,1,2,0,0\}\) 的响应(卷积计算)。
- E10.2:用 LMS 区分横线与竖线图样,并解释 ADALINE 为何困难(非线性可分)。
- E10.3:P10.3 中两模式概率改为 0.75/0.25,误差曲面与最大稳定学习率如何变化。
- E10.4、E10.5:修改模式或加偏置后求均方误差、等高线、最大稳定学习率,编程 LMS 40 步,比较不同初值的终点与边界(考查 \(\mathbf{R}\) 奇异时解不唯一、初值决定终点)。
- E10.6:两类各两个三维向量,无偏置 ADALINE,LMS 四步(\(\alpha=0.1\))、最优权值、边界、加偏置的影响。
- E10.7、E10.8、E10.12:给定模式与目标(如目标 ±75、±26),画均方误差等高线、最优边界、最大稳定学习率、小学习率轨迹;E10.12 还问目标从 ±26 改为 ±2 对最大稳定学习率有何影响(无影响,只取决于 \(\mathbf{R}\))。
- E10.9、E10.10:不等概率(0.25/0.25/0.5)的三个输入/目标对,求最大稳定学习率并手算一步 LMS。
- E10.11:四个模式的两类问题,综合考查一步 LMS、最优权值、边界、偏置、稳定学习率、等高线与轨迹。
- E10.13:自适应预测器,\(y(k)=\sin(k\pi/5)\) 时写出均方误差,求 Hessian 特征系统、最小点、最大稳定学习率,手算三步并编程验证发散阈值。
- E10.14:用数字 “1”“2”“4” 重做 P10.9 并测试噪声敏感性。
第 10 章小结
本章要点
- ADALINE = 线性传输函数的单层网络,决策边界 \(\mathbf{W}\mathbf{p}+\mathbf{b}=0\),仅能处理线性可分问题。
- 均方误差 \(F(\mathbf{x})=c-2\mathbf{x}^T\mathbf{h}+\mathbf{x}^T\mathbf{R}\mathbf{x}\) 是二次函数,Hessian \(=2\mathbf{R}\);\(\mathbf{R}\) 正定时唯一极小 \(\mathbf{x}^*=\mathbf{R}^{-1}\mathbf{h}\)(维纳解),解的唯一性只取决于输入相关矩阵。
- LMS 用瞬时平方误差估计均方误差,随机梯度 \(-2e(k)\mathbf{z}(k)\),更新 \(\mathbf{W}\leftarrow\mathbf{W}+2\alpha\mathbf{e}\mathbf{p}^T\),计算量极低、可在线运行。
- 在输入独立、平稳假设下,权值期望收敛到 \(\mathbf{R}^{-1}\mathbf{h}\),稳定条件 \(0<\alpha<1/\lambda_{\max}(\mathbf{R})\);单次实现的权值在最优点附近抖动(梯度估计噪声)。
- 抽头延迟线+ADALINE=自适应 FIR 滤波器,可用于噪声消除、回声消除、预测;噪声消除中“误差”就是恢复信号。
与量化交易的关联
- 在线回归/自适应因子权重:LMS 就是在线(递推)线性回归。在因子模型中可用它逐日更新因子载荷或组合信号权重,学习率 \(\alpha\) 相当于遗忘速度——比滚动窗口 OLS 计算更省,并能跟踪缓慢漂移的关系;与 RLS(递推最小二乘)、卡尔曼滤波(时变 beta 估计)属于同一谱系,后者收敛更快。
- 线性预测器:P10.6 的自适应预测器即 AR(2) 模型,\(\mathbf{R}^{-1}\mathbf{h}\) 就是 Yule–Walker 方程的解;用于收益率/价差的短期线性预测时,结论“最优权值只依赖自相关函数”直接适用。
- 对冲比率与配对交易:噪声消除结构(参考输入 \(v\)、主输入 \(t=s+m\))与“用对冲资产去除共同因子暴露、剩余部分即 alpha/价差”同构:自适应滤波器估计对冲比率,“误差”即对冲后的残差序列。
- 稳定性与标准化:\(\alpha<1/\lambda_{\max}(\mathbf{R})\) 说明输入量纲(如成交量与收益率混用)会使 \(\lambda_{\max}\) 很大,必须标准化特征;特征值悬殊时收敛慢。
- 注意:LMS 收敛分析依赖输入独立与平稳,金融序列自相关和结构突变常违背这些假设,回测时需监控权值漂移与过度振荡。
推荐习题
- P10.3–P10.5、E10.3:从模式概率计算 \(c,\mathbf{h},\mathbf{R}\)、等高线与稳定学习率。
- P10.6、E10.13:自适应预测器(与 AR 模型/Yule–Walker 方程直接对应),最值得做。
- 噪声消除例(10.63–10.85)与 P10.7:理解参考信号消除结构。
- E10.4/E10.5:\(\mathbf{R}\) 奇异、加偏置与初值依赖。
- P10.9/E10.14:编程复现 LMS 分类并测试噪声敏感性。
第 11 章 反向传播(Backpropagation)(PDF p.357–402)
11.0 目标(PDF p.357)
本章把第 10 章的 LMS 推广为反向传播(backpropagation),用于训练多层网络。与 LMS 一样,它是以均方误差为性能指标的近似最速下降算法;两者唯一区别在于导数的计算方式。单层线性网络中误差是权值的显式线性函数,导数容易求;多层非线性网络中权值与误差的关系复杂,需要微积分链式法则(chain rule)。本章很大程度上是“如何使用链式法则”的示范。
11.1 历史与多层感知机(Multilayer Perceptrons)(PDF p.358–363)
Rosenblatt 的感知机规则与 Widrow–Hoff 的 LMS 只能训练单层网络,只能解决线性可分问题;二人都知道多层网络可以克服,但无法推广其算法。最早的多层网络训练算法见 Paul Werbos 1974 年博士论文 [Werbo74](以一般网络为背景,神经网络为特例),未在神经网络界传播。1980 年代中期被 Rumelhart、Hinton、Williams [RuHi86],Parker [Park85],Le Cun [LeCu85] 独立重新发现,经 Rumelhart 与 McClelland 领导的 PDP 小组著作《Parallel Distributed Processing》[RuMc86] 推广,引发研究热潮。反向传播训练的多层感知机是(当时)应用最广的神经网络。
记号:三层网络(图 11.1)即三个感知机网络级联,前一层输出是后一层输入;各层神经元数和传输函数可不同;上标表示层号(\(\mathbf{W}^1\)、\(\mathbf{W}^2\)…)。简写 \(R-S^1-S^2-S^3\)(11.1):输入数后接各层神经元数。\(\mathbf{a}^3=\mathbf{f}^3(\mathbf{W}^3\mathbf{f}^2(\mathbf{W}^2\mathbf{f}^1(\mathbf{W}^1\mathbf{p}+\mathbf{b}^1)+\mathbf{b}^2)+\mathbf{b}^3)\)。
模式分类:XOR(PDF p.359–360)
异或问题:\(\{\mathbf{p}_1=[0,0]^T,t_1=0\}\),\(\{\mathbf{p}_2=[0,1]^T,t_2=1\}\),\(\{\mathbf{p}_3=[1,0]^T,t_3=1\}\),\(\{\mathbf{p}_4=[1,1]^T,t_4=0\}\)。Minsky 与 Papert(1969)用它说明单层感知机的局限(两类非线性可分)。两层网络可解,且解很多。一种解:第一层两个神经元各画一条边界,第一条把 \(\mathbf{p}_1\) 与其他模式分开,第二条把 \(\mathbf{p}_4\) 分开;第二层用 AND 运算组合两条边界(图 11.2)。得到 2-2-1 硬限幅网络(图 11.3,按图示数值重建):第一层神经元 1 权值 \([2,2]\)、偏置 \(-1\)(边界 \(p_1+p_2=0.5\),分出 \(\mathbf{p}_1\)),神经元 2 权值 \([-1,-1]\)、偏置 \(1.5\)(边界 \(p_1+p_2=1.5\),分出 \(\mathbf{p}_4\));第二层权值 \([1,1]\)、偏置 \(-1.5\),实现 AND。阴影区(两条边界之间的条带)为输出 1 的区域。更多见 P11.1、P11.2。
函数逼近(Function Approximation)(PDF p.360–363)
网络也可视为函数逼近器:如控制系统中寻找从测量输出到控制输入的反馈函数;自适应滤波中寻找从延迟输入到输出的映射。
例:1-2-1 网络(图 11.4),第一层 log-sigmoid、第二层线性:
万能逼近:隐层用 sigmoid、输出层线性的两层网络,只要隐层单元足够多,能以任意精度逼近几乎任何感兴趣的函数([HoSt89] Hornik, Stinchcombe, White)。演示 nnd11nf。
11.2 反向传播算法(The Backpropagation Algorithm)(PDF p.363–369)
采用简写记号(图 11.7)。前向运算:
性能指标(Performance Index)
训练集 \(\{\mathbf{p}_1,\mathbf{t}_1\},\dots,\{\mathbf{p}_Q,\mathbf{t}_Q\}\)(11.9)。均方误差 \(F(\mathbf{x})=E[e^2]=E[(t-a)^2]\)(11.10),多输出时
链式法则(Chain Rule)
隐层权值不是误差的显式函数,需链式法则:若 \(f\) 只显式依赖于 \(n\),\(n\) 依赖于 \(w\),则
敏感度的反向传播(Backpropagating the Sensitivities)
再用一次链式法则得到递推关系:第 \(m\) 层敏感度由第 \(m+1\) 层敏感度算出——这就是“反向传播”名称的由来。用 Jacobian 矩阵
起点(最后一层):
算法总结(PDF p.369–370)
- 前向传播:\(\mathbf{a}^0=\mathbf{p}\)(11.41);\(\mathbf{a}^{m+1}=\mathbf{f}^{m+1}(\mathbf{W}^{m+1}\mathbf{a}^m+\mathbf{b}^{m+1})\),\(m=0,\dots,M-1\)(11.42);\(\mathbf{a}=\mathbf{a}^M\)(11.43)。
- 反向传播敏感度:\(\mathbf{s}^M=-2\dot{\mathbf{F}}^M(\mathbf{n}^M)(\mathbf{t}-\mathbf{a})\)(11.44);\(\mathbf{s}^m=\dot{\mathbf{F}}^m(\mathbf{n}^m)(\mathbf{W}^{m+1})^T\mathbf{s}^{m+1}\),\(m=M-1,\dots,2,1\)(11.45)。
- 更新:\(\mathbf{W}^m(k+1)=\mathbf{W}^m(k)-\alpha\mathbf{s}^m(\mathbf{a}^{m-1})^T\)(11.46);\(\mathbf{b}^m(k+1)=\mathbf{b}^m(k)-\alpha\mathbf{s}^m\)(11.47)。
11.3 数值例(Example)(PDF p.370–373)
用 1-2-1 网络(图 11.8)逼近
第一次输入 \(p=1\)(第 16 个训练点),\(a^0=1\):
- \(\mathbf{W}^2(1)=[0.09,-0.17]-0.1(-2.522)[0.321,\,0.368]=[0.171,\;-0.0772]\);
- \(b^2(1)=0.48-0.1(-2.522)=0.732\);
- \(\mathbf{W}^1(1)=[-0.27,-0.41]^T-0.1[-0.0495,0.0997]^T(1)=[-0.265,\;-0.420]^T\);
- \(\mathbf{b}^1(1)=[-0.48,-0.13]^T-0.1[-0.0495,0.0997]^T=[-0.475,\;-0.140]^T\)。
完成第一次迭代后随机选下一输入继续,直到网络响应与目标函数差异可接受(通常需对训练集多次遍历;收敛准则见第 12 章)。演示 nnd11bc。
11.4 批量与增量训练(Batch vs. Incremental Training)(PDF p.373–374)
上述算法是随机梯度下降,即“在线”/增量训练(incremental training):每个输入后更新(同 LMS)。也可批量训练(batch training):所有输入都送入后计算完整梯度再更新。若各输入等概率,
11.5 反向传播的使用(Using Backpropagation)(PDF p.374–380)
网络结构选择(Choice of Network Architecture)
足够多隐层神经元可逼近几乎任何函数,但一般无法事先确定需要几层、多少神经元。例 1:逼近
收敛(Convergence)
上面的失败是网络能力受限所致;这里给出网络有能力但学习算法没找到好参数的例子。逼近
泛化(Generalization)
网络通常只用有限训练样本 \(\{\mathbf{p}_q,\mathbf{t}_q\}\)(11.56)训练,而训练集代表更大的输入/输出总体,网络须把所学推广到总体。例:在 \(p=-2,-1.6,-1.2,\dots,1.6,2\)(共 11 点)采样
原则:要能泛化,参数个数应少于训练数据点数。与所有建模问题一样,应使用能充分表示训练集的最简单网络——小网络够用就不要用大网络(奥卡姆剃刀 Ockham's Razor)。另一做法是在过拟合前停止训练(提前停止,第 13 章详述)。演示 nnd11gn。
11.6 结果汇总(PDF p.381–382)
- 多层网络:\(\mathbf{a}^3=\mathbf{f}^3(\mathbf{W}^3\mathbf{f}^2(\mathbf{W}^2\mathbf{f}^1(\mathbf{W}^1\mathbf{p}+\mathbf{b}^1)+\mathbf{b}^2)+\mathbf{b}^3)\)。
- 性能指标 \(F(\mathbf{x})=E[\mathbf{e}^T\mathbf{e}]\);近似性能指标 \(\hat F(\mathbf{x})=\mathbf{e}^T(k)\mathbf{e}(k)\);敏感度 \(\mathbf{s}^m=\partial\hat F/\partial\mathbf{n}^m\)。
- 前向:\(\mathbf{a}^0=\mathbf{p}\),\(\mathbf{a}^{m+1}=\mathbf{f}^{m+1}(\mathbf{W}^{m+1}\mathbf{a}^m+\mathbf{b}^{m+1})\),\(\mathbf{a}=\mathbf{a}^M\)。
- 反向:\(\mathbf{s}^M=-2\dot{\mathbf{F}}^M(\mathbf{n}^M)(\mathbf{t}-\mathbf{a})\),\(\mathbf{s}^m=\dot{\mathbf{F}}^m(\mathbf{n}^m)(\mathbf{W}^{m+1})^T\mathbf{s}^{m+1}\),\(\dot{\mathbf{F}}^m\) 为对角阵,元 \(\dot f^m(n^m_j)=\partial f^m(n^m_j)/\partial n^m_j\)。
- 更新:\(\mathbf{W}^m(k+1)=\mathbf{W}^m(k)-\alpha\mathbf{s}^m(\mathbf{a}^{m-1})^T\),\(\mathbf{b}^m(k+1)=\mathbf{b}^m(k)-\alpha\mathbf{s}^m\)。
11.7 例题精解(PDF p.383–396)
P11.1(竖线/横线分类)2×2 网格按列扫描,白格 −1、蓝格 1。类 I(竖线):\(\mathbf{p}_1=[1,1,-1,-1]^T\),\(\mathbf{p}_2=[-1,-1,1,1]^T\);类 II(横线):\(\mathbf{p}_3=[1,-1,1,-1]^T\),\(\mathbf{p}_4=[-1,1,-1,1]^T\)。(i) 线性可分需存在 \(\mathbf{W},b\) 使 \(\mathbf{W}\mathbf{p}_1+b\ge0\)、\(\mathbf{W}\mathbf{p}_2+b\ge0\)、\(\mathbf{W}\mathbf{p}_3+b<0\)、\(\mathbf{W}\mathbf{p}_4+b<0\)。前两式写成 \((w_{1,1}+w_{1,2})-(w_{1,3}+w_{1,4})\ge-b\) 与 \((w_{1,3}+w_{1,4})-(w_{1,1}+w_{1,2})\ge-b\),相加得 \(b\ge0\);后两式写成 \((w_{1,1}+w_{1,3})-(w_{1,2}+w_{1,4})<-b\) 与其相反数 \(<-b\),相加得 \(b<0\),矛盾(原书表述为两组条件各自互相矛盾)。故不存在分隔超平面。(ii) 设计(图 P11.2):类 I 要么前两元同为 1、要么后两元同为 1,类 II 是 1/−1 交替。第一层两个 hardlims 神经元各做 AND:神经元 1 检查 \(p_1,p_2\) 是否都为 1(权 \([1,1,0,0]\)、偏置 \(-1\) 一类设置),神经元 2 检查 \(p_3,p_4\);第二层做 OR(权 \([1,1]\)、偏置 \(1\))。前两元或后两元同为 1 时输出 1。
P11.2(任意分类问题的三层构造法)图 P11.3 中两类点非线性可分。通用方法:三层硬限幅网络。第一层建立一组线性边界,把每个类 I 向量与每个类 II 向量分开——本例用 11 条边界(图 P11.4),\(\mathbf{W}^1\) 每行对应一条边界(行向量为 \([\pm1,\pm1]\) 形式),\(\mathbf{b}^1=[-2,3,0.5,0.5,-1.75,2.25,-3.25,3.75,6.25,-5.75,-4.75]^T\)(求边界权值偏置的方法见第 3、4、10 章)。第二层 4 个 AND 神经元组合第一层输出:
hardlims(图 P11.6)。阴影区输出 1(类 II),其余 −1(类 I)(图 P11.7)。要点:第二层(AND)形成的决策区域是凸的,第三层(OR)可组合成任意形状;只要隐层神经元足够,此法能实现任意决策边界。
P11.3(线性多层网络等价于单层)\(\mathbf{a}^1=\mathbf{W}^1\mathbf{p}+\mathbf{b}^1\),\(\mathbf{a}^2=\mathbf{W}^2\mathbf{W}^1\mathbf{p}+[\mathbf{W}^2\mathbf{b}^1+\mathbf{b}^2]\),\(\mathbf{a}^3=\mathbf{W}^3\mathbf{W}^2\mathbf{W}^1\mathbf{p}+[\mathbf{W}^3\mathbf{W}^2\mathbf{b}^1+\mathbf{W}^3\mathbf{b}^2+\mathbf{b}^3]\)。\(M\) 层线性网络等价于 \(\mathbf{W}=\mathbf{W}^M\mathbf{W}^{M-1}\cdots\mathbf{W}^1\),\(\mathbf{b}=\mathbf{W}^M\cdots\mathbf{W}^2\mathbf{b}^1+\mathbf{W}^M\cdots\mathbf{W}^3\mathbf{b}^2+\dots+\mathbf{b}^M\)。(所以隐层必须非线性。)
P11.4(链式法则用于动态系统初值优化)系统 \(y(k+1)=f(y(k))\),选初值 \(y(0)\) 使终时 \(K\) 的输出接近目标 \(t\),\(F(y(0))=(t-y(K))^2\)。梯度 \(\frac{\partial F}{\partial y(0)}=-2(t-y(K))\frac{\partial y(K)}{\partial y(0)}\)。\(y(K)\) 不是 \(y(0)\) 的显式函数,定义 \(r(k)\equiv\partial y(k)/\partial y(0)\),链式法则
P11.5(显式求导与反传结果一致)1-1-1 网络,logsig 隐层 + 线性输出,\(w^1=1,b^1=1,w^2=-2,b^2=1\),\((p=1,t=1)\)。(i) \(e^2=(t-a^2)^2=\Big(t-\big(w^2\frac{1}{1+\exp(-(w^1p+b^1))}+b^2\big)\Big)^2\)。(ii) \(\frac{\partial e^2}{\partial w^1}=2e\frac{\partial e}{\partial w^1}=2e\Big(w^2\frac{\exp(-(w^1p+b^1))}{(1+\exp(-(w^1p+b^1)))^2}(-p)\Big)\)。数值:\(a^1=1/(1+e^{-2})=0.8808\),\(a^2=-2(0.8808)+1=-0.7616\),\(e=t-a^2=1.7616\),\(\partial e^2/\partial w^1=2(1.7616)(-2)\dfrac{e^{-2}}{(1+e^{-2})^2}(-1)=7.0464\times\dfrac{0.1353}{1.289}=0.7398\)。(iii) 反传:\(s^2=-2(1)(1-(-0.7616))=-3.5232\);\(s^1=a^1(1-a^1)(-2)s^2=0.8808(0.1192)(-2)(-3.5232)=0.7398\);\(\partial e^2/\partial w^1=s^1a^0=s^1p=0.7398\),与 (ii) 一致。
P11.6(tansig 导数)logsig \(a=1/(1+e^{-n})\) 的导数 \(\dot f=a(1-a)\)。双曲正切 \(a=\mathrm{tansig}(n)=\frac{e^n-e^{-n}}{e^n+e^{-n}}\):
P11.7(tansig 两层网络一次迭代)\(w^1(0)=-1,b^1(0)=1,w^2(0)=-2,b^2(0)=1\),\((p=-1,t=1)\),\(\alpha=1\)。前向:\(n^1=(-1)(-1)+1=2\),\(a^1=\tanh2=0.964\);\(n^2=(-2)(0.964)+1=-0.928\),\(a^2=\tanh(-0.928)=-0.7297\);\(e=1-(-0.7297)=1.7297\)。反传:\(s^2=-2(1-(a^2)^2)e=-2(1-0.7297^2)(1.7297)=-1.6175\);\(s^1=(1-(a^1)^2)w^2s^2=(1-0.964^2)(-2)(-1.6175)=0.2285\)。更新:\(w^2(1)=-2-1(-1.6175)(0.964)=-0.4407\);\(w^1(1)=-1-1(0.2285)(-1)=-0.7715\);\(b^2(1)=1-1(-1.6175)=2.6175\);\(b^1(1)=1-0.2285=0.7715\)。
P11.8(带旁路连接的网络)输入直接连到第二层:\(\mathbf{n}^2=\mathbf{W}^2\mathbf{a}^1+\mathbf{W}^{2,1}\mathbf{p}+\mathbf{b}^2\)。敏感度定义为对净输入的导数,只是净输入多加了一项,敏感度反传方程不变;\(\mathbf{W}^1,\mathbf{b}^1,\mathbf{W}^2,\mathbf{b}^2\) 的更新也不变。新增:\(\partial n^2_i/\partial w^{2,1}_{i,j}=p_j\),故 \(\partial\hat F/\partial w^{2,1}_{i,j}=s^2_ip_j\),\(\mathbf{W}^{2,1}(k+1)=\mathbf{W}^{2,1}(k)-\alpha\mathbf{s}^2\mathbf{p}^T\)。要点:反向传播思想适用于比标准前馈网络更一般的结构。
P11.9(线性递归网络的动态反向传播)\(a(k+1)=\mathrm{purelin}(w_1p(k)+w_2a(k))\)(图 P11.11)。\(\hat F=(t(k)-a(k))^2\),\(\Delta w_i=-\alpha\partial\hat F/\partial w_i\),\(\frac{\partial\hat F}{\partial w_i}=-2(t(k)-a(k))\frac{\partial a(k)}{\partial w_i}\)。对网络方程两边求导(注意 \(a(k)\) 本身也是 \(w_1,w_2\) 的函数):
P11.10(单层线性网络时反向传播即 LMS)\(\mathbf{s}^1=-2\dot{\mathbf{F}}^1(\mathbf{n}^1)(\mathbf{t}-\mathbf{a})=-2\mathbf{I}(\mathbf{t}-\mathbf{a})=-2\mathbf{e}\);\(\mathbf{W}^1(k+1)=\mathbf{W}^1(k)-\alpha(-2\mathbf{e})\mathbf{p}^T=\mathbf{W}^1(k)+2\alpha\mathbf{e}\mathbf{p}^T\),\(\mathbf{b}^1(k+1)=\mathbf{b}^1(k)+2\alpha\mathbf{e}\),与第 10 章 LMS 相同。
11.8 结语与延伸阅读(PDF p.397–399)
多层网络是单层感知机的有力扩展:可解决任意分类问题,并可作万能函数逼近器(sigmoid 隐层两层网络在隐层神经元足够时可逼近任何实际函数)。反向传播是 LMS 的扩展,二者都是最小化平方误差的近似最速下降,区别只在梯度计算:用链式法则先在最后一层求导,再反向传播到隐层。主要问题:(1) 训练时间长,基本算法在实际问题上可能需要数周(第 12 章讨论原因和加速方法);(2) 过拟合——记住训练数据却不能泛化(第 13 章)。实践问题见第 22 章,案例见第 23(函数逼近)、24(概率估计)、25(模式识别)章。 延伸阅读:[HoSt89] Hornik–Stinchcombe–White 证明任意挤压函数的多层前馈网络可逼近任何 Borel 可积函数;[LeCu85] Le Cun;[Park85] Parker(MIT 技术报告);[RuHi86] Rumelhart–Hinton–Williams《Nature》论文(最广为人知的反向传播描述);[RuMc86]《Parallel Distributed Processing》;[Werbo74] Werbos 博士论文(最早描述,但未用此名)。
11.9 习题概述(PDF p.400–412)
- E11.1:为四种阴影区域分类任务设计多层硬限幅网络(给出权值矩阵与偏置)。
- E11.2:为图 11.4 的 1-2-1 网络手选参数,使响应通过指定点(理解台阶位置/高度与参数关系)。
- E11.3:求与给定两层线性网络等价的单层网络(P11.3 的应用)。
- E11.4:链式法则练习:\(f=\sin n,\ n=w^2\);\(f=\tanh n,\ n=5w\);\(f=\exp n,\ n=\cos w\);\(f=\mathrm{logsig}(n),\ n=\exp w\)。
- E11.5:对正文 1-2-1 例显式写出 \(e^2\) 并求导,与反传结果比较。
- E11.6–E11.12:各种非标准传输函数(\(f^1=n^2\)、\(f^2=1/n\)、平方律神经元、立方律隐层等)的网络做一次前向+反传+更新(手算矩阵运算,\(\alpha\) 取 0.1、0.5、1 等)。
- E11.13:每层加可训练标量增益 \(\mathbf{n}^m=\beta^m\mathbf{W}^m\mathbf{a}^{m-1}+\mathbf{b}^m\),修改反向传播。
- E11.14:用修改的反传求 \(\partial a^2/\partial n^2\)、\(\partial a^2/\partial n^1_1\) 等,再用链式法则求 \(\partial a^2/\partial p\)。
- E11.15:高阶网络 \(a=\mathrm{logsig}(w_1p_1+w_2p_2+w_{1,2}p_1p_2+b)\) 的学习规则与一次迭代。
- E11.16:旁路连接网络的反传推导(同 P11.8)。
- E11.17、E11.18:净输入改为平方距离 \(n_i=-\sum_j(w_{i,j}-a_j)^2\) 或乘以偏置 \(n_i=(\sum_jw_{i,j}a_j)b_i\) 时敏感度递推如何改变。
- E11.19:级联系统(无权值)求 \(\partial a^M/\partial p\) 的递推算法,中间变量 \(q_i=\partial a^M/\partial a^i\)。
- E11.20:如何修改反传以求平方误差对输入的梯度(敏感性分析/对抗样本的基础)。
- E11.21:牛顿法需要的二阶导数 \(\partial^2F/\partial w^2\) 时链式法则的形式。
- E11.22:性能函数改为误差四次方之和加权值平方和(正则化)时反传公式的变化。
- E11.23:P11.4 的“后向”方法(定义 \(q(k)=\partial e^2(K)/\partial y(k)\) 沿时间反向递推,即伴随法/BPTT 思想)。
- E11.24:递归网络 \(a(k)=p(k)+wa(k-1)\) 求 \(\partial F/\partial w\) 的前向递推并对 \(K=3\) 显式验证。
- E11.25:编程实现 1-\(S^1\)-1 反传(\(S^1=2,10\)),逼近 \(g(p)=1+\sin(\pi p/2)\),研究学习率与初值对收敛的影响。
第 11 章小结
本章要点
- 多层网络(非线性隐层)可解决非线性可分问题(XOR、任意区域:第一层线性边界→第二层 AND 形成凸区域→第三层 OR 组合任意区域),且为万能函数逼近器;1-\(S^1\)-1 网络响应是 \(S^1\) 个 sigmoid 的叠加。
- 反向传播 = 近似最速下降 + 链式法则:\(\partial\hat F/\partial w^m_{i,j}=s^m_ia^{m-1}_j\),敏感度 \(\mathbf{s}^m=\partial\hat F/\partial\mathbf{n}^m\) 由 \(\mathbf{s}^M=-2\dot{\mathbf{F}}^M(\mathbf{t}-\mathbf{a})\) 起,按 \(\mathbf{s}^m=\dot{\mathbf{F}}^m(\mathbf{W}^{m+1})^T\mathbf{s}^{m+1}\) 反传。
- 导数技巧:logsig \(\dot f=a(1-a)\),tansig \(\dot f=1-a^2\),purelin \(\dot f=1\)。
- 增量(随机梯度)与批量(平均梯度)两种训练方式。
- 实践问题:网络规模(容量不足无法拟合)、局部极小(多初值尝试)、泛化(参数少于数据点;奥卡姆剃刀;提前停止)。
- 反传思想可推广到旁路连接、递归网络(动态反向传播)、单层线性网络退化为 LMS。
与量化交易的关联
- 非线性收益预测:MLP 是截面收益预测(如 Gu, Kelly & Xiu 2020 的因子非线性组合)、波动率预测、订单簿短期价格方向预测的基础模型;“容量—泛化”权衡(1-9-1 用 28 个参数拟合 11 点)直接对应金融数据低信噪比、样本有限时的过拟合风险,应优先小网络并配合样本外验证与提前停止。
- 局部极小与多初值:金融模型训练结果对随机种子敏感,实践中应做多种子集成(ensemble)并报告分散度,避免把某一次幸运初始化当成策略 alpha。
- 对输入求梯度(E11.20):可用于计算模型对各因子的敏感度(类似因子暴露/边际贡献的非线性版本)、做可解释性分析或压力测试。
- 动态反向传播(P11.4、P11.9、E11.23):与期权定价中的 pathwise 敏感度(Greeks 的伴随算法 AAD)是同一思想——沿路径前向/反向递推导数,是蒙特卡洛定价中高效计算 Delta/Vega 的核心技术。
- 批量 vs 增量:在线更新适合实时交易系统中模型的增量学习;批量适合日频离线重训。
推荐习题
- P11.5、P11.7、E11.5:手算前向/反传/更新,并用显式求导核对——掌握反传的必做题。
- P11.2、E11.1:理解多层网络的分类几何。
- P11.4、P11.9、E11.23、E11.24:动态系统/递归网络的梯度递推(与 AAD、BPTT 相通)。
- E11.20、E11.22:对输入求梯度、修改损失函数(含正则项)。
- E11.25:编程实现并实验学习率与初值。
第 12 章 反向传播的变体(Variations on Backpropagation)(PDF p.413–464)
12.0 目标与分类(PDF p.413–414)
第 11 章的反向传播是重大突破,但基本算法对大多数实际问题太慢(可能需数天到数周机时)。本章先用函数逼近例说明慢的原因,再介绍加速方法。加速研究分两类:
- 启发式技术(heuristic):源自对标准算法表现的观察,如可变学习率、动量、变量重标度([VoMa88]、[Jacob88]、[Toll90]、[RiIr90])。本章讲动量与可变学习率。
- 标准数值优化技术([Shan90]、[Barn92]、[Batt92]、[Char92]):训练前馈网络最小化平方误差本质上就是数值优化问题,不必“重新发明轮子”。本章讲共轭梯度与 Levenberg–Marquardt(牛顿法的变体)。
强调:本章所有算法都使用反向传播过程(导数从最后一层向第一层计算),区别只在于如何用这些导数更新权值。为避免混淆,把基本算法称为最速下降反向传播(SDBP, steepest descent backpropagation)。
12.1 反向传播的缺点(Drawbacks of Backpropagation)(PDF p.415–421)
LMS 在学习率不太大时保证收敛到均方误差最小解,因为单层线性网络的均方误差是二次函数:只有一个驻点,Hessian 恒定,任一方向曲率不变,等高线为椭圆。SDBP 是 LMS 的推广(单层线性网络时等价,见 P11.10),但多层网络的性能曲面可能有多个局部极小,且曲率在参数空间不同区域差异巨大。
性能曲面例(Performance Surface Example)
1-2-1 网络,两层均为 log-sigmoid(图 12.1)。为知道最优解,让它逼近同一网络在以下参数下的响应:
- 图 12.3(\(w^1_{1,1}\) 与 \(w^2_{1,1}\)):显然不是二次函数,曲率变化剧烈——平坦区域可用大学习率,高曲率区域需小学习率,难以选定单一学习率。平坦区域在意料之中,因为 sigmoid 对大输入非常平。存在多个局部极小:全局极小在 \(w^1_{1,1}=10,\ w^2_{1,1}=1\),位于平行于 \(w^1_{1,1}\) 轴的山谷中;另一局部极小在平行于 \(w^2_{1,1}\) 轴的山谷中(图外,约 \(w^1_{1,1}=0.88,\ w^2_{1,1}=38.6\))。
- 图 12.4(\(w^1_{1,1}\) 与 \(b^1_1\)):极小在 \((10,-5)\);曲面扭曲,有的区域陡、有的极平。如初值 \(w^1_{1,1}=0,\ b^1_1=-10\) 处梯度几乎为零,最速下降实际上会停住,尽管离局部极小很远。
- 图 12.5(\(b^1_1\) 与 \(b^1_2\)):极小在 \(b^1_1=-5,\ b^1_2=5\)。体现多层网络的对称性:存在两个误差值相同的局部极小,第二个对应把网络“上下翻转”(交换第一层上下两个神经元)。正因为这种对称性,原点往往是性能曲面的鞍点,不能把初始权值和偏置设为零。
初值选择启示:不设为零(原点倾向为鞍点);不设为大值(远离最优点处曲面非常平坦)。通常取小随机数,既避开原点鞍点又不进入平坦区(另一种方法见 [NgWi90],即 Nguyen–Widrow 初始化)。并应尝试多个初值以确保到达全局极小。
收敛例(Convergence Example)(PDF p.419–421)
使用批处理(batching):整个训练集呈现完后才更新参数,各样本梯度取平均得到更准的梯度估计(若训练集完备即覆盖所有输入/输出对,则梯度精确)。图 12.6:只调 \(w^1_{1,1}\)、\(w^2_{1,1}\) 的两条 SDBP(批量)轨迹。
- 轨迹 a:最终收敛到最优解但很慢——沿途曲率变化:先是中等斜坡,然后经过很平的曲面,再落入坡度很缓的山谷。增大学习率能加快通过平坦区,但落入山谷时会不稳定。
- 轨迹 b:被困在山谷中,收敛到局部极小 \(w^1_{1,1}=0.88,\ w^2_{1,1}=38.6\)。多局部极小是多层网络的典型特征,应试多个初值(有些局部极小误差值相同,如图 12.5,所以不同初值不必收敛到相同参数,只要最小误差相同即可)。 图 12.7(误差 vs 迭代数,对数横轴):SDBP 典型地长时间几乎无进展,然后短时间迅速下降。平坦段希望增大学习率,但到陡峭处又会不稳定。图 12.8:同轨迹 a 但学习率更大,起初收敛快,进入含极小点的狭窄山谷后开始发散,在山谷两侧来回振荡。启示:(1) 应可变学习率——平坦处增大、坡度增大时减小(问题:算法如何知道自己在平坦处?);(2) 平滑轨迹——对参数更新取平均,滤掉振荡。演示 nnd12sd。
12.2 启发式改进之一:动量(Momentum)(PDF p.421–423)
基于“平滑振荡可改善收敛”的观察,用低通滤波器。先看一阶滤波器:
SDBP 的参数更新为 \(\Delta\mathbf{W}^m(k)=-\alpha\mathbf{s}^m(\mathbf{a}^{m-1})^T\)(12.7),\(\Delta\mathbf{b}^m(k)=-\alpha\mathbf{s}^m\)(12.8)。加入动量滤波得动量反向传播(MOBP):
12.3 启发式改进之二:可变学习率(Variable Learning Rate)(PDF p.424–426)
单层线性网络的误差曲面是二次的,Hessian 恒定,最大稳定学习率 \(2/\lambda_{\max}\)(9.25)。多层网络曲面形状随区域变化,可在训练中调整学习率,诀窍在于何时调、调多少。介绍一种简单的批量方法 [VoMa88]——**可变学习率反向传播(VLBP)**规则:
- 若一次权值更新后(整个训练集上的)平方误差增加超过设定百分比 \(\zeta\)(通常 1%–5%),则丢弃该更新,学习率乘以因子 \(0<\rho<1\),动量系数 \(\gamma\)(若使用)置零;
- 若平方误差下降,则接受更新,学习率乘以因子 \(\eta>1\);若 \(\gamma\) 之前被置零则恢复原值;
- 若平方误差增加但少于 \(\zeta\),接受更新,学习率不变;若 \(\gamma\) 之前被置零则恢复原值。 (数值例见 P12.3。)
应用于前述例子(初值、初始学习率、动量同图 12.10),\(\eta=1.05,\ \rho=0.7,\ \zeta=4\%\)(12.11)。图 12.11/12.12:轨迹沿直线前进、误差持续下降时学习率(步长)增大;到达狭窄山谷时学习率迅速减小,否则会振荡、误差剧增;每当潜在一步会使误差增加超过 4%,就降低学习率并去掉动量,使轨迹能急转弯沿山谷走向极小点;之后学习率再次增大加速收敛;接近收敛越过极小点时学习率再次降低。这是 VLBP 轨迹的典型过程。
变体:Jacobs 的 delta-bar-delta 规则 [Jaco88]:每个参数有自己的学习率,参数变化方向连续几次相同则增大该学习率,方向交替则减小。Tollenaere 的 SuperSAB [Toll90] 类似但规则更复杂。Fahlman 的 Quickprop [Fahl88]:假设误差曲面在极小点附近为开口向上的抛物线,且各权值影响可独立考虑。
启发式方法的两大缺点:(1) 需设定多个参数(如 \(\zeta,\rho,\eta\)),而 SDBP 只需学习率;复杂方法可能有五六个参数,性能常对参数敏感且依问题而定;(2) 有时在 SDBP 最终能解决的问题上反而不收敛。越复杂的算法这两点越常见。演示 nnd12vl。
12.4 数值优化技术之一:共轭梯度反向传播(CGBP)(PDF p.426–431)
回顾第 9 章:最速下降最简单但慢;牛顿法快得多但需 Hessian 及其逆;共轭梯度为折中——不需二阶导数,仍具二次收敛性(二次函数有限步收敛)。用于多层网络称为 共轭梯度反向传播(CGBP)。
算法回顾(9-18 页):
- \(\mathbf{p}_0=-\mathbf{g}_0\)(12.12),\(\mathbf{g}_k\equiv\nabla F(\mathbf{x})|_{\mathbf{x}=\mathbf{x}_k}\)(12.13);
- \(\mathbf{x}_{k+1}=\mathbf{x}_k+\alpha_k\mathbf{p}_k\),\(\alpha_k\) 沿搜索方向极小化函数(12.14);
- \(\mathbf{p}_k=-\mathbf{g}_k+\beta_k\mathbf{p}_{k-1}\)(12.15),\(\beta_k=\frac{\Delta\mathbf{g}_{k-1}^T\mathbf{g}_k}{\Delta\mathbf{g}_{k-1}^T\mathbf{p}_{k-1}}\) 或 \(\frac{\mathbf{g}_k^T\mathbf{g}_k}{\mathbf{g}_{k-1}^T\mathbf{g}_{k-1}}\) 或 \(\frac{\Delta\mathbf{g}_{k-1}^T\mathbf{g}_k}{\mathbf{g}_{k-1}^T\mathbf{g}_{k-1}}\)(12.16);
- 未收敛则回到第 2 步。
不能直接用于网络训练,因性能指标非二次:(1) 不能用(9.31)做线极小化;(2) 一般不会在有限步内精确到达极小,需在若干次迭代后重置。
线搜索:区间定位 + 区间缩减
区间定位(interval location)——函数比较法 [Scal85](图 12.13):先在当前权值处求 \(F(\mathbf{x}_0)\)(12.17,点 \(a_1\));再在沿搜索方向距离 \(\varepsilon\) 处求 \(F(\mathbf{x}_0+\varepsilon\mathbf{p}_0)\)(12.18,点 \(b_1\));之后依次在 \(2\varepsilon,4\varepsilon,8\varepsilon,\dots\) 处求值(每次距离加倍),直到相邻两次求值函数增大为止(图中 \(b_4\to b_5\))。此时极小被夹在最后得到的区间 \([a_5,b_5]\) 内(\(a_5\) 为倒数第三个求值点,\(b_5\) 为最后一个求值点);仅凭这些求值无法再缩小区间,因为极小既可能落在该区间的前一段,也可能落在后一段(图 12.14a)。
区间缩减(interval reduction):至少需在区间内求两个内点 \(c,d\) 才能缩小不确定区间(一个内点不提供信息)。若 \(F(c)>F(d)\),极小必在 \([c,b]\);若 \(F(c)<F(d)\),极小必在 \([a,d]\)(假设初始区间内只有一个极小)。采用**黄金分割搜索(Golden Section search)**以减少函数求值次数,每次迭代只需一次新求值:
设 \(\tau=0.618\);\(c_1=a_1+(1-\tau)(b_1-a_1)\),\(F_c=F(c_1)\);\(d_1=b_1-(1-\tau)(b_1-a_1)\),\(F_d=F(d_1)\)。对 \(k=1,2,\dots\) 重复:
- 若 \(F_c<F_d\):\(a_{k+1}=a_k\);\(b_{k+1}=d_k\);\(d_{k+1}=c_k\);\(c_{k+1}=a_{k+1}+(1-\tau)(b_{k+1}-a_{k+1})\);\(F_d=F_c\);\(F_c=F(c_{k+1})\);
- 否则:\(a_{k+1}=c_k\);\(b_{k+1}=b_k\);\(c_{k+1}=d_k\);\(d_{k+1}=b_{k+1}-(1-\tau)(b_{k+1}-a_{k+1})\);\(F_c=F_d\);\(F_d=F(d_{k+1})\);
直到 \(b_{k+1}-a_{k+1}<tol\)(用户设定精度)。每次区间缩为原来的 \(\tau=0.618\) 倍。(数值例见 P12.4。)
重置:二次函数至多 \(n\) 次迭代收敛(\(n\) 为参数个数);非二次时一般不会,而理论未说明一个 \(n\) 步周期后用什么方向。最简单的做法:每 \(n\) 次迭代后把搜索方向重置为最速下降方向(负梯度)[Scal85]。
应用:用反传计算梯度(11.23–11.24),用共轭梯度决定更新;属批量算法。图 12.15 展示前三次迭代的中间步骤(空心蓝圈为区间定位的每次求值,大空心黑圈为最终区间,黑点为黄金分割每步的新内点,蓝点为终点);图 12.16 为全程轨迹:迭代次数远少于前述算法。但这有些误导——每次迭代含多次函数求值,计算量更大。尽管如此,CGBP 已被证明是多层网络最快的批量训练算法之一 [Char92]。演示 nnd12ls、nnd12cg。
12.5 数值优化技术之二:Levenberg–Marquardt 算法(PDF p.431–439)
LM 算法是牛顿法的变体,专为最小化“其他非线性函数平方和”形式的函数设计,非常适合以均方误差为指标的网络训练。
基本算法
牛顿法:\(\mathbf{x}_{k+1}=\mathbf{x}_k-\mathbf{A}_k^{-1}\mathbf{g}_k\)(12.19),\(\mathbf{A}_k\equiv\nabla^2F|_{\mathbf{x}_k}\),\(\mathbf{g}_k\equiv\nabla F|_{\mathbf{x}_k}\)。设 \(F\) 为平方和:
用于多层网络
若各目标等概率,均方误差正比于训练集 \(Q\) 个目标上的误差平方和:
Jacobian 的计算(PDF p.434–438)
误差向量与参数向量:
标准反传计算 \(\partial\hat F/\partial x_l=\partial(\mathbf{e}_q^T\mathbf{e}_q)/\partial x_l\)(12.38,平方误差的导数);LM 需要误差本身的导数 \([\mathbf{J}]_{h,l}=\partial v_h/\partial x_l=\partial e_{k,q}/\partial x_l\)(12.39)。仿照 \(\partial\hat F/\partial w^m_{i,j}=\frac{\partial\hat F}{\partial n^m_i}\frac{\partial n^m_i}{\partial w^m_{i,j}}\)(12.40)、\(s^m_i=\partial\hat F/\partial n^m_i\)(12.41),定义 Marquardt 敏感度:
LMBP 迭代步骤
- 把所有输入送入网络,计算输出(11.41–11.42)与误差 \(\mathbf{e}_q=\mathbf{t}_q-\mathbf{a}^M_q\),按(12.34)求总误差平方和 \(F(\mathbf{x})\);
- 计算 Jacobian(12.37):用(12.46)初始化、(12.47)递推敏感度,(12.48)拼接,再由(12.43)(12.44)得各元;
- 解(12.32)得 \(\Delta\mathbf{x}_k\);
- 用 \(\mathbf{x}_k+\Delta\mathbf{x}_k\) 重算误差平方和。若比第 1 步小,则 \(\mu\) 除以 \(\vartheta\),令 \(\mathbf{x}_{k+1}=\mathbf{x}_k+\Delta\mathbf{x}_k\),回到第 1 步;否则 \(\mu\) 乘以 \(\vartheta\),回到第 3 步。
收敛判据:梯度(12.22)的范数小于预定值,或误差平方和降到目标值。
例:图 12.17 显示 LMBP 第一次迭代的可能步:黑箭头为小 \(\mu_k\) 时的方向(Gauss–Newton 方向),蓝箭头为大 \(\mu_k\) 时的方向(最速下降方向,即前述所有算法的初始方向),蓝曲线是所有中间 \(\mu_k\) 的 LM 步;\(\mu_k\) 增大,算法趋向沿最速下降方向的小步,因此每次迭代总能减小误差平方和。图 12.18:\(\mu_0=0.01\)、\(\vartheta=5\) 的轨迹,比之前所有方法迭代次数都少。每次迭代计算量最大(含矩阵求逆),但对中等规模参数的网络,LMBP 似乎是最快的训练算法 [HaMe94]。演示 nnd12ms、nnd12m。
主要缺点:存储。需存储 \(n\times n\) 的近似 Hessian \(\mathbf{J}^T\mathbf{J}\)(\(n\) 为参数个数),其他方法只需存 \(n\) 维梯度。参数很多时不实用(视内存而定,通常上限为几千个参数)。
12.6 结果汇总(PDF p.440–443)
- 批处理:整个训练集呈现后才更新,各样本梯度平均;训练集完备时梯度精确。
- MOBP:\(\Delta\mathbf{W}^m(k)=\gamma\Delta\mathbf{W}^m(k-1)-(1-\gamma)\alpha\mathbf{s}^m(\mathbf{a}^{m-1})^T\),\(\Delta\mathbf{b}^m(k)=\gamma\Delta\mathbf{b}^m(k-1)-(1-\gamma)\alpha\mathbf{s}^m\)。
- VLBP:三条规则(误差增幅 \(>\zeta\) 丢弃更新、\(\alpha\leftarrow\rho\alpha\)、\(\gamma\leftarrow0\);误差下降接受、\(\alpha\leftarrow\eta\alpha\)、恢复 \(\gamma\);增幅 \(<\zeta\) 接受、\(\alpha,\gamma\) 不变)。
- CGBP:区间定位(\(\varepsilon,2\varepsilon,4\varepsilon,\dots\))+ 黄金分割区间缩减(\(\tau=0.618\))+ 每 \(n\) 步重置。
- LMBP:\(\Delta\mathbf{x}_k=-[\mathbf{J}^T\mathbf{J}+\mu_k\mathbf{I}]^{-1}\mathbf{J}^T\mathbf{v}\);\(\mathbf{v}\)、\(\mathbf{x}\)、\(\mathbf{J}\) 定义如上;Marquardt 敏感度 \(\tilde{\mathbf{S}}^M_q=-\dot{\mathbf{F}}^M(\mathbf{n}^M_q)\),\(\tilde{\mathbf{S}}^m_q=\dot{\mathbf{F}}^m(\mathbf{W}^{m+1})^T\tilde{\mathbf{S}}^{m+1}_q\);四步迭代。
12.7 例题精解(PDF p.444–457)
P12.1(批处理的效果)单个 logsig 神经元 \(a=\mathrm{logsig}(wp+b)\),训练集 \(\{p_1=-3,t_1=0.5\}\)、\(\{p_2=2,t_2=1\}\),初值 \(w(0)=0.4,\ b(0)=0.15\)。不批处理(只用第一对):\(a=1/(1+\exp(-(0.4(-3)+0.15)))=0.2592\),\(e=0.2408\),\(s=-2\dot f(n)e=-2a(1-a)e=-2(0.2592)(0.7408)(0.2408)=-0.0925\);负梯度方向 \(-sp=-(-0.0925)(-3)=-0.2774\)(对 \(w\)),\(-s=0.0925\)(对 \(b\)),即初始步方向 \([-0.2774,\,0.0925]^T\)。批处理:第二对 \(a=1/(1+\exp(-(0.4\cdot2+0.15)))=0.7211\),\(e=0.2789\),\(s=-2(0.7211)(0.2789)(0.2789)=-0.1122\),部分负梯度 \([0.2243,\,0.1122]^T\)。两者平均:\(\tfrac12([-0.2774,0.0925]^T+[0.2243,0.1122]^T)=[-0.0265,\;0.1023]^T\)(方向与 \([-0.0531,0.2047]^T\) 相同)。图 P12.2:各样本的部分梯度可能与真实梯度方向差别很大,但多次迭代平均下来路径大体沿最速下降轨迹。批量与增量孰优依问题而定:增量需要更少存储,随机呈现输入时轨迹带随机性,不易陷入局部极小,但可能收敛更慢。
P12.2(动量总能使最速下降稳定)带动量的最速下降:\(\Delta\mathbf{x}_k=\gamma\Delta\mathbf{x}_{k-1}-(1-\gamma)\alpha\mathbf{g}_k\)。对二次函数 \(\mathbf{g}_k=\mathbf{A}\mathbf{x}_k+\mathbf{d}\),用 \(\Delta\mathbf{x}_k=\mathbf{x}_{k+1}-\mathbf{x}_k\) 得
P12.3(VLBP 三次迭代)\(F=x_1^2+25x_2^2\),\(\mathbf{x}_0=[0.5,0.5]^T\),\(\alpha=0.05,\ \gamma=0.2,\ \eta=1.5,\ \rho=0.5,\ \zeta=5\%\)。\(F(\mathbf{x}_0)=6.5\),\(\mathbf{g}_0=[1,25]^T\)。
- 第 1 步:\(\Delta\mathbf{x}_0=\gamma\Delta\mathbf{x}_{-1}-(1-\gamma)\alpha\mathbf{g}_0=0-0.8(0.05)[1,25]^T=[-0.04,-1]^T\),试探点 \([0.46,-0.5]^T\),\(F=6.4616<6.5\),接受,\(\alpha=1.5(0.05)=0.075\)。
- 第 2 步:\(\mathbf{g}_1=[0.92,-25]^T\),\(\Delta\mathbf{x}_1=0.2[-0.04,-1]^T-0.8(0.075)[0.92,-25]^T=[-0.0632,\,1.3]^T\),试探点 \([0.3968,0.8]^T\),\(F=16.157\),比 6.4616 增大超过 5%,拒绝;\(\alpha=0.5(0.075)=0.0375\),\(\gamma=0\)。
- 第 3 步:\(\Delta\mathbf{x}_2=-0.0375[0.92,-25]^T=[-0.0345,\,0.9375]^T\),试探点 \([0.4255,\,0.4375]^T\),\(F=4.966<6.4616\),接受,\(\gamma\) 恢复 0.2,\(\alpha=1.5(0.0375)=0.05625\)。
P12.4(共轭梯度第一次迭代的线搜索)\(F=\tfrac12\mathbf{x}^T\begin{bmatrix}2&1\\1&2\end{bmatrix}\mathbf{x}\),\(\mathbf{x}_0=[0.8,-0.25]^T\),\(\mathbf{p}_0=-\mathbf{g}_0=[-1.35,-0.3]^T\),沿 \(\mathbf{x}_0+\alpha\mathbf{p}_0\) 极小化。区间定位(\(\varepsilon=0.075\)):\(F(a_1=0)=0.5025\);\(F(b_1=0.075)=0.3721\);\(F(b_2=0.15)=0.2678\);\(F(b_3=0.3)=0.1373\);\(F(b_4=0.6)=0.1893\)——函数上升,极小在 \([0.15,0.6]\)。黄金分割:\(c_1=0.15+0.382(0.45)=0.3219\),\(d_1=0.6-0.382(0.45)=0.4281\);\(F_a=0.2678,F_b=0.1893,F_c=0.1270,F_d=0.1085\)。因 \(F_c>F_d\):\(a_2=0.3219,\ b_2=0.6,\ c_2=0.4281,\ d_2=0.6-0.382(0.6-0.3219)=0.4938\),\(F_a=0.1270,\ F_c=0.1085,\ F_d=F(d_2)=0.1232\)。此时 \(F_c<F_d\):\(a_3=0.3219,\ b_3=0.4938,\ d_3=0.4281,\ c_3=0.3219+0.382(0.4938-0.3219)=0.3876\),\(F_b=0.1232,\ F_d=0.1085,\ F_c=F(c_3)=0.1094\)。如此继续直到 \(b_{k+1}-a_{k+1}<tol\)(精确线搜索结果应为第 9 章的 \(\alpha_0=0.413\);对比图 9.10)。
P12.5(LMBP 的 Jacobian 计算)1-1-1 网络,\(f^1(n)=n^2\),\(f^2(n)=n\),\(\dot f^1=2n\),\(\dot f^2=1\)。训练集 \(\{p_1=1,t_1=1\}\)、\(\{p_2=2,t_2=2\}\);初值 \(W^1=1,b^1=0,W^2=2,b^2=1\)。
- 前向:\(q=1\):\(n^1_1=1,\ a^1_1=1,\ n^2_1=3,\ a^2_1=3,\ e_1=1-3=-2\);\(q=2\):\(n^1_2=2,\ a^1_2=4,\ n^2_2=9,\ a^2_2=9,\ e_2=2-9=-7\)。
- Marquardt 敏感度:\(\tilde S^2_1=-\dot F^2(n^2_1)=-1\),\(\tilde S^1_1=\dot F^1(n^1_1)(W^2)^T\tilde S^2_1=2(1)(2)(-1)=-4\);\(\tilde S^2_2=-1\),\(\tilde S^1_2=2(2)(2)(-1)=-8\)。拼接:\(\tilde{\mathbf{S}}^1=[-4,\,-8]\),\(\tilde{\mathbf{S}}^2=[-1,\,-1]\)。
- Jacobian(参数顺序 \(w^1,b^1,w^2,b^2\)):\([\mathbf{J}]_{1,1}=\tilde s^1_{1,1}a^0_{1,1}=(-4)(1)=-4\),\([\mathbf{J}]_{1,2}=\tilde s^1_{1,1}=-4\),\([\mathbf{J}]_{1,3}=\tilde s^2_{1,1}a^1_{1,1}=(-1)(1)=-1\),\([\mathbf{J}]_{1,4}=-1\);\([\mathbf{J}]_{2,1}=(-8)(2)=-16\),\([\mathbf{J}]_{2,2}=-8\),\([\mathbf{J}]_{2,3}=(-1)(4)=-4\),\([\mathbf{J}]_{2,4}=-1\):
\[\mathbf{J}(\mathbf{x})=\begin{bmatrix}-4&-4&-1&-1\\-16&-8&-4&-1\end{bmatrix}\]
12.8 结语与延伸阅读(PDF p.458–461)
SDBP 训练时间过长,实际问题上可能需数周。加速技术分两类:
- MOBP:实现简单,可批量或增量使用,明显快于 SDBP;需选 \(\gamma\in[0,1]\),但对其不太敏感。
- VLBP:比 MOBP 快,但必须批量使用,存储更多;共需选五个参数,算法较稳健,但参数影响收敛速度且依问题而定。
- CGBP:一般比 VLBP 快,批量算法,每次迭代需线搜索,存储与 VLBP 相近;神经网络中有许多共轭梯度变体,本章只介绍一种。
- LMBP:对中等规模多层网络是测试过的最快算法(尽管每步需矩阵求逆);需选两个参数(\(\mu_0,\vartheta\)),但不敏感;主要缺点是需存储并求逆 \(n\times n\) 的 \(\mathbf{J}^T\mathbf{J}\),参数超过几千个就不实用。 其他变体见第 19 章。 延伸阅读:[Barn92] Barnard 优化算法综述;[Batt92] Battiti 一/二阶方法综述;[Char92] Charalambous 共轭梯度训练;[Fahl88] Fahlman QuickProp;[HaMe94] Hagan & Menhaj 用 Marquardt 算法训练前馈网络(比 VLBP、CG 快但存储大);[Jaco88] Jacobs delta-bar-delta;[NgWi90] Nguyen & Widrow 初始权值选择(依 sigmoid 形状与输入范围定权值大小,用偏置把 sigmoid 中心置于工作区);[RiIr90] Rigler 等变量重标度(sigmoid 尾部导数很小,前几层梯度元素通常小于末层,需缩放使之均衡——即梯度消失问题的早期观察);[Scal85];[Shan90] Shanno 大规模优化(共轭梯度与拟牛顿);[Toll90] SuperSAB;[VoMa88] Vogl 等(批处理、动量、可变学习率的早期论文)。
12.9 习题概述(PDF p.462–467)
- E12.1、E12.2:单 logsig 神经元,训练集 \(\{-2,0.8\},\{2,1\}\),编程画均方误差等高线;初值 \(w=0,b=0.5\) 下比较批处理与否的初始方向。
- E12.3–E12.6:二次函数上带动量最速下降的稳定性(用 P12.2 的方法):如 P9.1 函数在 \(\alpha=0.2\) 与 \(\alpha=20\) 时求使之稳定的 \(\gamma\) 并编程画轨迹;E12.4 手算两步(\(\alpha=1,\gamma=0.75\))并判断稳定性及无动量时是否稳定;E12.5 判断 \((\alpha=1,\gamma=0)\) 与 \((\alpha=1,\gamma=0.6)\);E12.6 求 \(\gamma\)。
- E12.7、E12.8:VLBP 三次迭代(参数 \(\alpha=0.4,\gamma=0.1,\eta=1.5,\rho=0.5,\zeta=5\%\) 等),画轨迹。
- E12.9:共轭梯度一次迭代,线搜索用区间定位+黄金分割。
- E12.10–E12.13:沿给定直线的区间定位与黄金分割手算(求 \(a_k,b_k,c_k,d_k\) 并在图上标出)。
- E12.14:对正文 1-2-1 例(\(g(p)=1+\sin(\pi p/4)\),采样 \(p=1,0\))求 LMBP 第一步的 Jacobian。
- E12.15:证明线性网络在 \(\mu=0\) 时 LMBP 一步收敛到最优(Gauss–Newton 对线性最小二乘即正规方程)。
- E12.16:在 E11.25 程序上实现批量 SDBP、MOBP、VLBP、CGBP、LMBP 并比较收敛。
第 12 章小结
本章要点
- 多层网络误差曲面非二次:曲率变化大(平坦区与狭窄山谷并存)、多局部极小、对称性导致原点为鞍点。初值应取小随机数,并多次尝试不同初值。
- SDBP 慢的根源:单一学习率无法同时适应平坦区和高曲率区;误差曲线呈“长时间停滞+短时间骤降”。
- 动量(MOBP)是一阶低通滤波,平滑振荡、允许更大学习率;对二次函数可证明总有动量系数使之稳定。
- 可变学习率(VLBP):按误差变化自适应调整学习率并暂停动量;delta-bar-delta、SuperSAB、QuickProp 为相关变体;启发式方法参数多且敏感。
- CGBP:线搜索 = 区间定位(步长倍增)+ 黄金分割缩减;每 \(n\) 步重置为负梯度。
- LMBP:\(\Delta\mathbf{x}=-(\mathbf{J}^T\mathbf{J}+\mu\mathbf{I})^{-1}\mathbf{J}^T\mathbf{v}\),在 Gauss–Newton 与最速下降间自适应切换;Jacobian 由 Marquardt 敏感度反传计算;中等规模最快,但存储 \(O(n^2)\)。
与量化交易的关联
- 非线性最小二乘校准:LM 算法是量化中校准模型参数的主力工具——期权隐含波动率曲面拟合(SVI、SABR、Heston 参数校准)、收益率曲线拟合(Nelson–Siegel–Svensson)、非线性回归因子模型,都是“残差平方和”最小化;Jacobian 用解析导数或自动微分(即本章 Marquardt 敏感度的思想)计算,\(\mu\) 自适应保证稳健收敛。
- Gauss–Newton 的适用条件:\(\mathbf{S}(\mathbf{x})\) 小(残差小或模型近线性)时 \(\mathbf{J}^T\mathbf{J}\) 是好的 Hessian 近似;市场数据噪声大、模型错设时残差大,GN 方向可能差,需更大 \(\mu\)。\(\mathbf{J}^T\mathbf{J}\) 的逆还给出参数估计的近似协方差,可用于判断校准参数是否可识别。
- 动量与自适应学习率:现代深度学习优化器(SGD+momentum、RMSProp、Adam)正是 MOBP、delta-bar-delta 的后代,训练收益预测网络时直接使用;“动量=低通滤波”的直觉也与交易信号的指数平滑同构。
- 黄金分割线搜索:可用于一维参数优化,如回测中对单一超参数(止损阈值、持仓期)在单峰假设下的高效搜索;但回测目标函数通常噪声大、非单峰,需谨慎,且要防止过度优化。
- 局部极小与对称性:模型训练结果依赖初值,回测中应用多次随机初始化取平均或集成,并检验结果稳定性。
推荐习题
- P12.2 + E12.3–E12.6:动量稳定性的特征值分析(理解动量的数学本质)。
- P12.3、E12.7、E12.8:手算 VLBP 规则。
- P12.4、E12.10–E12.13:区间定位与黄金分割线搜索。
- P12.5、E12.14、E12.15:Jacobian 与 LM 步的计算,线性情形一步收敛。
- E12.16:五种训练算法的编程比较(最有实践价值)。
第 13 章 泛化(Generalization)(PDF p.468–519)
13.0 目标与引言(PDF p.468–469)
设计多层网络的关键问题之一是确定神经元个数——这实际上就是本章目标。第 11 章已示:神经元过多会过拟合(overfitting)训练数据——训练误差很小,但面对新数据表现差。泛化良好的网络在新数据上的表现与在训练数据上一样好。网络复杂度由自由参数(权值与偏置)个数决定,进而由神经元个数决定;对给定数据集过于复杂的网络易过拟合、泛化差。本章将说明:可以在不改变神经元个数(实际参数个数)的情况下,调整有效自由参数个数,使网络复杂度匹配数据复杂度。
马克·吐温语:“我们应当小心,只从一次经历中汲取其中真正包含的智慧——然后就此打住;以免像坐过热炉盖的猫那样,再也不坐热炉盖(这很好),但也再也不坐冷炉盖了。”(《赤道环游记》,1897)这正是**泛化(generalization)**的含义:只从数据中提取其中真有的规律。
关键策略:找能解释数据的最简单模型——奥卡姆剃刀(Ockham's razor)(14 世纪英国逻辑学家 William of Ockham):模型越复杂,出错可能越大。对神经网络,最简单模型即自由参数最少(神经元最少)的网络。
产生简单网络的五种方法:
- 生长(growing):从零神经元开始逐步添加,直到性能足够;
- 剪枝(pruning):从可能过拟合的大网络开始,逐个删除神经元(或权值),直到性能显著下降;
- 全局搜索(global searches):如遗传算法,在所有可能结构中搜索最简单模型;
- 正则化(regularization) 与 提前停止(early stopping):通过约束权值大小而非权值个数来保持网络“小”。本章集中讨论这两种,并说明二者本质上在做同一件事。
13.1 问题表述(Problem Statement)(PDF p.469–472)
训练集 \(\{\mathbf{p}_1,\mathbf{t}_1\},\dots,\{\mathbf{p}_Q,\mathbf{t}_Q\}\)(13.1),假设目标由
图 13.1(过拟合与外推差):网络响应精确穿过所有带噪训练点,却与真实函数相差很大。两类误差:
- 插值误差(interpolation):训练数据都在 \([-3,0]\) 区间,网络在此区间过拟合,对不在训练集中的输入表现差——这是本章要防止的。
- 外推误差(extrapolation):在 \([0,3]\) 区间没有训练数据,网络在输入数据范围之外外推,表现差。除非训练数据覆盖网络将要使用的所有输入区域,否则无法防止外推误差——网络无从得知无数据区域的真实函数形状。
图 13.2:同样权值数、同样数据,但训练方式使网络只使用必要数量的权值,插值良好(虽然不完美,但在有限带噪数据下已尽力),外推仍差。单输入时容易确定所需输入范围;多输入时难以判断何时在插值、何时在外推。图 13.3:二维函数,\(p_1,p_2\in[-3,3]\),但训练数据只覆盖 \(p_1<p_2\) 的一半区域——两个变量各自都覆盖了全范围,但联合输入空间只覆盖一半,在 \(p_1>p_2\) 区域网络外推、表现差(另见 P13.4;实践处理见第 22 章)。
13.2 改进泛化的方法(Methods for Improving Generalization)(PDF p.472–473)
两大类:限制权值个数(神经元个数),或限制权值大小。本章重点:提前停止与正则化,二者都限制权值大小,但方式迥异,章末证明二者近似等价。注意:本章假设训练数据有限;若数据无限(实际上指数据点数远多于网络参数个数),就不存在过拟合问题。
估计泛化误差——测试集(Test Set)
数据有限时,训练前须留出一个子集作测试集,训练完成后用网络在其上的误差衡量泛化能力,预示未来表现。两点要求:(1) 测试集绝不能以任何方式用于训练,甚至不能用来从候选网络中挑选——只在所有训练与选择完成后使用;(2) 测试集必须代表网络将要使用的所有情形(高维或形状复杂的输入空间中难以保证;见第 22 章)。下文均假设训练前已移出测试集。
13.3 提前停止(Early Stopping)(PDF p.473–475)
最简单的方法 [WaVe94]。思想:随着训练进行,网络使用越来越多的权值,到达误差曲面极小时全部权值都被充分使用;增加迭代次数即增加网络复杂度。若在到达极小前停止,网络实际使用的参数更少,较不易过拟合(参数个数随迭代变化的定量说明见 13.6)。
何时停止——交叉验证(cross-validation)[Sarl95]:把(去掉测试集后的)数据分为训练集与验证集(validation set)。训练集用于计算梯度或 Jacobian 并决定每次的权值更新;验证集反映网络函数在训练点“之间”的行为,训练中监控其误差。当验证误差连续若干次迭代上升时停止训练,取验证误差最小时的权值作为最终网络。
图 13.4:下图为训练与验证误差平方和随迭代变化(对数坐标):训练误差一直下降,验证误差在点 a(第 14 次迭代)达到最小;左上为 a 处的网络响应,拟合真实函数良好;右上为继续训练到 b 处,验证误差已上升,网络过拟合。
实践要点:
- 验证集(以及训练集、测试集)都必须代表网络将使用的所有情形,各集合对输入空间的覆盖应大致相当,大小可以不同。典型划分:约 70% 训练、15% 验证、15% 测试(只是近似值;验证集大小的完整讨论见 [AmMu97])。
- 应使用相对慢的训练方法:训练中网络逐步使用更多参数,训练方法太快可能跳过验证误差最小的点。 演示 nnd13es。
13.4 正则化(Regularization)(PDF p.475–477)
修改性能指标(13.3),加入惩罚网络复杂度的项。由 Tikhonov [Tikh63] 提出:他加的惩罚项涉及逼近函数的导数,迫使结果平滑。在一定条件下正则项可写为权值平方和:
为何惩罚权值平方和、它如何类似于减少神经元:回顾图 11.4 网络,增大权值会增大网络函数斜率。图 13.5:\(w^1_{1,1}\) 从 0 变到 2 的影响。权值大时网络函数可有大斜率,更可能过拟合;把权值限制得小,网络函数会平滑地插值训练数据——就像神经元很少的网络。演示 nnd11nf。
正则化成功的关键是选对正则化比 \(\alpha/\beta\)。图 13.6:用 1-20-1 网络拟合正弦波的 21 个带噪样本,比值取 0、0.01、0.25、1:\(\alpha/\beta=0.01\) 最接近真实函数;更大则过于平滑(欠拟合),更小则过拟合。设定方法:一种是用验证集,选使验证集平方误差最小的正则化参数 [GoLa98];另一种是下面介绍的自动设定法——贝叶斯正则化(Bayesian regularization)。演示 nnd13reg。
13.5 贝叶斯分析(Bayesian Analysis)(PDF p.477–479)
Thomas Bayes(1700 年代英国长老会牧师、业余数学家),其最重要的工作在身后发表,即贝叶斯定理:对随机事件 \(A\)、\(B\),
医学检测例:人群患病率 1%;检测对患者 80% 能检出(阳性);对健康人 10% 会误报阳性。问:检测阳性者真正患病的概率?多数人(包括许多医生)会猜很高,实则不然。令 \(A\)=患病、\(B\)=阳性,\(P(A)=0.01\),\(P(B|A)=0.8\)。
贝叶斯方法的优点:可通过选择先验概率注入先验知识。对网络训练,先验假设是被逼近的函数平滑,即权值不能太大(图 13.5);诀窍是把这一知识转化为合适的先验。
13.6 贝叶斯正则化(Bayesian Regularization)(PDF p.479–486)
集中讨论 David MacKay [MacK92] 的方法:把网络训练置于贝叶斯统计框架中(对训练的许多方面都有用,不仅是选正则化参数)。分两个层次。
第一层(Level I)贝叶斯框架
假设网络权值是随机变量,选择使给定数据下权值条件概率最大的权值:
似然函数(likelihood function) \(P(D|\mathbf{x},\beta,M)\):给定权值、参数 \(\beta\) 与模型时数据的概率密度。若(13.2)中噪声独立且服从高斯分布:
先验密度(prior density) \(P(\mathbf{x}|\alpha,M)\):收集数据前对权值的认识。若假设权值是以零为中心的小值,可取零均值高斯先验:
证据(evidence) \(P(D|\alpha,\beta,M)\):归一化项,与 \(\mathbf{x}\) 无关;求最大后验权值时无需关心(但后面估计 \(\alpha,\beta\) 时很重要)。
在上述高斯假设下,后验密度为
参数的物理意义:\(\beta\) 与测量噪声方差 \(\sigma^2_\varepsilon\) 成反比——噪声大则 \(\beta\) 小,正则化比 \(\alpha/\beta\) 大,迫使权值小、网络函数平滑(图 13.6):噪声越大,越要平滑以平均掉噪声影响。\(\alpha\) 与权值先验方差成反比——先验方差大表示对权值很不确定、权值可能很大,\(\alpha\) 小,\(\alpha/\beta\) 小,允许权值大、网络函数变化更多。
第二层(Level II)贝叶斯框架
要从数据估计 \(\alpha,\beta\),需要
贝叶斯正则化算法(GNBR)
需要 \(F\) 在 \(\mathbf{x}^{MP}\) 处的 Hessian。采用 Gauss–Newton 近似 [FoHa97]——用 LM 算法找极小时它现成可得(12.31),额外计算极少。步骤: 0. 初始化 \(\alpha,\beta\) 和权值:权值随机初始化,计算 \(E_D\)、\(E_W\);令 \(\gamma=n\),用(13.23)计算 \(\alpha,\beta\)。
- 用 LM 算法对目标函数 \(F(\mathbf{x})=\beta E_D+\alpha E_W\) 走一步。
- 用 LM 中现成的 Gauss–Newton Hessian 近似计算有效参数个数:\(\gamma=n-2\alpha\,\mathrm{tr}(\mathbf{H})^{-1}\),\(\mathbf{H}=\nabla^2F(\mathbf{x})\approx2\beta\mathbf{J}^T\mathbf{J}+2\alpha\mathbf{I}_n\)(\(\mathbf{J}\) 为训练集误差的 Jacobian,式 12.37)。
- 计算新的正则化参数估计 \(\alpha=\gamma/(2E_W(\mathbf{x}))\),\(\beta=(N-\gamma)/(2E_D(\mathbf{x}))\)。
- 重复 1–3 直到收敛。
注意:每次重估 \(\alpha,\beta\),目标函数 \(F\) 都改变,极小点在移动;若在曲面上的移动大体朝向下一个极小点,新估计会越来越准,最终目标函数在后续迭代中不再显著变化,即收敛。使用 GNBR 时,先把训练数据映射到 \([-1,1]\)(或类似区间)效果最好(预处理见第 22 章)。
例:用 GNBR 训练 1-20-1 网络(与图 13.4、13.6 同一数据集),图 13.7:拟合了底层函数而不过拟合噪声,效果与图 13.6 中 \(\alpha/\beta=0.01\) 相似;训练结束时最终正则化比为 \(\alpha/\beta=0.0137\)。图 13.8 训练过程:训练集平方误差 \(E_D\) 不一定每步下降;测试误差(与真实函数在 \([-1,1]\) 多点比较,实际中不可得)在训练结束时最小;\(\alpha/\beta\) 与 \(\gamma\) 在训练过程中无特别意义,但最终值有意义:\(\alpha/\beta=0.0137\),\(\gamma=5.2\)(网络共 61 个权值和偏置)。
解读:有效参数(约 6)远少于总参数(61),说明本可用更小的网络。大网络两个缺点:(1) 可能过拟合;(2) 计算输出更费时。GNBR 克服了 (1)——61 个参数的网络等价于只有 6 个参数的网络;(2) 只在响应计算时间关键时才重要(通常为毫秒级),必要时可训练较小网络。反之,若有效参数个数接近总参数个数,可能说明网络不够大,应增大网络重新训练。演示 nnd17breg。
13.7 提前停止与正则化的关系(Relationship Between Early Stopping and Regularization)(PDF p.486–495)
两种方法出发点迥异,但都通过限制权值、从而得到有效参数更少的网络来改进泛化:提前停止在权值收敛到平方误差极小前停止训练;正则化在平方误差上加惩罚大权值的项。下面用线性例子说明二者近似等价,并阐明有效参数个数 \(\gamma\) 的含义(基于 [SjLj94] 的一般方法)。
提前停止分析
单层线性网络(图 10.1)的均方误差是二次函数:
正则化分析
正则化指标 \(F(\mathbf{x})=\beta E_D+\alpha E_W\)(13.33);因极小点位置相同,改用等价的单参数形式
二者的联系(图 13.9)
提前停止的关键矩阵 \(\mathbf{M}^k=[\mathbf{I}-\alpha\mathbf{A}]^k\);正则化的关键矩阵 \(\mathbf{M}_\rho=2\rho[\mathbf{A}+2\rho\mathbf{I}]^{-1}\)。二者相等则两种方法给出相同权值。由(9.22),\(\mathbf{M}\) 与 \(\mathbf{A}\) 特征向量相同,特征值 \(1-\alpha\lambda_i\),故
例:有效参数个数的解释(PDF p.490–494)
单层线性网络、无偏置,\(\{\mathbf{p}_1=[1,1]^T,t_1=1\}\) 概率 0.75,\(\{\mathbf{p}_2=[-1,1]^T,t_2=-1\}\) 概率 0.25。由(10.13)(10.15): \(c=E[t^2]=(1)^2(0.75)+(-1)^2(0.25)=1\);\(\mathbf{h}=E[t\mathbf{z}]=0.75(1)[1,1]^T+0.25(-1)[-1,1]^T=[1,\,0.5]^T\);\(\mathbf{d}=-2\mathbf{h}=[-2,-1]^T\);
与 Hessian 特征系统的关系:本例 \(\lambda_2>\lambda_1\),\(E_D\) 在 \(\mathbf{v}_2\) 方向曲率更大,先沿此方向移动误差下降最快——图 13.13 中初始最速下降几乎沿 \(\mathbf{v}_2\);正则化中 \(\rho\) 从大值减小时,权值也先沿 \(\mathbf{v}_2\) 移动(对给定的权值变化,该方向误差下降最多)。由于 \(\lambda_1<\lambda_2\),只有在 \(\mathbf{v}_2\) 方向已显著降低 \(E_D\) 之后才沿 \(\mathbf{v}_1\) 移动;两特征值差别越大越明显。极限情形 \(\lambda_1=0\) 时根本无需沿 \(\mathbf{v}_1\) 移动,只沿 \(\mathbf{v}_2\) 就能完全降低平方误差(即图 8.9 的驻谷情形)——此时网络虽有两个权值,实际只有效使用一个参数(两权值的某种组合)。因此,有效参数个数与 \(\nabla^2E_D\) 显著不为零的特征值个数有关。
有效参数个数(Effective Number of Parameters)(PDF p.495)
用 \(\nabla^2E_D(\mathbf{x})\) 的特征值 \(\lambda_i\) 表达。Hessian
13.8 结果汇总(PDF p.496–498)
- 问题表述:泛化良好的网络在新情形下的表现与在训练数据上一样好。
- 测试集:训练时留出,训练后用来衡量泛化能力。
- 提前停止:数据(去掉测试集后)分训练集与验证集;验证误差连续上升若干次则停止,取验证误差最小时的权值。
- 正则化:\(F(\mathbf{x})=\beta E_D+\alpha E_W=\beta\sum_q(\mathbf{t}_q-\mathbf{a}_q)^T(\mathbf{t}_q-\mathbf{a}_q)+\alpha\sum_i x_i^2\)。
- 第一层贝叶斯:\(P(\mathbf{x}|D,\alpha,\beta,M)=P(D|\mathbf{x},\beta,M)P(\mathbf{x}|\alpha,M)/P(D|\alpha,\beta,M)\);\(P(D|\mathbf{x},\beta,M)=\exp(-\beta E_D)/Z_D(\beta)\),\(\beta=1/(2\sigma^2_\varepsilon)\),\(Z_D=(\pi/\beta)^{N/2}\);\(P(\mathbf{x}|\alpha,M)=\exp(-\alpha E_W)/Z_W(\alpha)\),\(\alpha=1/(2\sigma^2_w)\),\(Z_W=(\pi/\alpha)^{n/2}\);后验 \(=\exp(-F(\mathbf{x}))/Z_F(\alpha,\beta)\)。
- 第二层贝叶斯:\(P(\alpha,\beta|D,M)=P(D|\alpha,\beta,M)P(\alpha,\beta|M)/P(D|M)\);\(\alpha^{MP}=\gamma/(2E_W(\mathbf{x}^{MP}))\),\(\beta^{MP}=(N-\gamma)/(2E_D(\mathbf{x}^{MP}))\),\(\gamma=n-2\alpha^{MP}\mathrm{tr}(\mathbf{H}^{MP})^{-1}\)。
- GNBR 算法四步(含 \(\mathbf{H}\approx2\beta\mathbf{J}^T\mathbf{J}+2\alpha\mathbf{I}_n\))。
- 提前停止 vs 正则化:\(\mathbf{x}_k=\mathbf{M}^k\mathbf{x}_0+(\mathbf{I}-\mathbf{M}^k)\mathbf{x}^{ML}\),\(\mathbf{M}=\mathbf{I}-\alpha\mathbf{A}\);\(\mathbf{x}^{MP}=\mathbf{M}_\rho\mathbf{x}_0+(\mathbf{I}-\mathbf{M}_\rho)\mathbf{x}^{ML}\),\(\mathbf{M}_\rho=2\rho(\mathbf{A}+2\rho\mathbf{I})^{-1}\);\(\mathrm{eig}(\mathbf{M}^k)=(1-\alpha\lambda_i)^k\),\(\mathrm{eig}(\mathbf{M}_\rho)=2\rho/(\lambda_i+2\rho)\);\(\alpha k\cong1/(2\rho)\)。
- 有效参数个数:\(\gamma=\sum_i\beta\lambda_i/(\beta\lambda_i+2\alpha)\),\(0\le\gamma\le n\)。
13.9 例题精解(PDF p.499–510)
P13.1(均匀分布上界的极大似然估计)随机变量在 \([0,x]\) 上均匀分布,取 \(Q\) 个独立样本 \(t_i\),求 \(x\) 的极大似然估计。单参数时(13.10)简化为 \(P(x|D)=P(D|x)P(x)/P(D)\),只需最大化似然 \(P(D|x)\)。密度 \(f(t|x)=1/x\)(\(0\le t\le x\)),否则 0。联合似然
P13.2(信号加噪声:极大似然 vs 贝叶斯)观测 \(t_i=x+\varepsilon_i\),噪声零均值高斯 \(f(\varepsilon_i)=\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{\varepsilon_i^2}{2\sigma^2})\)。 (i) 给定 \(x\) 时观测密度为均值 \(x\) 的高斯 \(f(t_i|x)\);独立则
P13.3(推导 13.23)对(13.17)取对数,代入(13.12)(13.14)(13.22):
- 对 \(\alpha\):\(-E_W(\mathbf{x}^{MP})-\mathrm{tr}(\mathbf{H}^{MP})^{-1}+\frac{n}{2\alpha^{MP}}=0\Rightarrow2\alpha^{MP}E_W=n-2\alpha^{MP}\mathrm{tr}(\mathbf{H}^{MP})^{-1}=\gamma\Rightarrow\alpha^{MP}=\frac{\gamma}{2E_W(\mathbf{x}^{MP})}\);
- 对 \(\beta\):\(-E_D(\mathbf{x}^{MP})-\frac{\gamma}{2\beta^{MP}}+\frac{N}{2\beta^{MP}}=0\Rightarrow\beta^{MP}=\frac{N-\gamma}{2E_D(\mathbf{x}^{MP})}\)。 (推导中 \(F(\mathbf{x}^{MP})\) 对 \(\alpha,\beta\) 的导数分别为 \(E_W\)、\(E_D\),因 \(\mathbf{x}^{MP}\) 处梯度为零,其隐式依赖项消失。)
P13.4(被训练数据包围的区域也会外推)图 13.3 中外推发生在左上区域(数据都在右下)。现在在输入空间外围提供训练数据,但中心区域 \(-1.5<p_1<1.5,\ -1.5<p_2<1.5\) 无数据(图 P13.4)。结果(图 P13.5):网络在无数据区显著高估真实函数,尽管四周都有数据;且结果是随机的——换一组初始权值可能低估。只要存在足够大的无数据区域就会外推。高维输入时很难判断网络是否在外推,不能只检查各输入变量各自的范围。
P13.5(有效参数个数计算)对 13-23 页例取 \(\rho=\alpha/\beta=1\)。\(\gamma=\sum_i\frac{\beta\lambda_i}{\beta\lambda_i+2\alpha}=\sum_i\frac{\lambda_i}{\lambda_i+2\rho}\),\(\lambda_1=1,\lambda_2=3\):
P13.6(多项式过拟合)拟合 \(g_k(p)=x_0+x_1p+\dots+x_kp^k\) 到 \(\{p_q,t_q\}\),最小化 \(F(\mathbf{x})=\sum_q(t_q-g_k(p_q))^2\)。定义 \(\mathbf{t}=[t_1,\dots,t_Q]^T\),\(\mathbf{G}\) 第 \(q\) 行为 \([1,p_q,\dots,p_q^k]\),\(\mathbf{x}=[x_0,\dots,x_k]^T\):
p=-1:.5:1; t=p+0.5*(rand(size(p))-0.5); G=[ones, p', p'.^2, ...]; x=(G'*G)\G'*t';。图 P13.6:4 阶多项式有 5 个参数,能精确穿过 5 个带噪点,但不能准确逼近真实直线;2 阶多项式更接近。
13.10 结语与延伸阅读(PDF p.511–513)
本章聚焦训练泛化良好的多层网络:基本思路是找能表示数据的最简单网络(权值和偏置少)。提前停止与正则化通过约束权值而非减少权值个数得到简单网络,并且本章证明了约束权值等价于减少(有效)权值个数。第 23 章有用贝叶斯正则化防止过拟合的函数逼近案例,第 25 章有用提前停止的模式识别案例。 延伸阅读:[AmMu97] Amari 等过训练与交叉验证的渐近统计理论(验证集大小选择);[FoHa97] Foresee & Hagan 贝叶斯学习的 Gauss–Newton 近似(GNBR);[GoLa98] Goutte & Larsen 用验证误差自适应设定正则化参数;[MacK92] MacKay《Bayesian Interpolation》(神经网络贝叶斯框架开创性论文);[Sarle95] Sarle 停止训练与其他过拟合补救;[SjLj94] Sjöberg & Ljung 证明提前停止与正则化近似等价、迭代次数与正则化参数成反比;[Tikh63] Tikhonov 不适定问题与正则化方法(原始论文,惩罚逼近函数的导数);[WaVe94] Wang 等最优停止与有效机器复杂度。
13.11 习题概述(PDF p.514–519)
- E13.1、E13.2:\(k\) 阶多项式拟合的四种解:最小二乘;加权值平方惩罚的正则化最小二乘(岭回归);加一阶导数平方和惩罚;加二阶导数平方和惩罚——推导闭式解并编程比较(\(k=8\),\(t=p+\varepsilon\),\(\varepsilon\sim U[-0.1,0.1]\)),考查 Tikhonov 导数惩罚与权值惩罚的关系。
- E13.3:一阶多项式拟合 \(\{(1,4),(2,6)\}\) 的最小二乘解与加 \(\sum x_i^2\) 惩罚的解。
- E13.4:比较 1-2-1 网络与 5 阶多项式(参数同为 7/6 个量级)在 \([-2,2]\) 训练、\([-4,4]\) 上的外推特性。
- E13.5–E13.9:给定密度(如 \(f(t|x)=\frac{t}{x^2}e^{-t/x}\)、\(f(t|x)=e^{-(t-x)},t\ge x\))求极大似然估计;加不同先验(指数先验 \(e^{-x}\)、非零均值高斯、拉普拉斯先验 \(\tfrac12e^{-|x|}\))求最大后验估计,讨论何时 \(x^{MP}=x^{ML}\)。
- E13.10:不均匀硬币正面概率:二项似然的 ML 估计 \(t/10\),加先验 \(p(x)=12x^2(1-x)\) 的 MP 估计,解释差异(Beta 先验下的后验众数)。
- E13.11:先验均值非零 \(\mathbf{x}_0\) 时的新性能指标(即 \(E_W=(\mathbf{x}-\mathbf{x}_0)^T(\mathbf{x}-\mathbf{x}_0)\))。
- E13.12–E13.14:线性网络的正则化指标:求 \(\mathbf{x}^{MP}\)、有效参数个数 \(\gamma\)(\(\rho=1\) 或 \(\rho\to\infty\))、等高线、最大稳定学习率、最速下降初始方向与轨迹;用 \(\alpha k\approx1/(2\rho)\) 估计等效迭代次数(如 \(\rho=1\)、学习率 0.01 时约 50 次)。
- E13.15、E13.16:在 E11.25 基础上用 1-30-1 网络、10 个训练点 + 5 个验证点(噪声 \(U[-0.1,0.1]\))比较提前停止、正则化(三个 \(\rho\) 值)与不处理的测试误差,10 组随机数据重复。
- E13.17:对 E10.4 的问题求 \(\rho=0,1,\infty\) 的正则化指标与最优权值、有效参数个数,并编程验证提前停止与正则化的对应迭代次数。
第 13 章小结
本章要点
- 泛化 = 在新数据上表现与训练数据相当;过拟合导致插值误差,可通过控制复杂度防止;外推误差(无数据区域)无法防止,高维中难以察觉,不能靠检查各变量单独范围判断。
- 测试集只能在全部训练和模型选择完成后使用一次;典型划分 70/15/15。
- 提前停止:监控验证误差,取其最小处权值;宜用较慢的训练算法。
- 正则化 \(F=\beta E_D+\alpha E_W\):惩罚大权值使函数平滑;贝叶斯视角下 \(E_D\) 对应高斯噪声似然、\(E_W\) 对应零均值高斯先验,正则化解即最大后验(MAP)估计;\(\beta=1/(2\sigma_\varepsilon^2)\),\(\alpha=1/(2\sigma_w^2)\)。
- 第二层贝叶斯(证据最大化 + 拉普拉斯近似)给出 \(\alpha=\gamma/(2E_W)\)、\(\beta=(N-\gamma)/(2E_D)\);GNBR 用 LM 的 \(\mathbf{J}^T\mathbf{J}\) 近似 Hessian 交替更新权值与超参数,无需验证集。
- 有效参数个数 \(\gamma=\sum_i\beta\lambda_i/(\beta\lambda_i+2\alpha)\),只有大曲率方向被“使用”。
- 线性情形下提前停止与正则化近似等价:\(\alpha k\approx1/(2\rho)\)——迭代次数相当于正则化强度的倒数。
与量化交易的关联
- 回测过拟合是量化的头号风险:本章的训练/验证/测试划分对应量化中的样本内/验证/样本外(OOS)。金融时间序列必须按时间顺序划分(滚动窗口、walk-forward),不能随机打乱,否则会产生前视偏差;“测试集只用一次”的纪律直接对应“不要反复在样本外上调参”,否则样本外也被污染(可用 deflated Sharpe ratio、多重检验校正等补救)。
- 正则化即收缩:贝叶斯正则化与岭回归、协方差矩阵收缩(Ledoit–Wolf)、Black–Litterman(以市场均衡为先验、观点为数据)同一数学结构;P13.2 的 \(x^{MP}=\beta\sum t_i/(\beta Q+\alpha)\) 就是对预期收益的收缩估计——在收益噪声大(\(\beta\) 小)时应大幅向先验(如零或横截面均值)收缩,这解释了为何均值–方差优化中直接用样本均值会严重过拟合。
- 有效参数个数:可用于评估因子模型/机器学习模型的真实复杂度(等价于岭回归的有效自由度),在比较不同模型或计算调整后的信息准则时有用;\(\gamma\ll n\) 提示模型可大幅简化。
- 提前停止:训练收益预测网络的标准做法;由于金融数据信噪比极低,验证误差往往很早就开始上升,提前停止点本身也带噪声,宜结合多次重训/集成。
- 外推风险:市场状态(regime)变化使模型面对训练中从未见过的输入组合(如利率与波动率的新组合),即使每个因子都在历史范围内,联合分布也可能是外推(P13.4 的教训),应监控输入的马氏距离或密度估计以识别“分布外”样本。
- 多项式过拟合(P13.6):对应用高阶多项式或过多参数拟合收益率曲线、波动率微笑时的振荡问题。
推荐习题
- P13.2、E13.8:信号加噪声的 ML 与 MAP 估计——理解收缩估计的最佳入门题。
- P13.3:亲手推导第二层贝叶斯的 \(\alpha,\beta\) 更新式。
- P13.5、E13.12–E13.14、E13.17:计算有效参数个数,验证 \(\alpha k\approx1/(2\rho)\)。
- E13.1–E13.3:多项式正则化(岭回归与导数惩罚),与 P13.6 对照。
- E13.10:Beta–二项共轭的 ML 与 MAP(胜率估计的贝叶斯修正,可直接用于交易信号胜率估计)。
- E13.15、E13.16:编程比较提前停止与正则化。