量化交易中文教材

精读笔记: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\) 出发,按

\[\mathbf{x}_{k+1}=\mathbf{x}_k+\alpha_k\mathbf{p}_k \quad (9.1)\]
或等价地
\[\Delta\mathbf{x}_k=\mathbf{x}_{k+1}-\mathbf{x}_k=\alpha_k\mathbf{p}_k \quad (9.2)\]
更新。\(\mathbf{p}_k\) 是搜索方向(search direction),正标量 \(\alpha_k\) 是学习率(learning rate),决定步长。各算法的区别在于 \(\mathbf{p}_k\) 的选择;\(\alpha_k\) 的选法也有多种。

9.1 最速下降法(Steepest Descent)(PDF p.268–276)

下降方向与最速下降方向

希望每步函数值下降:\(F(\mathbf{x}_{k+1})<F(\mathbf{x}_k)\)(9.3)。对 \(F\) 在 \(\mathbf{x}_k\) 作一阶泰勒展开:

\[F(\mathbf{x}_{k+1})=F(\mathbf{x}_k+\Delta\mathbf{x}_k)\approx F(\mathbf{x}_k)+\mathbf{g}_k^T\Delta\mathbf{x}_k \quad (9.4)\]
其中 \(\mathbf{g}_k\equiv\nabla F(\mathbf{x})\big|_{\mathbf{x}=\mathbf{x}_k}\)(9.5)。要下降,需 \(\mathbf{g}_k^T\Delta\mathbf{x}_k=\alpha_k\mathbf{g}_k^T\mathbf{p}_k<0\)(9.6);由于 \(\alpha_k>0\) 小,故需
\[\mathbf{g}_k^T\mathbf{p}_k<0 \quad (9.7)\]
满足此式的 \(\mathbf{p}_k\) 称为下降方向(descent direction):步长足够小时沿该方向函数必然下降。

最速下降方向:在 \(\mathbf{p}_k\) 长度不变、只改方向的前提下,使内积 \(\mathbf{g}_k^T\mathbf{p}_k\)(9.8)最负,即方向导数最负——取 \(\mathbf{p}_k=-\mathbf{g}_k\)(9.9)。代入(9.1)得最速下降法:

\[\mathbf{x}_{k+1}=\mathbf{x}_k-\alpha_k\mathbf{g}_k \quad (9.10)\]

学习率的两种一般选法:(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)

设性能指标为二次函数

\[F(\mathbf{x})=\tfrac12\mathbf{x}^T\mathbf{A}\mathbf{x}+\mathbf{d}^T\mathbf{x}+c \quad (9.18)\]
梯度 \(\nabla F(\mathbf{x})=\mathbf{A}\mathbf{x}+\mathbf{d}\)(9.19)。代入固定学习率的最速下降:
\[\mathbf{x}_{k+1}=\mathbf{x}_k-\alpha(\mathbf{A}\mathbf{x}_k+\mathbf{d}) \quad (9.20)\qquad\Longleftrightarrow\qquad \mathbf{x}_{k+1}=[\mathbf{I}-\alpha\mathbf{A}]\mathbf{x}_k-\alpha\mathbf{d} \quad (9.21)\]
这是线性动态系统,当矩阵 \([\mathbf{I}-\alpha\mathbf{A}]\) 的所有特征值模小于 1 时稳定。设 Hessian \(\mathbf{A}\) 的特征值、特征向量为 \(\{\lambda_i\}\)、\(\{\mathbf{z}_i\}\),则
\[[\mathbf{I}-\alpha\mathbf{A}]\mathbf{z}_i=\mathbf{z}_i-\alpha\lambda_i\mathbf{z}_i=(1-\alpha\lambda_i)\mathbf{z}_i \quad (9.22)\]
即 \([\mathbf{I}-\alpha\mathbf{A}]\) 与 \(\mathbf{A}\) 有相同特征向量,特征值为 \(1-\alpha\lambda_i\)。稳定条件 \(|1-\alpha\lambda_i|<1\)(9.23)。若有强极小点,\(\lambda_i>0\),化为 \(\alpha<2/\lambda_i\)(9.24),对所有特征值成立即
\[\boxed{\alpha<\frac{2}{\lambda_{\max}}} \quad (9.25)\]
直观:最大稳定学习率与二次函数的最大曲率成反比。曲率表示梯度变化快慢;梯度变化太快,就可能越过极小点太远,使新位置的梯度幅值大于旧位置(方向相反),步长逐次放大而发散。

例(续):\(\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\) 求导:

\[\frac{d}{d\alpha_k}F(\mathbf{x}_k+\alpha_k\mathbf{p}_k)=\nabla F(\mathbf{x})^T\big|_{\mathbf{x}_k}\mathbf{p}_k+\alpha_k\mathbf{p}_k^T\nabla^2F(\mathbf{x})\big|_{\mathbf{x}_k}\mathbf{p}_k \quad (9.30)\]
令其为零:
\[\alpha_k=-\frac{\mathbf{g}_k^T\mathbf{p}_k}{\mathbf{p}_k^T\mathbf{A}_k\mathbf{p}_k} \quad (9.31)\]
其中 \(\mathbf{A}_k\equiv\nabla^2F(\mathbf{x})|_{\mathbf{x}=\mathbf{x}_k}\)(9.32)(二次函数的 Hessian 与 \(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)。

\[\alpha_0=-\frac{[1.35\;\;0.3][-1.35\;\;-0.3]^T}{[-1.35\;\;-0.3]\mathbf{A}[-1.35\;\;-0.3]^T}=0.413\quad(9.37)\]
\(\mathbf{x}_1=\mathbf{x}_0-0.413\,\mathbf{g}_0=[0.24,\,-0.37]^T\)(9.38)。前五步见图 9.4:相邻两步方向正交,呈锯齿形(zig-zag)。

原因:沿直线极小化时总停在与等高线相切的点;梯度与等高线正交,因此下一步(负梯度)与上一步正交。解析证明——对(9.30)用链式法则:

\[\frac{d}{d\alpha_k}F(\mathbf{x}_{k+1})=\nabla F(\mathbf{x})^T\big|_{\mathbf{x}_{k+1}}\frac{d}{d\alpha_k}(\mathbf{x}_k+\alpha_k\mathbf{p}_k)=\mathbf{g}_{k+1}^T\mathbf{p}_k \quad (9.39)\]
在线上极小点该导数为零,故 \(\mathbf{g}_{k+1}^T\mathbf{p}_k=0\)。此结论与是否使用最速下降无关:沿任何方向做精确线搜索后,新梯度都与该搜索方向正交(共轭方向法要用到)。

预告:若把搜索方向从“正交”改为“共轭”,则 \(n\) 维二次函数至多 \(n\) 步精确极小化。思考题:哪类二次函数用最速下降一步即可到达极小?(Hessian 为单位阵的倍数,即所有特征值相等、等高线为圆。)演示 nnd9mc。

9.2 牛顿法(Newton's Method)(PDF p.276–281)

基于二阶泰勒展开:

\[F(\mathbf{x}_{k+1})=F(\mathbf{x}_k+\Delta\mathbf{x}_k)\approx F(\mathbf{x}_k)+\mathbf{g}_k^T\Delta\mathbf{x}_k+\tfrac12\Delta\mathbf{x}_k^T\mathbf{A}_k\Delta\mathbf{x}_k \quad (9.40)\]
思想:求这个二次近似的驻点(stationary point)。对 \(\Delta\mathbf{x}_k\) 求梯度并令为零:\(\mathbf{g}_k+\mathbf{A}_k\Delta\mathbf{x}_k=\mathbf{0}\)(9.41),得 \(\Delta\mathbf{x}_k=-\mathbf{A}_k^{-1}\mathbf{g}_k\)(9.42),牛顿法:
\[\boxed{\mathbf{x}_{k+1}=\mathbf{x}_k-\mathbf{A}_k^{-1}\mathbf{g}_k} \quad (9.43)\]

例:\(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):

\[\mathbf{x}_1=\begin{bmatrix}0.5\\0.5\end{bmatrix}-\begin{bmatrix}2&0\\0&50\end{bmatrix}^{-1}\begin{bmatrix}1\\25\end{bmatrix}=\begin{bmatrix}0.5\\0.5\end{bmatrix}-\begin{bmatrix}0.5\\0.5\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix}\quad(9.47)\]
对具有强极小的二次函数,牛顿法一步到位(图 9.5)。非二次函数一般不能一步收敛,甚至不保证收敛,取决于函数与初值。

非二次例:第 8 章式(8.18)函数

\[F(\mathbf{x})=(x_2-x_1)^4+8x_1x_2-x_1+x_2+3 \quad (9.48)\]
有三个驻点(9.49):\(\mathbf{x}^1=[-0.41878,\,0.41878]^T\)(强局部极小),\(\mathbf{x}^2=[-0.134797,\,0.134797]^T\)(鞍点),\(\mathbf{x}^3=[0.55358,\,-0.55358]^T\)(强全局极小)。

  • 初值 \([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),当且仅当

\[\mathbf{p}_k^T\mathbf{A}\mathbf{p}_j=0,\quad k\neq j \quad (9.52)\]
与正交向量类似,张成 \(n\) 维空间的共轭向量组有无穷多。\(\mathbf{A}\) 的特征向量就是一组:
\[\mathbf{z}_k^T\mathbf{A}\mathbf{z}_j=\lambda_j\mathbf{z}_k^T\mathbf{z}_j=0,\quad k\neq j \quad (9.53)\]
(对称矩阵特征向量互相正交),所以特征向量既共轭又正交。(思考:何种二次函数所有正交向量都共轭?——\(\mathbf{A}\) 为单位阵倍数。)沿特征向量(等高线主轴)搜索可精确极小化,但需先求 Hessian,不实用。

定理([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\) 步梯度变化

\[\Delta\mathbf{g}_k=\mathbf{g}_{k+1}-\mathbf{g}_k=(\mathbf{A}\mathbf{x}_{k+1}+\mathbf{d})-(\mathbf{A}\mathbf{x}_k+\mathbf{d})=\mathbf{A}\Delta\mathbf{x}_k \quad (9.56)\]
其中 \(\Delta\mathbf{x}_k=\alpha_k\mathbf{p}_k\)(9.57)。于是共轭条件变为
\[\alpha_k\mathbf{p}_k^T\mathbf{A}\mathbf{p}_j=\Delta\mathbf{x}_k^T\mathbf{A}\mathbf{p}_j=\Delta\mathbf{g}_k^T\mathbf{p}_j=0,\quad k\neq j \quad (9.58)\]
不再需要 Hessian:搜索方向与梯度变化正交即共轭。

构造:第一方向任意,通常取最速下降方向 \(\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}_k=-\mathbf{g}_k+\beta_k\mathbf{p}_{k-1} \quad (9.60)\]
\(\beta_k\) 的常见选法(对二次函数等价):
\[\beta_k=\frac{\Delta\mathbf{g}_{k-1}^T\mathbf{g}_k}{\Delta\mathbf{g}_{k-1}^T\mathbf{p}_{k-1}}\ \text{(Hestenes–Stiefel, 9.61)},\quad \beta_k=\frac{\mathbf{g}_k^T\mathbf{g}_k}{\mathbf{g}_{k-1}^T\mathbf{g}_{k-1}}\ \text{(Fletcher–Reeves, 9.62)},\quad \beta_k=\frac{\Delta\mathbf{g}_{k-1}^T\mathbf{g}_k}{\mathbf{g}_{k-1}^T\mathbf{g}_{k-1}}\ \text{(Polak–Ribière, 9.63)}\]

算法步骤:

  1. \(\mathbf{p}_0=-\mathbf{g}_0\);
  2. 按(9.57)走一步,\(\alpha_k\) 沿方向极小化 \(F\)(一般函数用第 12 章线搜索,二次函数用(9.31));
  3. 按(9.60)及(9.61)/(9.62)/(9.63)计算下一方向;
  4. 未收敛则回到第 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:

\[\beta_1=\frac{\mathbf{g}_1^T\mathbf{g}_1}{\mathbf{g}_0^T\mathbf{g}_0}=\frac{0.2621}{1.9125}=0.137\quad(9.71)\]
\(\mathbf{p}_1=-\mathbf{g}_1+\beta_1\mathbf{p}_0=[-0.11,0.5]^T+0.137[-1.35,-0.3]^T=[-0.295,\;0.459]^T\)(9.72)。 \(\alpha_1=-\dfrac{[0.11\;\;-0.5][-0.295\;\;0.459]^T}{\mathbf{p}_1^T\mathbf{A}\mathbf{p}_1}=\dfrac{0.262}{0.325}=0.807\)(9.73)。 \(\mathbf{x}_2=\mathbf{x}_1+\alpha_1\mathbf{p}_1=[0.24,-0.37]^T+0.807[-0.295,0.459]^T=[0,0]^T\)(9.74)。

二维二次函数两步精确收敛(图 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 章小结

本章要点

  1. 迭代极小化框架 \(\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\)。
  2. 二次函数上固定学习率最速下降等价于线性动态系统 \(\mathbf{x}_{k+1}=(\mathbf{I}-\alpha\mathbf{A})\mathbf{x}_k-\alpha\mathbf{d}\),稳定条件 \(\alpha<2/\lambda_{\max}\);收敛速度受 \(\lambda_{\min}\) 限制,条件数大则慢。
  3. 精确线搜索步长(二次)\(\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\),最速下降因此锯齿前进。
  4. 牛顿法 \(\mathbf{x}_{k+1}=\mathbf{x}_k-\mathbf{A}_k^{-1}\mathbf{g}_k\):二次函数一步收敛,但只找二次近似的驻点,可能趋向鞍点、振荡、发散,且需 Hessian 及逆;拟牛顿法以 \(\mathbf{H}_k\approx\mathbf{A}^{-1}\) 代替。
  5. 共轭梯度:共轭条件可改写为 \(\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\) 个神经元,

\[\mathbf{a}=\mathrm{purelin}(\mathbf{W}\mathbf{p}+\mathbf{b})=\mathbf{W}\mathbf{p}+\mathbf{b}\quad(10.1)\]
第 \(i\) 个输出 \(a_i=\mathrm{purelin}(n_i)={}_i\mathbf{w}^T\mathbf{p}+b_i\)(10.2),\({}_i\mathbf{w}\) 为 \(\mathbf{W}\) 第 \(i\) 行转置(10.3)。

单个两输入 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)。先讨论单神经元。把权值和偏置合并为

\[\mathbf{x}=\begin{bmatrix}{}_1\mathbf{w}\\b\end{bmatrix}\ (10.6),\qquad \mathbf{z}=\begin{bmatrix}\mathbf{p}\\1\end{bmatrix}\ (10.7)\]
则 \(a={}_1\mathbf{w}^T\mathbf{p}+b\)(10.8)可写成 \(a=\mathbf{x}^T\mathbf{z}\)(10.9)。均方误差:
\[F(\mathbf{x})=E[e^2]=E[(t-a)^2]=E[(t-\mathbf{x}^T\mathbf{z})^2]\quad(10.10)\]
期望对所有输入/目标对取(对确定性信号取广义定义,即时间平均,见 [WiSt85])。展开:
\[F(\mathbf{x})=E[t^2-2t\mathbf{x}^T\mathbf{z}+\mathbf{x}^T\mathbf{z}\mathbf{z}^T\mathbf{x}]=E[t^2]-2\mathbf{x}^TE[t\mathbf{z}]+\mathbf{x}^TE[\mathbf{z}\mathbf{z}^T]\mathbf{x}\quad(10.11)\]
即
\[F(\mathbf{x})=c-2\mathbf{x}^T\mathbf{h}+\mathbf{x}^T\mathbf{R}\mathbf{x}\quad(10.12)\]
\[c=E[t^2],\quad \mathbf{h}=E[t\mathbf{z}],\quad \mathbf{R}=E[\mathbf{z}\mathbf{z}^T]\quad(10.13)\]
\(\mathbf{h}\) 是输入与目标的互相关向量(cross-correlation),\(\mathbf{R}\) 是输入相关矩阵(input correlation matrix),对角元为输入各分量的均方值。

与一般二次函数 \(F=c+\mathbf{d}^T\mathbf{x}+\tfrac12\mathbf{x}^T\mathbf{A}\mathbf{x}\)(10.14)对照:

\[\mathbf{d}=-2\mathbf{h},\qquad \mathbf{A}=2\mathbf{R}\quad(10.15)\]
均方误差是二次函数——重要结论,因为二次函数性质主要由 Hessian 决定。相关矩阵总是正定或半正定(不会有负特征值)。两种情况:\(\mathbf{R}\) 全部特征值为正→唯一全局极小(图 8.7);有零特征值→视 \(\mathbf{d}\) 而定,可能是弱极小(图 8.9)或无极小(P8.7)。

梯度 \(\nabla F=\mathbf{d}+\mathbf{A}\mathbf{x}=-2\mathbf{h}+2\mathbf{R}\mathbf{x}\)(10.16),令为零(10.17),若 \(\mathbf{R}\) 正定则唯一驻点为强极小:

\[\mathbf{x}^*=\mathbf{R}^{-1}\mathbf{h}\quad(10.18)\]
唯一解是否存在只取决于 \(\mathbf{R}\),即由输入向量的特性决定。

10.3 LMS 算法(PDF p.315–317)

若能算出 \(\mathbf{h}\)、\(\mathbf{R}\),可直接用(10.18),或不求逆而用最速下降+(10.16)的梯度。但通常不便计算这些统计量,于是用估计梯度的近似最速下降。Widrow 与 Hoff 的关键洞见:用第 \(k\) 次迭代的平方误差估计均方误差

\[\hat F(\mathbf{x})=(t(k)-a(k))^2=e^2(k)\quad(10.19)\]
每步的梯度估计 \(\hat\nabla F(\mathbf{x})=\nabla e^2(k)\)(10.20),称为随机梯度(stochastic gradient);用于梯度下降时称为“在线”(on-line)或增量(incremental)学习,因为每输入一个样本就更新一次权值。

\(\nabla e^2(k)\) 前 \(R\) 个元素是对权值的导数,第 \(R+1\) 个是对偏置的导数:

\[[\nabla e^2(k)]_j=\frac{\partial e^2(k)}{\partial w_{1,j}}=2e(k)\frac{\partial e(k)}{\partial w_{1,j}},\ j=1..R\ (10.21);\qquad [\nabla e^2(k)]_{R+1}=2e(k)\frac{\partial e(k)}{\partial b}\ (10.22)\]
而
\[\frac{\partial e(k)}{\partial w_{1,j}}=\frac{\partial}{\partial w_{1,j}}\Big[t(k)-\Big(\sum_{i=1}^R w_{1,i}p_i(k)+b\Big)\Big]=-p_j(k)\ (10.23–10.24),\qquad \frac{\partial e(k)}{\partial b}=-1\ (10.25)\]
\(p_j(k)\) 与 1 正是 \(\mathbf{z}(k)\) 的元素,故
\[\hat\nabla F(\mathbf{x})=\nabla e^2(k)=-2e(k)\mathbf{z}(k)\quad(10.26)\]
妙处:近似梯度只需误差乘以输入。代入固定学习率最速下降 \(\mathbf{x}_{k+1}=\mathbf{x}_k-\alpha\nabla F|_{\mathbf{x}_k}\)(10.27):
\[\mathbf{x}_{k+1}=\mathbf{x}_k+2\alpha e(k)\mathbf{z}(k)\quad(10.28)\]
\[{}_1\mathbf{w}(k+1)={}_1\mathbf{w}(k)+2\alpha e(k)\mathbf{p}(k)\ (10.29),\qquad b(k+1)=b(k)+2\alpha e(k)\ (10.30)\]
这两式即 LMS 算法,也称 delta 规则(delta rule) 或 Widrow–Hoff 学习算法。多神经元时第 \(i\) 行:\({}_i\mathbf{w}(k+1)={}_i\mathbf{w}(k)+2\alpha e_i(k)\mathbf{p}(k)\)(10.31),\(b_i(k+1)=b_i(k)+2\alpha e_i(k)\)(10.32)。矩阵形式:
\[\mathbf{W}(k+1)=\mathbf{W}(k)+2\alpha\mathbf{e}(k)\mathbf{p}^T(k)\ (10.33),\qquad \mathbf{b}(k+1)=\mathbf{b}(k)+2\alpha\mathbf{e}(k)\ (10.34)\]
误差 \(\mathbf{e}\) 与偏置 \(\mathbf{b}\) 现为向量。(与感知机规则 \(\mathbf{W}^{new}=\mathbf{W}^{old}+\mathbf{e}\mathbf{p}^T\) 形式几乎相同,只多了学习率且误差为连续值。)

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)\) 独立。对满足此条件的平稳输入过程,权向量的期望将收敛到

\[\mathbf{x}^*=\mathbf{R}^{-1}\mathbf{h}\quad(10.35)\]
即最小均方误差 \(\{E[e_k^2]\}\) 解(10.18)。推导:对 \(\mathbf{x}_{k+1}=\mathbf{x}_k+2\alpha e(k)\mathbf{z}(k)\)(10.36)取期望
\[E[\mathbf{x}_{k+1}]=E[\mathbf{x}_k]+2\alpha E[e(k)\mathbf{z}(k)]\ (10.37)\]
代入 \(e(k)=t(k)-\mathbf{x}_k^T\mathbf{z}(k)\):
\[E[\mathbf{x}_{k+1}]=E[\mathbf{x}_k]+2\alpha\{E[t(k)\mathbf{z}(k)]-E[(\mathbf{x}_k^T\mathbf{z}(k))\mathbf{z}(k)]\}\ (10.38)\]
用 \(\mathbf{x}_k^T\mathbf{z}(k)=\mathbf{z}^T(k)\mathbf{x}_k\) 整理:\(E[\mathbf{x}_{k+1}]=E[\mathbf{x}_k]+2\alpha\{E[t_k\mathbf{z}(k)]-E[\mathbf{z}(k)\mathbf{z}^T(k)\mathbf{x}_k]\}\)(10.39)。由独立性:
\[E[\mathbf{x}_{k+1}]=E[\mathbf{x}_k]+2\alpha\{\mathbf{h}-\mathbf{R}E[\mathbf{x}_k]\}\ (10.40)\quad\Longleftrightarrow\quad E[\mathbf{x}_{k+1}]=[\mathbf{I}-2\alpha\mathbf{R}]E[\mathbf{x}_k]+2\alpha\mathbf{h}\ (10.41)\]
当 \([\mathbf{I}-2\alpha\mathbf{R}]\) 特征值全在单位圆内时稳定。其特征值为 \(1-2\alpha\lambda_i\)(\(\lambda_i\) 为 \(\mathbf{R}\) 的特征值),要求 \(|1-2\alpha\lambda_i|<1\)(10.42)。因 \(\lambda_i>0\),\(1-2\alpha\lambda_i<1\) 恒成立,只需 \(1-2\alpha\lambda_i>-1\),即 \(\alpha<1/\lambda_i\) 对所有 \(i\) 成立(10.43):
\[\boxed{0<\alpha<1/\lambda_{\max}}\quad(10.44)\]
这与第 9 章条件等价(那里用 Hessian \(\mathbf{A}\) 的特征值,此处用 \(\mathbf{R}\) 的,\(\mathbf{A}=2\mathbf{R}\))。稳态解:\(E[\mathbf{x}_{ss}]=[\mathbf{I}-2\alpha\mathbf{R}]E[\mathbf{x}_{ss}]+2\alpha\mathbf{h}\)(10.45)⇒ \(E[\mathbf{x}_{ss}]=\mathbf{R}^{-1}\mathbf{h}=\mathbf{x}^*\)(10.46)。逐个输入样本得到的 LMS 解(在期望意义上)与最小均方误差解相同。

注意:这里证明的是权值期望的收敛;单次实现的权值会在最优解附近随机波动(波动幅度与 \(\alpha\) 有关,即“失调”问题,见 [WiSt85])。

苹果/橘子例(第 3 章问题):ADALINE 设零偏置,更新 \(\mathbf{W}(k+1)=\mathbf{W}(k)+2\alpha e(k)\mathbf{p}^T(k)\)(10.47)。

\[\mathbf{p}_1=[1,-1,-1]^T,\ t_1=-1\ \text{(橘子)};\qquad \mathbf{p}_2=[1,1,-1]^T,\ t_2=1\ \text{(苹果)}\quad(10.48)\]
设两类等概率出现,
\[\mathbf{R}=E[\mathbf{p}\mathbf{p}^T]=\tfrac12\mathbf{p}_1\mathbf{p}_1^T+\tfrac12\mathbf{p}_2\mathbf{p}_2^T=\begin{bmatrix}1&0&-1\\0&1&0\\-1&0&1\end{bmatrix}\quad(10.49)\]
特征值 \(\lambda_1=1.0,\lambda_2=0.0,\lambda_3=2.0\)(10.50),\(\alpha<1/\lambda_{\max}=0.5\)(10.51)。保守取 \(\alpha=0.2\)(实际中可能无法算出 \(\mathbf{R}\),可试错选择,[WiSt85] 有其他方法)。从零权值开始,依次交替输入 \(\mathbf{p}_1,\mathbf{p}_2,\mathbf{p}_1,\mathbf{p}_2,\dots\)(交替非必需,随机顺序亦可):

  • \(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:

\[a(k)=\mathrm{purelin}(\mathbf{W}\mathbf{p}+b)=\sum_{i=1}^R w_{1,i}\,y(k-i+1)+b\quad(10.62)\]
熟悉数字信号处理者会认出这就是有限冲激响应(FIR)滤波器,只是其系数由 LMS 在线调整。

自适应噪声消除(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)。

\[\mathbf{R}=\begin{bmatrix}E[v^2(k)]&E[v(k)v(k-1)]\\E[v(k-1)v(k)]&E[v^2(k-1)]\end{bmatrix}\ (10.66),\quad \mathbf{h}=\begin{bmatrix}E[(s(k)+m(k))v(k)]\\E[(s(k)+m(k))v(k-1)]\end{bmatrix}\ (10.67)\]
设定:EEG \(s\) 为白噪声(各时刻不相关),在 \([-0.2,0.2]\) 均匀分布;噪声源为 60 Hz 正弦以 180 Hz 采样(每周期 3 点)
\[v(k)=1.2\sin\left(\frac{2\pi k}{3}\right)\ (10.68),\qquad m(k)=0.12\sin\left(\frac{2\pi k}{3}+\frac{\pi}{2}\right)\ (10.69)\]
(污染噪声为源噪声衰减 10 倍、相移 \(\pi/2\)。)计算(对一个周期 3 点取平均并用三角恒等式):
\[E[v^2(k)]=(1.2)^2\frac13\sum_{k=1}^3\sin^2\frac{2\pi k}{3}=(1.2)^2(0.5)=0.72\ (10.70),\quad E[v^2(k-1)]=0.72\ (10.71)\]
\[E[v(k)v(k-1)]=(1.2)^2(0.5)\cos\frac{2\pi}{3}=-0.36\ (10.72)\ \Rightarrow\ \mathbf{R}=\begin{bmatrix}0.72&-0.36\\-0.36&0.72\end{bmatrix}\ (10.73)\]
\(\mathbf{h}\) 第一元 \(=E[s(k)v(k)]+E[m(k)v(k)]\)(10.74):前项因 \(s,v\) 独立且零均值为 0;后项因相位差 \(\pi/2\) 也为 0(10.75)。第二元 \(=E[s(k)v(k-1)]+E[m(k)v(k-1)]\)(10.76),前项 0,后项 \(=\frac13\sum 0.12\sin(\frac{2\pi k}{3}+\frac\pi2)\cdot1.2\sin\frac{2\pi(k-1)}{3}=-0.0624\)(10.77)。故 \(\mathbf{h}=[0,\;-0.0624]^T\)(10.78)。
\[\mathbf{x}^*=\mathbf{R}^{-1}\mathbf{h}=\begin{bmatrix}0.72&-0.36\\-0.36&0.72\end{bmatrix}^{-1}\begin{bmatrix}0\\-0.0624\end{bmatrix}=\begin{bmatrix}-0.0578\\-0.1156\end{bmatrix}\quad(10.79)\]
极小处误差:\(F(\mathbf{x})=c-2\mathbf{x}^T\mathbf{h}+\mathbf{x}^T\mathbf{R}\mathbf{x}\)(10.80),\(c=E[t^2]=E[s^2]+2E[sm]+E[m^2]\)(10.81),中项为 0;
\[E[s^2]=\frac1{0.4}\int_{-0.2}^{0.2}s^2ds=\frac{1}{3(0.4)}s^3\Big|_{-0.2}^{0.2}=0.0133\ (10.82),\quad E[m^2]=\frac13\sum_{k=1}^3\Big(0.12\sin(\tfrac{2\pi}{3}k+\tfrac\pi2)\Big)^2=0.0072\ (10.83)\]
\(c=0.0205\)(10.84),\(F(\mathbf{x}^*)=0.0205-2(0.0072)+0.0072=0.0133\)(10.85)。最小均方误差恰等于 EEG 信号的均方值——符合预期,因为该系统的“误差”就是重建的 EEG。

图 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 章小结

本章要点

  1. ADALINE = 线性传输函数的单层网络,决策边界 \(\mathbf{W}\mathbf{p}+\mathbf{b}=0\),仅能处理线性可分问题。
  2. 均方误差 \(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}\)(维纳解),解的唯一性只取决于输入相关矩阵。
  3. LMS 用瞬时平方误差估计均方误差,随机梯度 \(-2e(k)\mathbf{z}(k)\),更新 \(\mathbf{W}\leftarrow\mathbf{W}+2\alpha\mathbf{e}\mathbf{p}^T\),计算量极低、可在线运行。
  4. 在输入独立、平稳假设下,权值期望收敛到 \(\mathbf{R}^{-1}\mathbf{h}\),稳定条件 \(0<\alpha<1/\lambda_{\max}(\mathbf{R})\);单次实现的权值在最优点附近抖动(梯度估计噪声)。
  5. 抽头延迟线+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、第二层线性:

\[f^1(n)=\frac{1}{1+e^{-n}},\qquad f^2(n)=n\quad(11.2)\]
标称参数:\(w^1_{1,1}=10,\ w^1_{2,1}=10,\ b^1_1=-10,\ b^1_2=10,\ w^2_{1,1}=1,\ w^2_{1,2}=1,\ b^2=0\)。在 \(p\in[-2,2]\) 上响应为两个台阶(每个 sigmoid 神经元一个,图 11.5)。台阶中心在第一层净输入为零处:
\[n^1_1=w^1_{1,1}p+b^1_1=0\Rightarrow p=-b^1_1/w^1_{1,1}=1\ (11.3),\qquad n^1_2=0\Rightarrow p=-b^1_2/w^1_{2,1}=-1\ (11.4)\]
台阶陡峭程度由权值调节。图 11.6 每次只改变一个参数:\(-1\le w^2_{1,1}\le1\),\(-1\le w^2_{1,2}\le1\),\(0\le b^1_2\le20\),\(-1\le b^2\le1\)(11.5)。(a) 隐层偏置决定台阶位置;(b) 权值决定台阶斜率(及高度/方向);(d) 输出层偏置使整体上下平移。

万能逼近:隐层用 sigmoid、输出层线性的两层网络,只要隐层单元足够多,能以任意精度逼近几乎任何感兴趣的函数([HoSt89] Hornik, Stinchcombe, White)。演示 nnd11nf。

11.2 反向传播算法(The Backpropagation Algorithm)(PDF p.363–369)

采用简写记号(图 11.7)。前向运算:

\[\mathbf{a}^{m+1}=\mathbf{f}^{m+1}(\mathbf{W}^{m+1}\mathbf{a}^m+\mathbf{b}^{m+1}),\quad m=0,1,\dots,M-1\quad(11.6)\]
\(M\) 为层数;\(\mathbf{a}^0=\mathbf{p}\)(11.7);网络输出 \(\mathbf{a}=\mathbf{a}^M\)(11.8)。

性能指标(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),多输出时

\[F(\mathbf{x})=E[\mathbf{e}^T\mathbf{e}]=E[(\mathbf{t}-\mathbf{a})^T(\mathbf{t}-\mathbf{a})]\quad(11.11)\]
与 LMS 一样用第 \(k\) 步的平方误差近似:
\[\hat F(\mathbf{x})=(\mathbf{t}(k)-\mathbf{a}(k))^T(\mathbf{t}(k)-\mathbf{a}(k))=\mathbf{e}^T(k)\mathbf{e}(k)\quad(11.12)\]
近似均方误差的最速下降(随机梯度下降):
\[w^m_{i,j}(k+1)=w^m_{i,j}(k)-\alpha\frac{\partial\hat F}{\partial w^m_{i,j}}\ (11.13),\qquad b^m_i(k+1)=b^m_i(k)-\alpha\frac{\partial\hat F}{\partial b^m_i}\ (11.14)\]
至此与 LMS 完全相同,难点是偏导数。

链式法则(Chain Rule)

隐层权值不是误差的显式函数,需链式法则:若 \(f\) 只显式依赖于 \(n\),\(n\) 依赖于 \(w\),则

\[\frac{df(n(w))}{dw}=\frac{df(n)}{dn}\cdot\frac{dn(w)}{dw}\quad(11.15)\]
例:\(f(n)=e^n\),\(n=2w\),\(f(n(w))=e^{2w}\)(11.16),\(\frac{d}{dw}=e^n\cdot2\)(11.17)。用于网络:
\[\frac{\partial\hat F}{\partial w^m_{i,j}}=\frac{\partial\hat F}{\partial n^m_i}\cdot\frac{\partial n^m_i}{\partial w^m_{i,j}}\ (11.18),\qquad \frac{\partial\hat F}{\partial b^m_i}=\frac{\partial\hat F}{\partial n^m_i}\cdot\frac{\partial n^m_i}{\partial b^m_i}\ (11.19)\]
第 \(m\) 层净输入是本层权值与偏置的显式函数:
\[n^m_i=\sum_{j=1}^{S^{m-1}}w^m_{i,j}a^{m-1}_j+b^m_i\ (11.20)\ \Rightarrow\ \frac{\partial n^m_i}{\partial w^m_{i,j}}=a^{m-1}_j,\quad \frac{\partial n^m_i}{\partial b^m_i}=1\ (11.21)\]
定义敏感度(sensitivity)——\(\hat F\) 对第 \(m\) 层第 \(i\) 个净输入变化的敏感程度:
\[s^m_i\equiv\frac{\partial\hat F}{\partial n^m_i}\quad(11.22)\]
则 \(\partial\hat F/\partial w^m_{i,j}=s^m_ia^{m-1}_j\)(11.23),\(\partial\hat F/\partial b^m_i=s^m_i\)(11.24),更新:
\[w^m_{i,j}(k+1)=w^m_{i,j}(k)-\alpha s^m_ia^{m-1}_j\ (11.25),\qquad b^m_i(k+1)=b^m_i(k)-\alpha s^m_i\ (11.26)\]
矩阵形式:
\[\mathbf{W}^m(k+1)=\mathbf{W}^m(k)-\alpha\mathbf{s}^m(\mathbf{a}^{m-1})^T\ (11.27),\qquad \mathbf{b}^m(k+1)=\mathbf{b}^m(k)-\alpha\mathbf{s}^m\ (11.28)\]
\[\mathbf{s}^m\equiv\frac{\partial\hat F}{\partial\mathbf{n}^m}=\Big[\frac{\partial\hat F}{\partial n^m_1},\dots,\frac{\partial\hat F}{\partial n^m_{S^m}}\Big]^T\quad(11.29)\]
(与 LMS 的(10.33)–(10.34)非常相似:LMS 中 \(\mathbf{s}=-2\mathbf{e}\)。)

敏感度的反向传播(Backpropagating the Sensitivities)

再用一次链式法则得到递推关系:第 \(m\) 层敏感度由第 \(m+1\) 层敏感度算出——这就是“反向传播”名称的由来。用 Jacobian 矩阵

\[\frac{\partial\mathbf{n}^{m+1}}{\partial\mathbf{n}^m}=\Big[\frac{\partial n^{m+1}_i}{\partial n^m_j}\Big]_{S^{m+1}\times S^m}\quad(11.30)\]
其 \((i,j)\) 元:
\[\frac{\partial n^{m+1}_i}{\partial n^m_j}=\frac{\partial\big(\sum_{l=1}^{S^m}w^{m+1}_{i,l}a^m_l+b^{m+1}_i\big)}{\partial n^m_j}=w^{m+1}_{i,j}\frac{\partial a^m_j}{\partial n^m_j}=w^{m+1}_{i,j}\dot f^m(n^m_j)\quad(11.31)\]
其中 \(\dot f^m(n^m_j)=\partial f^m(n^m_j)/\partial n^m_j\)(11.32)。故
\[\frac{\partial\mathbf{n}^{m+1}}{\partial\mathbf{n}^m}=\mathbf{W}^{m+1}\dot{\mathbf{F}}^m(\mathbf{n}^m)\ (11.33),\qquad \dot{\mathbf{F}}^m(\mathbf{n}^m)=\mathrm{diag}\big(\dot f^m(n^m_1),\dots,\dot f^m(n^m_{S^m})\big)\ (11.34)\]
矩阵形式的链式法则:
\[\mathbf{s}^m=\frac{\partial\hat F}{\partial\mathbf{n}^m}=\Big(\frac{\partial\mathbf{n}^{m+1}}{\partial\mathbf{n}^m}\Big)^T\frac{\partial\hat F}{\partial\mathbf{n}^{m+1}}=\dot{\mathbf{F}}^m(\mathbf{n}^m)(\mathbf{W}^{m+1})^T\mathbf{s}^{m+1}\quad(11.35)\]
敏感度从最后一层向第一层反向传播:\(\mathbf{s}^M\to\mathbf{s}^{M-1}\to\dots\to\mathbf{s}^2\to\mathbf{s}^1\)(11.36)。强调:反向传播与 LMS 用的是同一种近似最速下降,唯一复杂之处是计算梯度前须先反传敏感度;其妙处在于是链式法则的高效实现(计算量与前向传播同阶)。

起点(最后一层):

\[s^M_i=\frac{\partial\hat F}{\partial n^M_i}=\frac{\partial\sum_{j=1}^{S^M}(t_j-a_j)^2}{\partial n^M_i}=-2(t_i-a_i)\frac{\partial a_i}{\partial n^M_i}\quad(11.37)\]
由于 \(\frac{\partial a_i}{\partial n^M_i}=\frac{\partial f^M(n^M_i)}{\partial n^M_i}=\dot f^M(n^M_i)\)(11.38),\(s^M_i=-2(t_i-a_i)\dot f^M(n^M_i)\)(11.39),矩阵形式
\[\mathbf{s}^M=-2\dot{\mathbf{F}}^M(\mathbf{n}^M)(\mathbf{t}-\mathbf{a})\quad(11.40)\]

算法总结(PDF p.369–370)

  1. 前向传播:\(\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)。
  2. 反向传播敏感度:\(\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)。
  3. 更新:\(\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)逼近

\[g(p)=1+\sin\left(\frac{\pi}{4}p\right),\quad -2\le p\le2\quad(11.48)\]
初值通常取小随机数(原因见第 12 章),此处取 \(\mathbf{W}^1(0)=[-0.27,\,-0.41]^T\),\(\mathbf{b}^1(0)=[-0.48,\,-0.13]^T\),\(\mathbf{W}^2(0)=[0.09,\,-0.17]\),\(\mathbf{b}^2(0)=0.48\)。初始响应见图 11.9。训练集:在 \([-2,2]\) 上以 0.2 等间隔采 21 点。输入次序任意,常随机选。

第一次输入 \(p=1\)(第 16 个训练点),\(a^0=1\):

\[\mathbf{a}^1=\mathrm{logsig}\left(\begin{bmatrix}-0.27\\-0.41\end{bmatrix}1+\begin{bmatrix}-0.48\\-0.13\end{bmatrix}\right)=\mathrm{logsig}\begin{bmatrix}-0.75\\-0.54\end{bmatrix}=\begin{bmatrix}\frac{1}{1+e^{0.75}}\\\frac{1}{1+e^{0.54}}\end{bmatrix}=\begin{bmatrix}0.321\\0.368\end{bmatrix}\]
\[a^2=\mathrm{purelin}\left([0.09\;\;-0.17]\begin{bmatrix}0.321\\0.368\end{bmatrix}+0.48\right)=0.446\]
\[e=t-a=\{1+\sin(\pi/4)\}-0.446=1.261\]
传输函数导数:
\[\dot f^1(n)=\frac{d}{dn}\frac{1}{1+e^{-n}}=\frac{e^{-n}}{(1+e^{-n})^2}=\Big(1-\frac{1}{1+e^{-n}}\Big)\Big(\frac{1}{1+e^{-n}}\Big)=(1-a^1)(a^1);\qquad \dot f^2(n)=1\]
(logsig 的导数可直接用输出表示,是实现上的关键技巧。) 反传:\(s^2=-2\dot F^2(n^2)(t-a)=-2(1)(1.261)=-2.522\);
\[\mathbf{s}^1=\dot{\mathbf{F}}^1(\mathbf{n}^1)(\mathbf{W}^2)^Ts^2=\begin{bmatrix}(1-0.321)(0.321)&0\\0&(1-0.368)(0.368)\end{bmatrix}\begin{bmatrix}0.09\\-0.17\end{bmatrix}(-2.522)=\begin{bmatrix}0.218&0\\0&0.233\end{bmatrix}\begin{bmatrix}-0.227\\0.429\end{bmatrix}=\begin{bmatrix}-0.0495\\0.0997\end{bmatrix}\]
更新(\(\alpha=0.1\),第 12 章再讨论学习率选择):

  • \(\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):所有输入都送入后计算完整梯度再更新。若各输入等概率,

\[F(\mathbf{x})=E[\mathbf{e}^T\mathbf{e}]=\frac1Q\sum_{q=1}^Q(\mathbf{t}_q-\mathbf{a}_q)^T(\mathbf{t}_q-\mathbf{a}_q)\quad(11.49)\]
\[\nabla F(\mathbf{x})=\frac1Q\sum_{q=1}^Q\nabla\{(\mathbf{t}_q-\mathbf{a}_q)^T(\mathbf{t}_q-\mathbf{a}_q)\}\quad(11.50)\]
总梯度是各样本平方误差梯度的平均。批量实现:对每个输入执行(11.41)–(11.45),平均后更新:
\[\mathbf{W}^m(k+1)=\mathbf{W}^m(k)-\frac{\alpha}{Q}\sum_{q=1}^Q\mathbf{s}^m_q(\mathbf{a}^{m-1}_q)^T\ (11.51),\qquad \mathbf{b}^m(k+1)=\mathbf{b}^m(k)-\frac{\alpha}{Q}\sum_{q=1}^Q\mathbf{s}^m_q\ (11.52)\]

11.5 反向传播的使用(Using Backpropagation)(PDF p.374–380)

网络结构选择(Choice of Network Architecture)

足够多隐层神经元可逼近几乎任何函数,但一般无法事先确定需要几层、多少神经元。例 1:逼近

\[g(p)=1+\sin\left(\frac{i\pi}{4}p\right),\quad -2\le p\le2,\quad i=1,2,4,8\quad(11.53)\]
\(i\) 越大,区间内正弦周期越多,函数越复杂。用 1-3-1 网络(logsig 隐层+线性输出),其响应至多是 3 个 sigmoid 的叠加。图 11.10:\(i=4\) 时 1-3-1 已达能力上限;\(i=8\) 时无法准确逼近——均方误差被最小化,但网络只能匹配函数的一小部分。 例 2:固定函数
\[g(p)=1+\sin\left(\frac{6\pi}{4}p\right),\quad -2\le p\le2\quad(11.54)\]
逐步增大 1-\(S^1\)-1 网络(图 11.11:1-2-1、1-3-1、1-4-1、1-5-1):隐层至少 5 个神经元才能准确表示。结论:1-\(S^1\)-1(sigmoid 隐层、线性输出)网络的响应是 \(S^1\) 个 sigmoid 的叠加;要逼近拐点(inflection points)很多的函数,需要很多隐层神经元。演示 nnd11fa。

收敛(Convergence)

上面的失败是网络能力受限所致;这里给出网络有能力但学习算法没找到好参数的例子。逼近

\[g(p)=1+\sin(\pi p),\quad -2\le p\le2\quad(11.55)\]
用 1-3-1 网络。图 11.12:从某初值收敛到使均方误差最小的全局极小(曲线编号 0–5 只表示先后次序,非迭代数)。图 11.13:仅初值不同,收敛到局部极小——终点梯度为零,但已知有更好的解。LMS 不会出现这种情况:ADALINE 的均方误差是二次函数,(多数情况下)只有一个极小,学习率足够小就保证收敛到全局极小;多层网络的均方误差曲面复杂、有许多局部极小(第 12 章详述)。反向传播收敛后无法确定得到最优解,最好尝试多个不同初值。

泛化(Generalization)

网络通常只用有限训练样本 \(\{\mathbf{p}_q,\mathbf{t}_q\}\)(11.56)训练,而训练集代表更大的输入/输出总体,网络须把所学推广到总体。例:在 \(p=-2,-1.6,-1.2,\dots,1.6,2\)(共 11 点)采样

\[g(p)=1+\sin\left(\frac{\pi}{4}p\right)\quad(11.57)\]
1-2-1 网络(图 11.14)准确表示 \(g(p)\),在训练集外的点(如 \(p=-0.2\))也接近真值——泛化良好。1-9-1 网络(图 11.15)在所有训练点上都精确拟合,但在训练集外的点可能远离真值——泛化差。1-9-1 有 28 个可调参数(18 个权值 + 10 个偏置),而只有 11 个数据点,过于灵活;1-2-1 只有 7 个参数,可实现的函数受限得多。

原则:要能泛化,参数个数应少于训练数据点数。与所有建模问题一样,应使用能充分表示训练集的最简单网络——小网络够用就不要用大网络(奥卡姆剃刀 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 神经元组合第一层输出:

\[\mathbf{W}^2=\begin{bmatrix}1&1&1&1&0&0&0&0&0&0&0\\0&0&0&0&1&1&0&0&1&0&1\\0&0&0&0&1&0&0&1&1&1&0\\0&0&0&0&0&0&1&1&1&0&1\end{bmatrix},\quad \mathbf{b}^2=[-3,-3,-3,-3]^T\]
(如第 2 个神经元组合边界 5、6、9、11;4 个输入全为 1 时净输入 \(4-3>0\)。)第三层用 OR 合并 4 个区域:\(\mathbf{W}^3=[1,1,1,1]\),\(b^3=3\)。网络为 2-11-4-1,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)\),链式法则

\[r(k+1)=\frac{\partial y(k+1)}{\partial y(k)}\frac{\partial y(k)}{\partial y(0)}=\dot f(y(k))\,r(k),\qquad r(0)=1\]
完整过程:\(r(0)=1\);\(r(k+1)=\dot f(y(k))r(k)\),\(k=0,\dots,K-1\);\(\partial F/\partial y(0)=-2(t-y(K))r(K)\)。(前向递推求敏感度。)

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}}\):

\[\dot f(n)=\frac{(e^n+e^{-n})^2-(e^n-e^{-n})^2}{(e^n+e^{-n})^2}=1-\Big(\frac{e^n-e^{-n}}{e^n+e^{-n}}\Big)^2=1-a^2\]

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\) 的函数):

\[\frac{\partial a(k+1)}{\partial w_1}=p(k)+w_2\frac{\partial a(k)}{\partial w_1},\qquad \frac{\partial a(k+1)}{\partial w_2}=a(k)+w_2\frac{\partial a(k)}{\partial w_2}\]
初值 \(\partial a(0)/\partial w_1=\partial a(0)/\partial w_2=0\)(初始条件与权值无关)。例:\(a(0)=0\) 时 \(a(1)=w_1p(0)\),\(\partial a(1)/\partial w_1=p(0)\),\(\partial a(1)/\partial w_2=0\),故 \(\Delta w_1=2\alpha(t(1)-a(1))p(0)\),\(\Delta w_2=0\)。这是动态反向传播(dynamic backpropagation):梯度由差分方程计算(第 14 章展开)。

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 章小结

本章要点

  1. 多层网络(非线性隐层)可解决非线性可分问题(XOR、任意区域:第一层线性边界→第二层 AND 形成凸区域→第三层 OR 组合任意区域),且为万能函数逼近器;1-\(S^1\)-1 网络响应是 \(S^1\) 个 sigmoid 的叠加。
  2. 反向传播 = 近似最速下降 + 链式法则:\(\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}\) 反传。
  3. 导数技巧:logsig \(\dot f=a(1-a)\),tansig \(\dot f=1-a^2\),purelin \(\dot f=1\)。
  4. 增量(随机梯度)与批量(平均梯度)两种训练方式。
  5. 实践问题:网络规模(容量不足无法拟合)、局部极小(多初值尝试)、泛化(参数少于数据点;奥卡姆剃刀;提前停止)。
  6. 反传思想可推广到旁路连接、递归网络(动态反向传播)、单层线性网络退化为 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 章的反向传播是重大突破,但基本算法对大多数实际问题太慢(可能需数天到数周机时)。本章先用函数逼近例说明慢的原因,再介绍加速方法。加速研究分两类:

  1. 启发式技术(heuristic):源自对标准算法表现的观察,如可变学习率、动量、变量重标度([VoMa88]、[Jacob88]、[Toll90]、[RiIr90])。本章讲动量与可变学习率。
  2. 标准数值优化技术([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)。为知道最优解,让它逼近同一网络在以下参数下的响应:

\[w^1_{1,1}=10,\ w^1_{2,1}=10,\ b^1_1=-5,\ b^1_2=5\ (12.1);\qquad w^2_{1,1}=1,\ w^2_{1,2}=1,\ b^2=-1\ (12.2)\]
在 \(p\in[-2,2]\) 上响应为 0 到 1 之间的台阶形曲线(图 12.2)。在 \(p=-2,-1.9,\dots,1.9,2\)(12.3,共 41 点,等概率)采样,性能指标取 41 点的平方误差之和。每次只变两个参数作图:

  • 图 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)

基于“平滑振荡可改善收敛”的观察,用低通滤波器。先看一阶滤波器:

\[y(k)=\gamma y(k-1)+(1-\gamma)w(k)\quad(12.4)\]
\(w(k)\) 为输入、\(y(k)\) 为输出,\(\gamma\) 为动量系数(momentum coefficient),\(0\le\gamma<1\)(12.5)。例:输入 \(w(k)=1+\sin(2\pi k/16)\)(12.6),\(\gamma=0.9\) 与 \(\gamma=0.98\)(图 12.9):输出振荡小于输入(低通);\(\gamma\) 越大振荡越小;输出均值等于输入均值,但 \(\gamma\) 越大响应越慢。即:减少振荡同时跟踪平均值。

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):

\[\Delta\mathbf{W}^m(k)=\gamma\Delta\mathbf{W}^m(k-1)-(1-\gamma)\alpha\mathbf{s}^m(\mathbf{a}^{m-1})^T\quad(12.9)\]
\[\Delta\mathbf{b}^m(k)=\gamma\Delta\mathbf{b}^m(k-1)-(1-\gamma)\alpha\mathbf{s}^m\quad(12.10)\]
图 12.10:批量 MOBP,初值和学习率同图 12.8(原本发散),动量系数 \(\gamma=0.8\),算法变得稳定。动量允许使用更大的学习率而保持稳定;轨迹沿一致方向移动时还会加速收敛。名称由来:它使轨迹倾向于沿同一方向继续,\(\gamma\) 越大“动量”越大。演示 nnd12mo。

12.3 启发式改进之二:可变学习率(Variable Learning Rate)(PDF p.424–426)

单层线性网络的误差曲面是二次的,Hessian 恒定,最大稳定学习率 \(2/\lambda_{\max}\)(9.25)。多层网络曲面形状随区域变化,可在训练中调整学习率,诀窍在于何时调、调多少。介绍一种简单的批量方法 [VoMa88]——**可变学习率反向传播(VLBP)**规则:

  1. 若一次权值更新后(整个训练集上的)平方误差增加超过设定百分比 \(\zeta\)(通常 1%–5%),则丢弃该更新,学习率乘以因子 \(0<\rho<1\),动量系数 \(\gamma\)(若使用)置零;
  2. 若平方误差下降,则接受更新,学习率乘以因子 \(\eta>1\);若 \(\gamma\) 之前被置零则恢复原值;
  3. 若平方误差增加但少于 \(\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 页):

  1. \(\mathbf{p}_0=-\mathbf{g}_0\)(12.12),\(\mathbf{g}_k\equiv\nabla F(\mathbf{x})|_{\mathbf{x}=\mathbf{x}_k}\)(12.13);
  2. \(\mathbf{x}_{k+1}=\mathbf{x}_k+\alpha_k\mathbf{p}_k\),\(\alpha_k\) 沿搜索方向极小化函数(12.14);
  3. \(\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);
  4. 未收敛则回到第 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\) 为平方和:

\[F(\mathbf{x})=\sum_{i=1}^N v_i^2(\mathbf{x})=\mathbf{v}^T(\mathbf{x})\mathbf{v}(\mathbf{x})\quad(12.20)\]
梯度第 \(j\) 元 \([\nabla F]_j=\partial F/\partial x_j=2\sum_i v_i\,\partial v_i/\partial x_j\)(12.21),矩阵形式
\[\nabla F(\mathbf{x})=2\mathbf{J}^T(\mathbf{x})\mathbf{v}(\mathbf{x})\quad(12.22)\]
其中 Jacobian 矩阵 \(\mathbf{J}(\mathbf{x})=[\partial v_i/\partial x_j]_{N\times n}\)(12.23)。Hessian 的 \((k,j)\) 元
\[[\nabla^2F]_{k,j}=2\sum_{i=1}^N\Big\{\frac{\partial v_i}{\partial x_k}\frac{\partial v_i}{\partial x_j}+v_i\frac{\partial^2v_i}{\partial x_k\partial x_j}\Big\}\quad(12.24)\]
\[\nabla^2F(\mathbf{x})=2\mathbf{J}^T\mathbf{J}+2\mathbf{S}(\mathbf{x}),\qquad \mathbf{S}(\mathbf{x})=\sum_{i=1}^N v_i(\mathbf{x})\nabla^2v_i(\mathbf{x})\quad(12.25–12.26)\]
若 \(\mathbf{S}\) 很小(残差小或模型近线性),\(\nabla^2F\approx2\mathbf{J}^T\mathbf{J}\)(12.27),代入牛顿法得 Gauss–Newton 法:
\[\mathbf{x}_{k+1}=\mathbf{x}_k-[2\mathbf{J}^T\mathbf{J}]^{-1}2\mathbf{J}^T\mathbf{v}=\mathbf{x}_k-[\mathbf{J}^T(\mathbf{x}_k)\mathbf{J}(\mathbf{x}_k)]^{-1}\mathbf{J}^T(\mathbf{x}_k)\mathbf{v}(\mathbf{x}_k)\quad(12.28)\]
优点:无需二阶导数。问题:\(\mathbf{H}=\mathbf{J}^T\mathbf{J}\) 可能不可逆。修正:
\[\mathbf{G}=\mathbf{H}+\mu\mathbf{I}\quad(12.29)\]
设 \(\mathbf{H}\) 的特征值/向量为 \(\lambda_i,\mathbf{z}_i\),则 \(\mathbf{G}\mathbf{z}_i=(\lambda_i+\mu)\mathbf{z}_i\)(12.30):\(\mathbf{G}\) 与 \(\mathbf{H}\) 特征向量相同,特征值为 \(\lambda_i+\mu\);增大 \(\mu\) 直到所有 \(\lambda_i+\mu>0\),\(\mathbf{G}\) 正定可逆。由此得 Levenberg–Marquardt 算法 [Scal85]:
\[\mathbf{x}_{k+1}=\mathbf{x}_k-[\mathbf{J}^T\mathbf{J}+\mu_k\mathbf{I}]^{-1}\mathbf{J}^T\mathbf{v}\ (12.31)\quad\text{或}\quad \Delta\mathbf{x}_k=-[\mathbf{J}^T(\mathbf{x}_k)\mathbf{J}(\mathbf{x}_k)+\mu_k\mathbf{I}]^{-1}\mathbf{J}^T(\mathbf{x}_k)\mathbf{v}(\mathbf{x}_k)\ (12.32)\]
关键性质:\(\mu_k\) 增大时趋于小学习率的最速下降:
\[\mathbf{x}_{k+1}\cong\mathbf{x}_k-\frac{1}{\mu_k}\mathbf{J}^T\mathbf{v}=\mathbf{x}_k-\frac{1}{2\mu_k}\nabla F(\mathbf{x}),\quad \text{大 }\mu_k\quad(12.33)\]
\(\mu_k\) 减到零时变为 Gauss–Newton。\(\mu\) 调整:初始取小值(如 \(\mu_0=0.01\));若一步不能减小 \(F\),则 \(\mu\) 乘以 \(\vartheta>1\)(如 \(\vartheta=10\))后重做该步——最终 \(F\) 必下降,因为是沿最速下降方向的小步;若一步使 \(F\) 减小,下一步 \(\mu\) 除以 \(\vartheta\),向 Gauss–Newton 靠拢以加快收敛。兼顾牛顿法的速度与最速下降的保证收敛。

用于多层网络

若各目标等概率,均方误差正比于训练集 \(Q\) 个目标上的误差平方和:

\[F(\mathbf{x})=\sum_{q=1}^Q(\mathbf{t}_q-\mathbf{a}_q)^T(\mathbf{t}_q-\mathbf{a}_q)=\sum_{q=1}^Q\mathbf{e}_q^T\mathbf{e}_q=\sum_{q=1}^Q\sum_{j=1}^{S^M}(e_{j,q})^2=\sum_{i=1}^N(v_i)^2\quad(12.34)\]
\(e_{j,q}\) 为第 \(q\) 对的误差第 \(j\) 元。概念上直接,但细节需小心。

Jacobian 的计算(PDF p.434–438)

误差向量与参数向量:

\[\mathbf{v}^T=[v_1\ \dots\ v_N]=[e_{1,1}\ e_{2,1}\ \dots\ e_{S^M,1}\ e_{1,2}\ \dots\ e_{S^M,Q}]\quad(12.35)\]
\[\mathbf{x}^T=[x_1\ \dots\ x_n]=[w^1_{1,1}\ w^1_{1,2}\ \dots\ w^1_{S^1,R}\ b^1_1\ \dots\ b^1_{S^1}\ w^2_{1,1}\ \dots\ b^M_{S^M}]\quad(12.36)\]
\(N=Q\times S^M\),\(n=S^1(R+1)+S^2(S^1+1)+\dots+S^M(S^{M-1}+1)\)。Jacobian(12.37)的行对应每个样本的每个输出误差,列对应每个权值/偏置,元为 \(\partial e_{k,q}/\partial w\) 或 \(\partial e_{k,q}/\partial b\)。

标准反传计算 \(\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 敏感度:

\[\tilde s^m_{i,h}\equiv\frac{\partial v_h}{\partial n^m_{i,q}}=\frac{\partial e_{k,q}}{\partial n^m_{i,q}},\qquad h=(q-1)S^M+k\quad(12.42)\]
则
\[[\mathbf{J}]_{h,l}=\frac{\partial e_{k,q}}{\partial w^m_{i,j}}=\tilde s^m_{i,h}\,a^{m-1}_{j,q}\ \text{(权值,12.43)},\qquad [\mathbf{J}]_{h,l}=\frac{\partial e_{k,q}}{\partial b^m_i}=\tilde s^m_{i,h}\ \text{(偏置,12.44)}\]
Marquardt 敏感度的递推与标准敏感度(11.35)相同,只是最后一层初值不同:
\[\tilde s^M_{i,h}=\frac{\partial e_{k,q}}{\partial n^M_{i,q}}=\frac{\partial(t_{k,q}-a^M_{k,q})}{\partial n^M_{i,q}}=-\frac{\partial a^M_{k,q}}{\partial n^M_{i,q}}=\begin{cases}-\dot f^M(n^M_{i,q})&i=k\\0&i\ne k\end{cases}\quad(12.45)\]
所以输入 \(\mathbf{p}_q\)、算出输出 \(\mathbf{a}^M_q\) 后,初始化
\[\tilde{\mathbf{S}}^M_q=-\dot{\mathbf{F}}^M(\mathbf{n}^M_q)\quad(12.46)\]
(一个 \(S^M\times S^M\) 对角阵,没有标准反传中的因子 2 和误差。)其每列经(11.35)反传得到 Jacobian 的一行;也可各列一起反传:
\[\tilde{\mathbf{S}}^m_q=\dot{\mathbf{F}}^m(\mathbf{n}^m_q)(\mathbf{W}^{m+1})^T\tilde{\mathbf{S}}^{m+1}_q\quad(12.47)\]
各输入的矩阵横向拼接得每层总 Marquardt 敏感度矩阵:
\[\tilde{\mathbf{S}}^m=[\tilde{\mathbf{S}}^m_1\,|\,\tilde{\mathbf{S}}^m_2\,|\,\dots\,|\,\tilde{\mathbf{S}}^m_Q]\quad(12.48)\]
注意每个输入要反传 \(S^M\) 个敏感度向量,因为要计算每个误差的导数而非误差平方和的导数:每个输入有 \(S^M\) 个误差,每个误差对应 Jacobian 的一行。之后用(12.43)(12.44)求 Jacobian(数值例见 P12.5)。

LMBP 迭代步骤

  1. 把所有输入送入网络,计算输出(11.41–11.42)与误差 \(\mathbf{e}_q=\mathbf{t}_q-\mathbf{a}^M_q\),按(12.34)求总误差平方和 \(F(\mathbf{x})\);
  2. 计算 Jacobian(12.37):用(12.46)初始化、(12.47)递推敏感度,(12.48)拼接,再由(12.43)(12.44)得各元;
  3. 解(12.32)得 \(\Delta\mathbf{x}_k\);
  4. 用 \(\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\) 得

\[\mathbf{x}_{k+1}=[(1+\gamma)\mathbf{I}-(1-\gamma)\alpha\mathbf{A}]\mathbf{x}_k-\gamma\mathbf{x}_{k-1}-(1-\gamma)\alpha\mathbf{d}\]
定义 \(\tilde{\mathbf{x}}_k=[\mathbf{x}_{k-1};\mathbf{x}_k]\),则 \(\tilde{\mathbf{x}}_{k+1}=\mathbf{W}\tilde{\mathbf{x}}_k+\mathbf{v}\),
\[\mathbf{W}=\begin{bmatrix}\mathbf{0}&\mathbf{I}\\-\gamma\mathbf{I}&\mathbf{T}\end{bmatrix},\qquad \mathbf{T}=(1+\gamma)\mathbf{I}-(1-\gamma)\alpha\mathbf{A}\]
稳定当且仅当 \(\mathbf{W}\) 的特征值模小于 1。设 \(\mathbf{W}\mathbf{z}^w=\lambda^w\mathbf{z}^w\),\(\mathbf{z}^w=[\mathbf{z}^w_1;\mathbf{z}^w_2]\),得 \(\mathbf{z}^w_2=\lambda^w\mathbf{z}^w_1\),\(-\gamma\mathbf{z}^w_1+\mathbf{T}\mathbf{z}^w_2=\lambda^w\mathbf{z}^w_2\)。取 \(\mathbf{z}^w_2\) 为 \(\mathbf{T}\) 的特征向量(特征值 \(\lambda^t\)),代入得 \([(\lambda^w)^2-\lambda^t\lambda^w+\gamma]\mathbf{z}^w_2=0\)。于是 \(\mathbf{T}\) 的每个特征值 \(\lambda^t\) 对应 \(\mathbf{W}\) 的两个特征值
\[\lambda^w=\frac{\lambda^t\pm\sqrt{(\lambda^t)^2-4\gamma}}{2}\]
若为复数(\(\lambda^t\) 为实数时),\(|\lambda^w|=\sqrt{\frac{(\lambda^t)^2}{4}+\frac{4\gamma-(\lambda^t)^2}{4}}=\sqrt\gamma<1\)。复数条件 \((\lambda^t)^2<4\gamma\),即 \(|\lambda^t|<2\sqrt\gamma\)。\(\mathbf{T}\) 与 \(\mathbf{A}\) 同特征向量,\(\lambda^t_i=(1+\gamma)-(1-\gamma)\alpha\lambda_i\)(实数,因 \(\mathbf{A}\) 对称)。需 \(|(1+\gamma)-(1-\gamma)\alpha\lambda_i|<2\sqrt\gamma\)。\(\gamma=1\) 时两边都等于 2;在 \(\gamma=1\) 处右边对 \(\gamma\) 的斜率为 1,左边斜率为 \(1+\alpha\lambda_i>1\)(强极小时 \(\lambda_i>0\),\(\alpha>0\)),所以 \(\gamma\) 足够接近 1 时不等式必成立。结论:对二次函数,无论学习率多大,总存在使带动量最速下降稳定的动量系数;\(\gamma\) 足够接近 1 时 \(\mathbf{W}\) 的特征值模为 \(\sqrt\gamma\)。特征值模越小收敛越快,趋近 1 时收敛变慢([Brog91])。示例:\(F=x_1^2+25x_2^2\),\(\alpha=0.041\)(无动量时不稳定,图 9.3),加动量 \(\gamma=0.2\) 后轨迹稳定(图 P12.3)。

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 章小结

本章要点

  1. 多层网络误差曲面非二次:曲率变化大(平坦区与狭窄山谷并存)、多局部极小、对称性导致原点为鞍点。初值应取小随机数,并多次尝试不同初值。
  2. SDBP 慢的根源:单一学习率无法同时适应平坦区和高曲率区;误差曲线呈“长时间停滞+短时间骤降”。
  3. 动量(MOBP)是一阶低通滤波,平滑振荡、允许更大学习率;对二次函数可证明总有动量系数使之稳定。
  4. 可变学习率(VLBP):按误差变化自适应调整学习率并暂停动量;delta-bar-delta、SuperSAB、QuickProp 为相关变体;启发式方法参数多且敏感。
  5. CGBP:线搜索 = 区间定位(步长倍增)+ 黄金分割缩减;每 \(n\) 步重置为负梯度。
  6. 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),假设目标由

\[\mathbf{t}_q=\mathbf{g}(\mathbf{p}_q)+\boldsymbol\varepsilon_q\quad(13.2)\]
生成,\(\mathbf{g}(\cdot)\) 为未知函数,\(\boldsymbol\varepsilon_q\) 为独立、零均值随机噪声。训练目标:逼近 \(\mathbf{g}(\cdot)\) 而忽略噪声。标准性能指标为训练集误差平方和
\[F(\mathbf{x})=E_D=\sum_{q=1}^Q(\mathbf{t}_q-\mathbf{a}_q)^T(\mathbf{t}_q-\mathbf{a}_q)\quad(13.3)\]
(记作 \(E_D\),因为后面要加另一项。)

图 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] 提出:他加的惩罚项涉及逼近函数的导数,迫使结果平滑。在一定条件下正则项可写为权值平方和:

\[F(\mathbf{x})=\beta E_D+\alpha E_W=\beta\sum_{q=1}^Q(\mathbf{t}_q-\mathbf{a}_q)^T(\mathbf{t}_q-\mathbf{a}_q)+\alpha\sum_{i=1}^n x_i^2\quad(13.4)\]
比值 \(\alpha/\beta\) 控制网络解的有效复杂度:越大,网络响应越平滑。(本可用一个参数,但后文需要两个。)

为何惩罚权值平方和、它如何类似于减少神经元:回顾图 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\),

\[P(A|B)=\frac{P(B|A)P(A)}{P(B)}\quad(13.5)\]
贝叶斯法则(Bayes' rule)。\(P(A)\):先验概率(prior),知道 \(B\) 结果前对 \(A\) 的认识;\(P(A|B)\):后验概率(posterior),得知 \(B\) 后对 \(A\) 的认识;\(P(B|A)\):给定 \(A\) 时 \(B\) 的条件概率,通常由描述 \(A\) 与 \(B\) 关系的系统知识给出;\(P(B)\):\(B\) 的边际概率,起归一化作用。

医学检测例:人群患病率 1%;检测对患者 80% 能检出(阳性);对健康人 10% 会误报阳性。问:检测阳性者真正患病的概率?多数人(包括许多医生)会猜很高,实则不然。令 \(A\)=患病、\(B\)=阳性,\(P(A)=0.01\),\(P(B|A)=0.8\)。

\[P(B)=P(B|A)P(A)+P(B|\bar A)P(\bar A)\quad(13.6)\]
(用到条件概率定义 \(P(B|\bar A)=P(B\cap\bar A)/P(\bar A)\),即 \(P(B\cap\bar A)=P(B|\bar A)P(\bar A)\)(13.7)。)
\[P(B)=0.8\times0.01+0.1\times0.99=0.107\ (13.8),\qquad P(A|B)=\frac{0.8\times0.01}{0.107}=0.0748\ (13.9)\]
阳性者只有 7.5% 的概率真正患病。关键在于先验 \(P(A)\):先验患病几率只有 1/100;若先验高得多,后验也会显著增大。使用贝叶斯法则时,先验必须准确反映先验知识(另见 P13.2 及其演示)。

贝叶斯方法的优点:可通过选择先验概率注入先验知识。对网络训练,先验假设是被逼近的函数平滑,即权值不能太大(图 13.5);诀窍是把这一知识转化为合适的先验。

13.6 贝叶斯正则化(Bayesian Regularization)(PDF p.479–486)

集中讨论 David MacKay [MacK92] 的方法:把网络训练置于贝叶斯统计框架中(对训练的许多方面都有用,不仅是选正则化参数)。分两个层次。

第一层(Level I)贝叶斯框架

假设网络权值是随机变量,选择使给定数据下权值条件概率最大的权值:

\[P(\mathbf{x}|D,\alpha,\beta,M)=\frac{P(D|\mathbf{x},\beta,M)\,P(\mathbf{x}|\alpha,M)}{P(D|\alpha,\beta,M)}\quad(13.10)\]
\(\mathbf{x}\):全部权值和偏置;\(D\):训练数据集;\(\alpha,\beta\):密度函数的参数;\(M\):所选模型(网络结构:几层、每层几个神经元)。

似然函数(likelihood function) \(P(D|\mathbf{x},\beta,M)\):给定权值、参数 \(\beta\) 与模型时数据的概率密度。若(13.2)中噪声独立且服从高斯分布:

\[P(D|\mathbf{x},\beta,M)=\frac{1}{Z_D(\beta)}\exp(-\beta E_D)\quad(13.11)\]
\(\beta=1/(2\sigma^2_\varepsilon)\),\(\sigma^2_\varepsilon\) 为 \(\boldsymbol\varepsilon_q\) 每个元素的方差,\(E_D\) 为(13.3)的平方误差,
\[Z_D(\beta)=(2\pi\sigma^2_\varepsilon)^{N/2}=(\pi/\beta)^{N/2}\quad(13.12)\]
\(N=Q\times S^M\)(同 12.34)。它描述给定一组权值时该数据集出现的可能性。极大似然法选权值使似然最大,在高斯情形下等价于最小化 \(E_D\)。所以标准的平方误差指标可在“训练集噪声为高斯”的假设下从统计上推出,通常的权值选择就是极大似然估计。

先验密度(prior density) \(P(\mathbf{x}|\alpha,M)\):收集数据前对权值的认识。若假设权值是以零为中心的小值,可取零均值高斯先验:

\[P(\mathbf{x}|\alpha,M)=\frac{1}{Z_W(\alpha)}\exp(-\alpha E_W)\quad(13.13)\]
\(\alpha=1/(2\sigma^2_w)\),\(\sigma^2_w\) 为每个权值的方差,\(E_W\) 为(13.4)中的权值平方和,
\[Z_W(\alpha)=(2\pi\sigma^2_w)^{n/2}=(\pi/\alpha)^{n/2}\quad(13.14)\]
\(n\) 为网络权值与偏置总数(同 12.35)。

证据(evidence) \(P(D|\alpha,\beta,M)\):归一化项,与 \(\mathbf{x}\) 无关;求最大后验权值时无需关心(但后面估计 \(\alpha,\beta\) 时很重要)。

在上述高斯假设下,后验密度为

\[P(\mathbf{x}|D,\alpha,\beta,M)=\frac{\frac{1}{Z_W(\alpha)}\frac{1}{Z_D(\beta)}\exp(-(\beta E_D+\alpha E_W))}{\text{归一化因子}}=\frac{1}{Z_F(\alpha,\beta)}\exp(-F(\mathbf{x}))\quad(13.15)\]
\(Z_F(\alpha,\beta)\) 是 \(\alpha,\beta\) 的函数(与 \(\mathbf{x}\) 无关),\(F(\mathbf{x})\) 即(13.4)的正则化指标。最大化后验密度等价于最小化正则化指标 \(F(\mathbf{x})=\beta E_D+\alpha E_W\)。即:正则化指标可在“训练集噪声高斯 + 权值高斯先验”的假设下由贝叶斯统计推出。最大化后验的权值记为 \(\mathbf{x}^{MP}\)(most probable,最大后验/MAP),区别于最大化似然的 \(\mathbf{x}^{ML}\)。

参数的物理意义:\(\beta\) 与测量噪声方差 \(\sigma^2_\varepsilon\) 成反比——噪声大则 \(\beta\) 小,正则化比 \(\alpha/\beta\) 大,迫使权值小、网络函数平滑(图 13.6):噪声越大,越要平滑以平均掉噪声影响。\(\alpha\) 与权值先验方差成反比——先验方差大表示对权值很不确定、权值可能很大,\(\alpha\) 小,\(\alpha/\beta\) 小,允许权值大、网络函数变化更多。

第二层(Level II)贝叶斯框架

要从数据估计 \(\alpha,\beta\),需要

\[P(\alpha,\beta|D,M)=\frac{P(D|\alpha,\beta,M)P(\alpha,\beta|M)}{P(D|M)}\quad(13.16)\]
形式同(13.10)。若对 \(\alpha,\beta\) 取均匀(常数)先验 \(P(\alpha,\beta|M)\),最大化后验即最大化似然 \(P(D|\alpha,\beta,M)\)——而它正是(13.10)中的归一化因子(证据)。由(13.10)解出证据:
\[P(D|\alpha,\beta,M)=\frac{P(D|\mathbf{x},\beta,M)P(\mathbf{x}|\alpha,M)}{P(\mathbf{x}|D,\alpha,\beta,M)}=\frac{\frac{1}{Z_D(\beta)}e^{-\beta E_D}\frac{1}{Z_W(\alpha)}e^{-\alpha E_W}}{\frac{1}{Z_F(\alpha,\beta)}e^{-F(\mathbf{x})}}=\frac{Z_F(\alpha,\beta)}{Z_D(\beta)Z_W(\alpha)}\quad(13.17)\]
\(Z_D,Z_W\) 已知,只需估计 \(Z_F\)。用泰勒展开(拉普拉斯近似的思想):极小点附近目标函数呈二次形,在极小点 \(\mathbf{x}^{MP}\)(梯度为零)处二阶展开
\[F(\mathbf{x})\approx F(\mathbf{x}^{MP})+\tfrac12(\mathbf{x}-\mathbf{x}^{MP})^T\mathbf{H}^{MP}(\mathbf{x}-\mathbf{x}^{MP})\quad(13.18)\]
\(\mathbf{H}=\beta\nabla^2E_D+\alpha\nabla^2E_W\) 为 \(F\) 的 Hessian,\(\mathbf{H}^{MP}\) 为其在 \(\mathbf{x}^{MP}\) 处的值。代入(13.15):
\[P(\mathbf{x}|D,\alpha,\beta,M)\approx\frac{1}{Z_F}\exp\big(-F(\mathbf{x}^{MP})\big)\exp\big(-\tfrac12(\mathbf{x}-\mathbf{x}^{MP})^T\mathbf{H}^{MP}(\mathbf{x}-\mathbf{x}^{MP})\big)\quad(13.19–13.20)\]
与高斯密度标准形
\[P(\mathbf{x})=\frac{1}{\sqrt{(2\pi)^n|(\mathbf{H}^{MP})^{-1}|}}\exp\big(-\tfrac12(\mathbf{x}-\mathbf{x}^{MP})^T\mathbf{H}^{MP}(\mathbf{x}-\mathbf{x}^{MP})\big)\quad(13.21)\]
对比得
\[Z_F(\alpha,\beta)\approx(2\pi)^{n/2}\big(\det((\mathbf{H}^{MP})^{-1})\big)^{1/2}\exp\big(-F(\mathbf{x}^{MP})\big)\quad(13.22)\]
代入(13.17),对 \(\log\) 证据分别关于 \(\alpha,\beta\) 求导并令为零(推导见 P13.3),得极小点处最优值:
\[\boxed{\alpha^{MP}=\frac{\gamma}{2E_W(\mathbf{x}^{MP})},\qquad \beta^{MP}=\frac{N-\gamma}{2E_D(\mathbf{x}^{MP})}}\quad(13.23)\]
\[\gamma=n-2\alpha^{MP}\,\mathrm{tr}\big((\mathbf{H}^{MP})^{-1}\big)\]
\(\gamma\) 称为有效参数个数(effective number of parameters),\(n\) 为网络参数总数。\(\gamma\) 衡量网络中有多少参数(权值和偏置)被有效用于降低误差函数,取值 \(0\) 到 \(n\)(详见 13-23 页的分析)。

贝叶斯正则化算法(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\)。

  1. 用 LM 算法对目标函数 \(F(\mathbf{x})=\beta E_D+\alpha E_W\) 走一步。
  2. 用 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)。
  3. 计算新的正则化参数估计 \(\alpha=\gamma/(2E_W(\mathbf{x}))\),\(\beta=(N-\gamma)/(2E_D(\mathbf{x}))\)。
  4. 重复 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)的均方误差是二次函数:

\[E_D=c+\mathbf{d}^T\mathbf{x}+\tfrac12\mathbf{x}^T\mathbf{A}\mathbf{x}\quad(13.24)\]
\(\mathbf{A}\) 为 Hessian,梯度 \(\nabla E_D=\mathbf{A}\mathbf{x}+\mathbf{d}\)(13.25)。最速下降:
\[\mathbf{x}_{k+1}=\mathbf{x}_k-\alpha\mathbf{g}_k=\mathbf{x}_k-\alpha(\mathbf{A}\mathbf{x}_k+\mathbf{d})\quad(13.26)\]
(注意此处 \(\alpha\) 是学习率,与正则化参数同名。)二次函数的极小点
\[\mathbf{x}^{ML}=-\mathbf{A}^{-1}\mathbf{d}\quad(13.27)\]
上标 ML 表示它也最大化似然函数(13.11)。改写:\(\mathbf{x}_{k+1}=\mathbf{x}_k-\alpha\mathbf{A}(\mathbf{x}_k+\mathbf{A}^{-1}\mathbf{d})=\mathbf{x}_k-\alpha\mathbf{A}(\mathbf{x}_k-\mathbf{x}^{ML})\)(13.28),即
\[\mathbf{x}_{k+1}=[\mathbf{I}-\alpha\mathbf{A}]\mathbf{x}_k+\alpha\mathbf{A}\mathbf{x}^{ML}=\mathbf{M}\mathbf{x}_k+[\mathbf{I}-\mathbf{M}]\mathbf{x}^{ML},\qquad \mathbf{M}=\mathbf{I}-\alpha\mathbf{A}\quad(13.29)\]
从初值 \(\mathbf{x}_0\)(通常为零附近的随机小值)递推:\(\mathbf{x}_1=\mathbf{M}\mathbf{x}_0+[\mathbf{I}-\mathbf{M}]\mathbf{x}^{ML}\)(13.30);\(\mathbf{x}_2=\mathbf{M}^2\mathbf{x}_0+\mathbf{M}[\mathbf{I}-\mathbf{M}]\mathbf{x}^{ML}+[\mathbf{I}-\mathbf{M}]\mathbf{x}^{ML}=\mathbf{M}^2\mathbf{x}_0+[\mathbf{I}-\mathbf{M}^2]\mathbf{x}^{ML}\)(13.31);一般地
\[\boxed{\mathbf{x}_k=\mathbf{M}^k\mathbf{x}_0+[\mathbf{I}-\mathbf{M}^k]\mathbf{x}^{ML}}\quad(13.32)\]
此关键结果说明 \(k\) 次迭代后从初值向极大似然权值前进了多远。

正则化分析

正则化指标 \(F(\mathbf{x})=\beta E_D+\alpha E_W\)(13.33);因极小点位置相同,改用等价的单参数形式

\[F^*(\mathbf{x})=\frac{F(\mathbf{x})}{\beta}=E_D+\frac{\alpha}{\beta}E_W=E_D+\rho E_W\quad(13.34)\]
\[E_W=(\mathbf{x}-\mathbf{x}_0)^T(\mathbf{x}-\mathbf{x}_0)\quad(13.35)\]
(标称值 \(\mathbf{x}_0\) 通常取零向量。)极小点即最可能值 \(\mathbf{x}^{MP}\),令梯度为零:\(\nabla F^*=\nabla E_D+\rho\nabla E_W=\mathbf{0}\)(13.36)。\(\nabla E_W=2(\mathbf{x}-\mathbf{x}_0)\)(13.37),\(\nabla E_D=\mathbf{A}\mathbf{x}+\mathbf{d}=\mathbf{A}(\mathbf{x}-\mathbf{x}^{ML})\)(13.38),于是
\[\mathbf{A}(\mathbf{x}^{MP}-\mathbf{x}^{ML})+2\rho(\mathbf{x}^{MP}-\mathbf{x}_0)=\mathbf{0}\quad(13.39)\]
把 \(\mathbf{x}^{MP}-\mathbf{x}_0\) 写成 \((\mathbf{x}^{MP}-\mathbf{x}^{ML})+(\mathbf{x}^{ML}-\mathbf{x}_0)\)(13.40),合并得
\[(\mathbf{A}+2\rho\mathbf{I})(\mathbf{x}^{MP}-\mathbf{x}^{ML})=2\rho(\mathbf{x}_0-\mathbf{x}^{ML})\quad(13.41)\]
\[\mathbf{x}^{MP}-\mathbf{x}^{ML}=2\rho(\mathbf{A}+2\rho\mathbf{I})^{-1}(\mathbf{x}_0-\mathbf{x}^{ML})=\mathbf{M}_\rho(\mathbf{x}_0-\mathbf{x}^{ML}),\qquad \mathbf{M}_\rho=2\rho(\mathbf{A}+2\rho\mathbf{I})^{-1}\quad(13.42)\]
\[\boxed{\mathbf{x}^{MP}=\mathbf{M}_\rho\mathbf{x}_0+[\mathbf{I}-\mathbf{M}_\rho]\mathbf{x}^{ML}}\quad(13.43)\]

二者的联系(图 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\),故

\[\mathrm{eig}(\mathbf{M}^k)=(1-\alpha\lambda_i)^k\quad(13.44)\]
同理 \(\mathbf{A}+2\rho\mathbf{I}\) 的特征值为 \(\lambda_i+2\rho\);逆矩阵特征向量不变、特征值取倒数,故
\[\mathrm{eig}(\mathbf{M}_\rho)=\frac{2\rho}{\lambda_i+2\rho}\quad(13.45)\]
相等条件 \(\frac{2\rho}{\lambda_i+2\rho}=(1-\alpha\lambda_i)^k\)(13.46),取对数 \(-\log(1+\frac{\lambda_i}{2\rho})=k\log(1-\alpha\lambda_i)\)(13.47)。两边在 \(\lambda_i=0\) 处相等,若导数也相等则恒等。对 \(\lambda_i\) 求导:
\[-\frac{1}{1+\frac{\lambda_i}{2\rho}}\cdot\frac{1}{2\rho}=-\frac{k\alpha}{1-\alpha\lambda_i}\quad(13.48)\quad\Rightarrow\quad \alpha k=\frac{1}{2\rho}\cdot\frac{1-\alpha\lambda_i}{1+\lambda_i/(2\rho)}\quad(13.49)\]
若 \(\alpha\lambda_i\) 很小(慢而稳定的学习)且 \(\lambda_i/(2\rho)\) 很小,则近似
\[\boxed{\alpha k\cong\frac{1}{2\rho}}\quad(13.50)\]
提前停止近似等价于正则化:增加迭代次数 \(k\) 近似于减小正则化参数 \(\rho\)。这符合直觉——增加迭代或减小正则化都可能导致过拟合。

例:有效参数个数的解释(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\);

\[\mathbf{A}=2\mathbf{R}=2\Big(0.75\begin{bmatrix}1\\1\end{bmatrix}[1\;1]+0.25\begin{bmatrix}-1\\1\end{bmatrix}[-1\;1]\Big)=\begin{bmatrix}2&1\\1&2\end{bmatrix}\]
\(E_D=c+\mathbf{x}^T\mathbf{d}+\tfrac12\mathbf{x}^T\mathbf{A}\mathbf{x}\),极小点 \(\mathbf{x}^{ML}=-\mathbf{A}^{-1}\mathbf{d}=\mathbf{R}^{-1}\mathbf{h}=\begin{bmatrix}1&0.5\\0.5&1\end{bmatrix}^{-1}\begin{bmatrix}1\\0.5\end{bmatrix}=\begin{bmatrix}1\\0\end{bmatrix}\)。 Hessian 特征系统:\(|\mathbf{A}-\lambda\mathbf{I}|=\lambda^2-4\lambda+3=(\lambda-1)(\lambda-3)\),\(\lambda_1=1,\ \mathbf{v}_1=[1,-1]^T\);\(\lambda_2=3,\ \mathbf{v}_2=[1,1]^T\)。\(E_D\) 等高线见图 13.10。 正则化指标(13.34)的 Hessian:\(\nabla^2F^*=\nabla^2E_D+\rho\nabla^2E_W=\mathbf{A}+2\rho\mathbf{I}=\begin{bmatrix}2+2\rho&1\\1&2+2\rho\end{bmatrix}\)。图 13.11:\(\rho=0,1,\infty\) 时 \(F^*\) 的等高线。图 13.12:\(\rho\) 从 \(\infty\) 变到 0 时 \(\mathbf{x}^{MP}\) 的移动曲线(从 \(\mathbf{x}_0=\mathbf{0}\) 到 \(\mathbf{x}^{ML}\))。图 13.13:从很小的权值出发最小化 \(E_D\) 的最速下降轨迹——提前停止的结果落在这条曲线上,它与图 13.12 的正则化曲线非常接近:迭代次数很少相当于 \(\rho\) 很大,迭代增加相当于 \(\rho\) 减小。演示 nnd17esr。

与 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)

\[\gamma=n-2\alpha^{MP}\mathrm{tr}\{(\mathbf{H}^{MP})^{-1}\}\quad(13.51)\]

用 \(\nabla^2E_D(\mathbf{x})\) 的特征值 \(\lambda_i\) 表达。Hessian

\[\mathbf{H}(\mathbf{x})=\nabla^2F(\mathbf{x})=\beta\nabla^2E_D+\alpha\nabla^2E_W=\beta\nabla^2E_D+2\alpha\mathbf{I}\quad(13.52)\]
其特征值为 \(\beta\lambda_i+2\alpha\)。利用逆矩阵特征值为倒数、迹等于特征值之和:
\[\mathrm{tr}\{\mathbf{H}^{-1}\}=\sum_{i=1}^n\frac{1}{\beta\lambda_i+2\alpha}\quad(13.53)\]
\[\gamma=n-2\alpha\sum_{i=1}^n\frac{1}{\beta\lambda_i+2\alpha}=\sum_{i=1}^n\frac{\beta\lambda_i}{\beta\lambda_i+2\alpha}=\sum_{i=1}^n\gamma_i\quad(13.54–13.55)\]
\[\gamma_i=\frac{\beta\lambda_i}{\beta\lambda_i+2\alpha}\quad(13.56)\]
\(0\le\gamma_i\le1\),故 \(0\le\gamma\le n\)。若 \(\nabla^2E_D\) 的特征值都很大,有效参数个数等于总参数个数;若部分特征值很小,有效参数个数等于大特征值的个数(如上例)。大特征值意味着大曲率,性能指标沿这些特征向量变化快,每个大特征值对应的特征向量都是优化性能的“有效方向”。(注:这与岭回归的有效自由度 \(\mathrm{df}=\sum d_j^2/(d_j^2+\lambda)\) 完全同构。)

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。联合似然

\[P(D|x)=\prod_{i=1}^Qf(t_i|x)=\begin{cases}1/x^Q,&x\ge\max(t_i)\\0,&x<\max(t_i)\end{cases}\]
(图 P13.2)在 \(x=\max(t_i)\) 处最大,故 \(x^{ML}=\max(t_i)\)——样本最大值,作为上界估计是合理的(注意它是有偏的,总不超过真值)。

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)\);独立则

\[P(D|x)=\prod_i f(t_i|x)=\frac{1}{(2\pi)^{Q/2}\sigma^Q}\exp\Big(-\frac{\sum_i(t_i-x)^2}{2\sigma^2}\Big)=\frac{1}{Z(\beta)}\exp(-\beta E_D)\]
\(\beta=1/(2\sigma^2)\),\(E_D=\sum_i(t_i-x)^2=\sum_ie_i^2\),\(Z(\beta)=(\pi/\beta)^{Q/2}\)。最大化似然即最小化 \(E_D\):\(\frac{dE_D}{dx}=-2(\sum_it_i-Qx)=0\),
\[x^{ML}=\frac1Q\sum_{i=1}^Qt_i\quad\text{(样本均值)}\]
(ii) 先验 \(x\) 为零均值高斯 \(f(x)=\frac{1}{\sqrt{2\pi}\sigma_x}\exp(-\frac{x^2}{2\sigma_x^2})=\frac{1}{Z_W(\alpha)}\exp(-\alpha E_W)\),\(\alpha=1/(2\sigma_x^2)\),\(Z_W=(\pi/\alpha)^{1/2}\),\(E_W=x^2\)。后验 \(\propto\exp(-(\beta E_D+\alpha E_W))\),最大化即最小化 \(\beta\sum_i(t_i-x)^2+\alpha x^2\):\(-2\beta(\sum_it_i-Qx)+2\alpha x=0\),
\[x^{MP}=\frac{\beta\sum_{i=1}^Qt_i}{\beta Q+\alpha}\]
当 \(\alpha\to0\)(先验方差 \(\sigma_x^2\to\infty\))时 \(x^{MP}\to x^{ML}\):先验不确定性大时依赖数据,得到极大似然估计。图 P13.3:\(\sigma_x^2=2,\ \sigma^2=1,\ Q=1,\ t_1=1\)(\(\beta=0.5,\ \alpha=0.25\),\(x^{MP}=0.5/0.75\approx0.667\),\(x^{ML}=1\)):测量方差小于先验方差,故 \(x^{MP}\) 更靠近 \(x^{ML}\) 而非先验峰值 0(这就是收缩估计 shrinkage)。演示 nnd13spn。

P13.3(推导 13.23)对(13.17)取对数,代入(13.12)(13.14)(13.22):

\[\log P(D|\alpha,\beta,M)=\log Z_F-\log Z_D(\beta)-\log Z_W(\alpha)=\frac n2\log2\pi-\frac12\log\det\mathbf{H}^{MP}-F(\mathbf{x}^{MP})-\frac N2\log\frac\pi\beta-\frac n2\log\frac\pi\alpha\]
\(\mathbf{H}=\beta\nabla^2E_D+\alpha\nabla^2E_W=\beta\mathbf{B}+2\alpha\mathbf{I}\),\(\mathbf{B}=\nabla^2E_D\)。若 \(b_i\) 为 \(\mathbf{B}\) 的特征值,则 \(\mathbf{H}\) 的特征值 \(h_i=\beta b_i+2\alpha\)。行列式等于特征值之积:
\[\frac{\partial}{\partial\alpha}\Big(\frac12\log\det\mathbf{H}\Big)=\frac{1}{2\det\mathbf{H}}\frac{\partial}{\partial\alpha}\prod_i(\beta b_i+2\alpha)=\sum_i\frac{1}{\beta b_i+2\alpha}=\mathrm{tr}(\mathbf{H}^{-1})\]
定义 \(\gamma=n-2\alpha\,\mathrm{tr}(\mathbf{H}^{-1})=\sum_i\frac{\beta b_i}{\beta b_i+2\alpha}\)。对 \(\beta\):
\[\frac{\partial}{\partial\beta}\Big(\frac12\log\det\mathbf{H}\Big)=\frac12\sum_i\frac{b_i}{\beta b_i+2\alpha}=\frac{\gamma}{2\beta}\]
(因 \(\partial(\beta b_i)/\partial\beta=b_i\)。)令导数为零:

  • 对 \(\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\):

\[\gamma=\frac{1}{1+2}+\frac{3}{3+2}=\frac13+\frac35=\frac{14}{15}\]
约用了两个参数中的一个。所用的“参数”不是 \(w_{1,1}\) 或 \(w_{1,2}\) 本身,而是二者的组合:由图 13.11,权值沿第二特征向量 \(\mathbf{v}_2=[1,1]^T\) 移动,即 \(w_{1,1},w_{1,2}\) 改变相同的量。\(\mathbf{v}_2\) 对应最大特征值,沿它移动平方误差下降最多。

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\):

\[F(\mathbf{x})=(\mathbf{t}-\mathbf{G}\mathbf{x})^T(\mathbf{t}-\mathbf{G}\mathbf{x})=\mathbf{t}^T\mathbf{t}-2\mathbf{x}^T\mathbf{G}^T\mathbf{t}+\mathbf{x}^T\mathbf{G}^T\mathbf{G}\mathbf{x}\]
\(\nabla F=-2\mathbf{G}^T\mathbf{t}+2\mathbf{G}^T\mathbf{G}\mathbf{x}=\mathbf{0}\),得最小二乘解(高斯噪声下即极大似然)
\[\mathbf{x}^{ML}=[\mathbf{G}^T\mathbf{G}]^{-1}\mathbf{G}^T\mathbf{t}\]
演示:真函数 \(t=p\),\(p\in\{-1,-0.5,0,0.5,1\}\),\(t_i=p_i+\varepsilon_i\),\(\varepsilon_i\sim U[-0.25,0.25]\)。MATLAB: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 章小结

本章要点

  1. 泛化 = 在新数据上表现与训练数据相当;过拟合导致插值误差,可通过控制复杂度防止;外推误差(无数据区域)无法防止,高维中难以察觉,不能靠检查各变量单独范围判断。
  2. 测试集只能在全部训练和模型选择完成后使用一次;典型划分 70/15/15。
  3. 提前停止:监控验证误差,取其最小处权值;宜用较慢的训练算法。
  4. 正则化 \(F=\beta E_D+\alpha E_W\):惩罚大权值使函数平滑;贝叶斯视角下 \(E_D\) 对应高斯噪声似然、\(E_W\) 对应零均值高斯先验,正则化解即最大后验(MAP)估计;\(\beta=1/(2\sigma_\varepsilon^2)\),\(\alpha=1/(2\sigma_w^2)\)。
  5. 第二层贝叶斯(证据最大化 + 拉普拉斯近似)给出 \(\alpha=\gamma/(2E_W)\)、\(\beta=(N-\gamma)/(2E_D)\);GNBR 用 LM 的 \(\mathbf{J}^T\mathbf{J}\) 近似 Hessian 交替更新权值与超参数,无需验证集。
  6. 有效参数个数 \(\gamma=\sum_i\beta\lambda_i/(\beta\lambda_i+2\alpha)\),只有大曲率方向被“使用”。
  7. 线性情形下提前停止与正则化近似等价:\(\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:编程比较提前停止与正则化。