精读笔记:Hagan, Demuth, Beale, De Jesús《Neural Network Design》(2nd ed.),负责 PDF 第 755–1012 页(第 19–27 章及附录)
说明:本块从第 19 章开头开始(第 18 章 Grossberg 网络在上一块)。原书文本由 PDF 抽取,公式被严重切碎,以下公式均按上下文与原书记号重组。原书记号约定:上标表示层号(\(\mathbf a^1\) 为第 1 层输出),\(\mathbf W^{2:1}\) 表示从第 2 层到第 1 层的权值矩阵,\(\mathbf W^{1:2}\) 表示从第 1 层到第 2 层的权值矩阵;\({}_i\mathbf w\) 表示矩阵第 \(i\) 行(写成列向量),\(\mathbf w_j\) 表示第 \(j\) 列;\(\varepsilon\) 是时间常数;\(\mathrm{hardlim}^+(n)=1\ (n>0),\ 0\ (n\le 0)\)。
第 19 章 自适应共振理论 Adaptive Resonance Theory(PDF p.755–804)
19.0 目标与背景(PDF p.755–757)
问题:稳定性/可塑性两难(stability/plasticity dilemma)。 第 16 章的竞争网络和第 18 章的 Grossberg 网络都不能保证形成稳定的聚类:输入不断到来时,权值矩阵不一定收敛。Grossberg([Gros76])证明:若输入模式数量不多,或输入形成的簇数相对于第 2 层神经元数不太多,学习最终会稳定;但对任意输入序列,标准竞争网络的学习不稳定。原因是网络的可塑性(plasticity)让新学习侵蚀旧学习。Grossberg 的提问是:系统如何既能接纳重要的新模式,又对无关模式保持稳定?生物系统做得很好,例如多年没见母亲、期间认识了很多新面孔,依然能一眼认出她。
ART 的核心创新:期望(expectation)。 Carpenter 与 Grossberg 提出自适应共振理论(ART)。每个输入模式到来时,与它最接近的原型向量(prototype,即“期望”)比较;如果匹配不够好,就另选一个原型(必要时启用新原型)。这样旧记忆不会被新学习冲掉。本章只详细讲 ART1([CaGr87a]),它只处理二值输入向量,但足以展示 ART 的全部关键机制。
基本结构(图 19.1)。 ART 是第 18 章 Grossberg 网络(比较图 18.13)的改造,新增三部分:
- 第 2 层到第 1 层的期望连接(L2→L1 expectation);
- 定向子系统(orienting subsystem);
- 增益控制(gain control)。
整体运行流程(直观描述)。
- L1→L2 连接是 instar(第 15 章),做聚类:输入乘以 \(\mathbf W^{1:2}\),第 2 层竞争,决出哪一行与输入最接近;训练后 \(\mathbf W^{1:2}\) 每一行是一个原型。
- ART 还在 L2→L1 的反馈连接上学习,这些连接是 outstar(第 15 章),做模式回忆:第 2 层某神经元被激活后,在第 1 层重现一个原型模式(期望)。
- 第 1 层比较期望与输入。若两者匹配差,定向子系统向第 2 层发出重置(reset):当前获胜神经元被禁用、期望被撤除,第 2 层在剩余神经元中重新竞争,新获胜者投射新的期望。这个过程反复进行,直到某个期望与输入足够匹配。
- 本章的讲法:先写每个子系统的微分方程,再求稳态响应,最后汇总成 ART1 算法。
19.1 第 1 层 Layer 1(PDF p.758–763)
功能。 比较输入模式与第 2 层送来的期望(ART1 中两者都是二值向量);不匹配则由定向子系统触发重置;匹配则把期望与输入合并成新的原型。
与 Grossberg 第 1 层的区别(图 19.2)。 ART1 第 1 层不做归一化,所以没有来自输入的 on-center/off-surround 连接;兴奋输入是“输入 + L2→L1 期望”,抑制输入是来自第 2 层的增益控制信号。
运行方程(19.1)–(19.3)(分流模型 shunting model):
- 兴奋输入 \(\mathbf p+\mathbf W^{2:1}\mathbf a^2\)。若第 2 层第 \(j\) 个神经元获胜(输出 1,其他为 0),则 \(\mathbf W^{2:1}\mathbf a^2=\mathbf w^{2:1}_j\)(\(\mathbf W^{2:1}\) 的第 \(j\) 列,由 outstar 规则训练),于是兴奋输入为 \(\mathbf p+\mathbf w^{2:1}_j\)(式 19.4–19.5)。\(\mathbf W^{2:1}\) 每一列是一个期望/原型。第 1 层用逻辑 AND 合并输入与期望。
- 抑制输入(增益控制)\([{}^-\mathbf W^1]\mathbf a^2\),其中 \({}^-\mathbf W^1\) 是全 1 矩阵(式 19.6),所以每个第 1 层神经元收到的抑制量等于第 2 层所有输出之和。由于第 2 层是赢者通吃,第 2 层活跃时该量为 1,不活跃时为 0。
稳态分析(19.7–19.21)。 单个神经元:
情形 1:第 2 层不活跃(所有 \(a^2_j=0\))。方程化为 \(\varepsilon\,dn^1_i/dt=-n^1_i+({}^+b^1-n^1_i)p_i\),令导数为零得
情形 2:第 2 层活跃,神经元 \(j\) 获胜(\(a^2_j=1\),其余为 0)。
增益控制为什么必要。 分子 \({}^+b^1(p_i+w^{2:1}_{i,j})-{}^-b^1\) 中的 \(-{}^-b^1\) 项来自增益控制(此时增益为 1)。若没有这一项,只要 \(p_i\) 或 \(w^{2:1}_{i,j}\) 任一为正,分子就为正,实现的是 OR 而不是 AND。后面定向子系统的设计依赖第 1 层做 AND,这一点至关重要。第 2 层不活跃时增益控制为 0,使第 1 层只对输入本身响应(此时没有期望)。
第 1 层稳态小结: 第 2 层不活跃 → \(\mathbf a^1=\mathbf p\);第 2 层神经元 \(j\) 活跃 → \(\mathbf a^1=\mathbf p\cap\mathbf w^{2:1}_j\)。
例题(19.22–19.30)。 参数 \(\varepsilon=0.1,\ {}^+b^1=1,\ {}^-b^1=1.5\);两个第 2 层神经元、二维输入:
19.2 第 2 层 Layer 2(PDF p.764–767)
功能。 与 Grossberg 网络第 2 层几乎相同,做对比增强(contrast enhancement);这里实现为赢者通吃(winner-take-all)竞争,只有输入最大的神经元输出非零。
主要区别:可重置积分器(resettable integrator)。 当重置信号 \(a^0\) 变为正时,所有正输出被清零,并在“很长时间”内保持抑制(直到出现足够好的匹配且权值完成更新)。Carpenter–Grossberg 原论文建议用门控偶极场(gated dipole field)实现,ART3 中又提出基于化学神经递质的生物模型;本书不关心具体生物实现。另一个小区别:ART1 第 2 层用两个传递函数——反馈连接用 \(f^2\),层输出用 \(\mathbf a^2=\mathrm{hardlim}^+(\mathbf n^2)\),以得到二值输出。
运行方程(19.31):
例题(19.32–19.36)。 两神经元,\(\varepsilon=0.1\),\({}^+\mathbf b^2={}^-\mathbf b^2=[1,1]^T\),
第 2 层稳态小结(19.37):
19.3 定向子系统 Orienting Subsystem(PDF p.767–770)
功能。 判断 L2→L1 期望与输入是否足够匹配;不够则向第 2 层发重置信号,使先前获胜神经元被长期抑制,让别的神经元赢得竞争。
运行方程(19.38):
稳态(19.43–19.45)。 令导数为零:
为什么依赖 AND。 第 2 层活跃时 \(\mathbf a^1=\mathbf p\cap\mathbf w^{2:1}_j\),所以 \(\|\mathbf p\|^2\ge\|\mathbf a^1\|^2\),等号成立当且仅当期望在 \(\mathbf p\) 为 1 的位置上都为 1。于是比值 \(\|\mathbf a^1\|^2/\|\mathbf p\|^2\) 衡量“输入中有多少比例的 1 被期望确认”,失配足够大时重置。
例题(19.46–19.48)。 \(\varepsilon=0.1\),\(\alpha=3\),\(\beta=4\)(\(\rho=0.75\)),\(\mathbf p=[1,1]^T\),\(\mathbf a^1=[1,0]^T\): \(0.1\,dn^0/dt=-n^0+(1-n^0)\cdot3\cdot2-(n^0+1)\cdot4\cdot1\),即 \(dn^0/dt=-110n^0+20\),\(n^0\) 收敛到正值 \(20/110\),发出重置(图 19.7)。由于 \(\rho=0.75\) 且 \(\mathbf p\) 只有两个元素,只要 \(\mathbf a^1\ne\mathbf p\) 就会重置;若 \(\rho=0.25\),则因 \(\|\mathbf a^1\|^2/\|\mathbf p\|^2=1/2>0.25\) 不会重置。
稳态小结(19.49): \(a^0=1\) 若 \(\|\mathbf a^1\|^2/\|\mathbf p\|^2<\rho\),否则 \(a^0=0\)。演示 nnd16os。
19.4 L1→L2 学习律(PDF p.770–774)
ART1 有两条学习律:L1→L2 用 instar 类学习,学会识别原型;L2→L1 用 outstar 学习,学会回忆原型。两者同时更新:只有当定向子系统判定输入与期望匹配充分时,\(\mathbf W^{1:2}\) 与 \(\mathbf W^{2:1}\) 才一起调整。这种“先匹配、再适应”的过程称为共振(resonance),ART 由此得名。
子集/超集两难(subset/superset dilemma)。 Grossberg 网络在第 1 层归一化输入,因此所有原型长度相同;ART1 第 1 层不归一化,当一个原型是另一个的子集时会出问题。例:
学习律(19.56–19.57):
快速学习(fast learning)下的稳态(19.58–19.64)。 假设第 1、2 层输出在权值达到稳态前保持不变。单个元素:
- 若 \(a^1_j=1\):\(0=\zeta(1-w)-w(\|\mathbf a^1\|^2-1)\)(因二值向量 \(\sum_k a^1_k=\|\mathbf a^1\|^2\)),得 \(w^{1:2}_{i,j}=\dfrac{\zeta}{\zeta+\|\mathbf a^1\|^2-1}\)。
- 若 \(a^1_j=0\):\(0=-w\|\mathbf a^1\|^2\),得 \(w^{1:2}_{i,j}=0\)。
合起来:
19.5 L2→L1 学习律(PDF p.774–775)
L2→L1 连接 \(\mathbf W^{2:1}\) 用 outstar 规则训练,用途是回忆合适的原型(期望),在第 1 层与输入比较、合并;不匹配就重置。学习律是典型 outstar(19.65):
同步更新小结。 共振时,\(\mathbf W^{1:2}\) 第 \(j\) 行与 \(\mathbf W^{2:1}\) 第 \(j\) 列同时调整:快速学习下,列 \(j\) 设为 \(\mathbf a^1\),行 \(j\) 设为 \(\mathbf a^1\) 的归一化版本。
19.6 ART1 算法汇总(PDF p.775–777)
初始化。 \(\mathbf W^{2:1}\) 全部置 1。这样某个新神经元第一次获胜时一定共振:\(\mathbf a^1=\mathbf p\cap\mathbf w^{2:1}_j=\mathbf p\),\(\|\mathbf a^1\|^2/\|\mathbf p\|^2=1\ge\rho\)。未训练的列相当于白板,能与任何输入匹配。\(\mathbf W^{1:2}\) 的行应是 \(\mathbf W^{2:1}\) 列的归一化版本,故初始每个元素为 \(\dfrac{\zeta}{\zeta+S^1-1}\)。
算法(快速学习):
- 呈现输入。第 2 层初始不活跃,\(\mathbf a^1=\mathbf p\)(19.67)。
- 计算第 2 层输入 \(\mathbf W^{1:2}\mathbf a^1\)(19.68),激活输入最大的神经元(19.69);平局时取下标最小者。
- 计算期望(设神经元 \(j\) 获胜):\(\mathbf W^{2:1}\mathbf a^2=\mathbf w^{2:1}_j\)(19.70)。
- 第 2 层已活跃,更新第 1 层输出:\(\mathbf a^1=\mathbf p\cap\mathbf w^{2:1}_j\)(19.71)。
- 定向子系统判断匹配度:\(a^0=1\) 若 \(\|\mathbf a^1\|^2/\|\mathbf p\|^2<\rho\),否则 0(19.72)。
- 若 \(a^0=1\):令 \(a^2_j=0\),并抑制该神经元直到出现共振,返回第 1 步(在剩余神经元中重新竞争);若 \(a^0=0\),进入第 7 步。
- 共振。更新 \(\mathbf W^{1:2}\) 第 \(j\) 行:\({}_j\mathbf w^{1:2}=\dfrac{\zeta\mathbf a^1}{\zeta+\|\mathbf a^1\|^2-1}\)(19.73)。
- 更新 \(\mathbf W^{2:1}\) 第 \(j\) 列:\(\mathbf w^{2:1}_j=\mathbf a^1\)(19.74)。
- 移除输入,恢复所有被抑制的第 2 层神经元,用新输入回到第 1 步。
反复呈现输入,直到权值不再变化。Carpenter–Grossberg 证明 ART1 对任意输入集合总能形成稳定的聚类。演示 nnd16a1。
常见误区。 (1) 第 2 层竞争用的是“归一化原型与输入的内积”,而是否接受由定向子系统用 \(\|\mathbf a^1\|^2/\|\mathbf p\|^2\) 判断,两个标准不同;先选最近,再验证是否够近。(2) 原型在共振时只会“变少 1”(AND),所以一个类的原型会单调收缩,这正是稳定性的来源之一,但也可能使原先匹配的模式不再匹配(见 P19.7)。(3) 神经元数量 \(S^2\) 固定时,若所有神经元都被重置,原书算法没有说明如何处理;E19.6 要求设计“必要时新增神经元”的版本。
19.7 其他 ART 结构(PDF p.777)
- ART2([CaGr87b]):处理模拟或二值输入。结构与 ART1 类似,但第 1 层被若干子层取代,因为模拟向量可以任意接近;子层负责归一化、噪声抑制以及输入与期望的比较。
- ART3([CaGr90]):为重置机制引入更细致的生物模型(化学递质),应用不多。
- ARTMAP([CaGrRe91],1991):有监督网络。两个 ART 模块通过 inter-ART 联想记忆相连,一个接收输入,一个接收期望输出,网络学会在给定输入时预测正确输出。
- Fuzzy ARTMAP([CaGrMa92]):在 ARTMAP 中引入模糊逻辑,对噪声输入表现更好。
所有 ART 结构共有的模块:L1→L2 instar 做模式识别;L2→L1 outstar 做模式回忆;第 2 层做对比增强(竞争);第 1 层比较输入与期望;定向子系统在失配时重置。
19.8 结果汇总(PDF p.778–782)
汇总页重复了图 19.1、19.2、19.4、19.6 及第 1 层、第 2 层、定向子系统的方程与稳态结论,L1→L2 与 L2→L1 学习律及其快速学习稳态,以及 9 步 ART1 算法,内容与上文一致,不再重复。
19.9 例题精解 Solved Problems(PDF p.783–797)
- P19.1 第 1 层响应。 \(\varepsilon=0.01\),\({}^+b^1=2\),\({}^-b^1=3\),\(\mathbf W^{2:1}=\begin{bmatrix}0&1\\1&1\end{bmatrix}\),\(\mathbf p=[1,1]^T\),第 2 层神经元 1 活跃。方程化为 \(dn^1_1/dt=-300n^1_1-100\),\(dn^1_2/dt=-400n^1_2+100\);零初值解 \(n^1_1(t)=-\frac13(1-e^{-300t})\),\(n^1_2(t)=\frac14(1-e^{-400t})\)。于是 \(\mathbf a^1=[0,1]^T=\mathbf p\cap\mathbf w^{2:1}_1=[1,1]^T\cap[0,1]^T\)。注意参数满足 \(2<3<4\),即式 19.17。
- P19.2 第 2 层与偏置的作用。 同正文第 2 层例题,但 \({}^+\mathbf b^2={}^-\mathbf b^2=[2,2]^T\),\(\mathbf a^1=[1,0]^T\),神经元 2 获胜,\(\mathbf a^2=[0,1]^T\)。增大偏置的三个效果:响应更快;取值范围由 \([-1,1]\) 扩为 \([-2,2]\)(分流模型上限为兴奋偏置,下限为负的抑制偏置);神经元响应更靠近上下限。
- P19.3 定向子系统。 \(\varepsilon=0.1\),\(\alpha=0.5\),\(\beta=2\)(\(\rho=0.25\)),\({}^+b^0={}^-b^0=0.5\),\(\mathbf p=[1,1,1]^T\),\(\mathbf a^1=[1,0,1]^T\)。方程 \(0.1\,dn^0/dt=-n^0+(0.5-n^0)(0.5\cdot3)-(n^0+0.5)(2\cdot2)\),即 \(dn^0/dt=-65n^0-12.5\),解 \(n^0(t)=-0.1923(1-e^{-65t})\),为负,\(a^0=0\),不重置。稳态校验:\(\|\mathbf a^1\|^2/\|\mathbf p\|^2=2/3>0.25\)。
- P19.4 L2→L1 学习律等价于 outstar。 用差分近似导数 \(d\mathbf w/dt\approx[\mathbf w(t+\Delta t)-\mathbf w(t)]/\Delta t\),得 \(\mathbf w^{2:1}_j(t+\Delta t)=\mathbf w^{2:1}_j(t)+\Delta t\,a^2_j(t)[-\mathbf w^{2:1}_j(t)+\mathbf a^1(t)]\),正是第 15 章 outstar 规则(式 15.51),输入为 \(a^2_j\),输出为 \(\mathbf a^1\),学习率为 \(\Delta t\)。
- P19.5 完整 ART1 训练(\(\rho=0.4\))。 \(\mathbf p_1=[0,1,0]^T\),\(\mathbf p_2=[1,0,0]^T\),\(\mathbf p_3=[1,1,0]^T\),\(\zeta=2\),\(S^2=3\)。初值 \(\mathbf W^{2:1}\) 全 1,\(\mathbf W^{1:2}\) 全 0.5(\(=2/(2+3-1)\))。
- \(\mathbf p_1\):第 2 层输入全为 0.5,平局取神经元 1;期望 \([1,1,1]^T\),\(\mathbf a^1=[0,1,0]^T\),比值 \(1\ge0.4\),共振。\({}_1\mathbf w^{1:2}=2\mathbf a^1/(2+1-1)=[0,1,0]^T\),\(\mathbf w^{2:1}_1=[0,1,0]^T\)。
- \(\mathbf p_2\):第 2 层输入 \([0,0.5,0.5]^T\),神经元 2 获胜,共振;\({}_2\mathbf w^{1:2}=[1,0,0]^T\),\(\mathbf w^{2:1}_2=[1,0,0]^T\)。此时 \(\mathbf W^{2:1}=\begin{bmatrix}0&1&1\\1&0&1\\0&0&1\end{bmatrix}\)。
- \(\mathbf p_3\):第 2 层输入 \([1,1,1]^T\),平局取神经元 1;期望 \([0,1,0]^T\),\(\mathbf a^1=[0,1,0]^T\),比值 \(1/2\ge0.4\),共振;权值不变。
- 结果:\(\mathbf p_1,\mathbf p_3\) 归入类别 1,\(\mathbf p_2\) 归入类别 2,再呈现任一模式权值都不变,聚类稳定。
- P19.6 提高警戒(\(\rho=0.6\))。 前两步同上。呈现 \(\mathbf p_3\) 时:神经元 1 获胜但比值 \(1/2<0.6\),重置;神经元 2 获胜,\(\mathbf a^1=[1,0,0]^T\),比值 \(1/2<0.6\),再重置;神经元 3 获胜,期望 \([1,1,1]^T\),\(\mathbf a^1=[1,1,0]^T\),比值 1,共振。\({}_3\mathbf w^{1:2}=2[1,1,0]^T/(2+2-1)=[2/3,2/3,0]^T\),\(\mathbf w^{2:1}_3=[1,1,0]^T\)。最终 \(\mathbf W^{1:2}=\begin{bmatrix}0&1&0\\1&0&0\\2/3&2/3&0\end{bmatrix}\),\(\mathbf W^{2:1}=\begin{bmatrix}0&1&1\\1&0&1\\0&0&0\end{bmatrix}\)。 结论:\(\rho=0.4\) 时 2 类,\(\rho=0.6\) 时 3 类;警戒越接近 1,类别越多,聚类越细。
- P19.7 5×5 图形模式(取自 [CaGr87a])。 4 个 25 维二值模式(按行扫描,蓝格为 1),呈现顺序 \(\mathbf p_1,\mathbf p_2,\mathbf p_3,\mathbf p_1,\mathbf p_4\)(每个 epoch 中 \(\mathbf p_1\) 出现两次),\(\zeta=2\),\(\rho=0.6\),\(S^2=3\)。初值 \(\mathbf W^{2:1}\) 为 \(25\times3\) 全 1,\(\mathbf W^{1:2}\) 为 \(3\times25\),元素 \(2/(2+25-1)=0.0769\)。图 P19.4 用每行一次迭代展示输入和三列原型,星号标共振,对勾标重置。共两个 epoch、10 次迭代后权值稳定。要点:第 4 次迭代时 \(\mathbf p_1\) 与 \(\mathbf p_3\) 都由 \(\mathbf w^{2:1}_2\) 编码;第 5 次呈现 \(\mathbf p_4\) 时,\(\mathbf w^{2:1}_2\) 被修改为吸收 \(\mathbf p_4\),新原型与 \(\mathbf p_1\)、\(\mathbf p_3\) 不再充分匹配(第 6、8 次迭代可见),它们只能转去占用第一个 epoch 未用的神经元 3。思考题:警戒降到多小只需两个神经元?升到多大需要第四个神经元?
19.10 结语与延伸阅读(PDF p.798–800)
结语。 竞争学习及许多训练算法都面临稳定性/可塑性两难:对新输入敏感(可塑)就可能遗忘旧学习(不稳定)。ART 以“期望”机制兼顾两者。ART 网络的设计目标之一是生物可信,学习只用各神经元的局部信息(本书其他学习规则并非都如此),因而它既关乎理解大脑,也启发实用模式识别。ART 解决了“权值永不稳定”的学习不稳定,但还有另一种稳定性问题:实现短期记忆的微分方程本身是否稳定(例如第 2 层是带非线性反馈的微分方程组)。这引出第 20 章。
延伸阅读。 [CaGr87a] ART1 原始论文,证明对任意数量二值输入自组织、自稳定,关键是自顶向下匹配;[CaGr87b] ART2,模拟输入;[CaGr90] ART3,化学递质实现定向子系统;[CaGrMa92] Fuzzy ARTMAP;[CaGrRe91] ARTMAP 有监督学习;[Gros76] 连续时间竞争网络,源于视觉皮层发育生理;[Gros82] Grossberg 1968–1980 论文集。
19.11 习题概览(PDF p.801–804)
- E19.1:第 1 层,\(\varepsilon=0.02\),\(\mathbf W^{2:1}=\begin{bmatrix}0&1\\1&1\end{bmatrix}\),\(\mathbf p=[0,1]^T\),神经元 2 活跃,三组偏置 \(({}^+b^1,{}^-b^1)=(2,3),(4,5),(4,4)\);求响应并检验是否满足式 19.21,解释不一致(第三组 \({}^+b={}^-b\) 违反 19.17 的严格不等式);用 MATLAB
ode45仿真。 - E19.2:第 2 层,\(\mathbf W^{1:2}=\begin{bmatrix}2/3&2/3\\1&0\end{bmatrix}\),\(\mathbf a^1=[1,1]^T\)(两个内积分别为 4/3 与 1),三组偏置 \((2,2),(3,3),(3,0)\),检验是否满足式 19.37 并解释(抑制偏置为 0 时 \(n\) 不能为负)。
- E19.3:定向子系统,\(\varepsilon=0.1\),偏置为 2,\(\mathbf p=[1,1,1]^T\),\(\mathbf a^1=[0,0,1]^T\),分别取 \(\alpha=0.5,\beta=4\)(\(\rho=0.125\))与 \(\alpha=0.5,\beta=2\)(\(\rho=0.25\)),比值 1/3,前者不重置,后者也不重置但更接近阈值;仿真验证。
- E19.4:证明“快速学习”等价于第 15 章 instar/outstar 与第 16 章 Kohonen 规则中学习率取 1。
- E19.5:4 个 4 维向量,\(\zeta=2\),\(S^2=3\),分别用 \(\rho=0.3,0.6,0.9\) 训练至收敛。
- E19.6:设计在无充分匹配时新增第 2 层神经元的修改(给 \(\mathbf W^{1:2}\) 加行、给 \(\mathbf W^{2:1}\) 加列)。
- E19.7:编写带 E19.6 修改的 ART1 MATLAB 程序,重做 P19.7(\(\rho=0.9\))并比较。
- E19.8:用 ART1 对第 7 章数字 0–9 的点阵聚类,\(\zeta=2\),\(S^2=5\),\(\rho=0.3/0.6/0.9\),讨论警戒参数的影响。
本章要点
ART1 用“自下而上选原型 + 自上而下验证期望”的两阶段机制解决竞争学习的不稳定。第 1 层在第 2 层活跃时做 \(\mathbf p\cap\mathbf w^{2:1}_j\)(靠增益控制和 \({}^+b<{}^-b<2{}^+b\) 实现 AND);第 2 层赢者通吃并可被重置;定向子系统按 \(\|\mathbf a^1\|^2/\|\mathbf p\|^2<\rho\) 判失配。共振时 \(\mathbf W^{2:1}\) 列设为 \(\mathbf a^1\),\(\mathbf W^{1:2}\) 行设为 \(\zeta\mathbf a^1/(\zeta+\|\mathbf a^1\|^2-1)\),后者解决子集/超集两难。初始化 \(\mathbf W^{2:1}=\mathbf 1\) 使未用神经元成为可接收任何模式的白板。警戒参数 \(\rho\) 控制类别数量与粒度,ART1 对任意输入集合都能稳定聚类。
与量化交易的关联
ART1 本身只处理二值输入,在现代量化流程里几乎没有直接使用。可借鉴的是两种思想:(1) 带警戒阈值的在线聚类——市场状态(regime)识别中,新样本与最近的状态原型比较,相似度低于阈值就开新状态而不是硬塞进旧状态,可减少旧状态原型被近期数据“冲掉”;这与 leader clustering、DP-means 等在线聚类方法思路相近。(2) 稳定性/可塑性两难——即增量学习中的灾难性遗忘问题,在因子模型、交易信号模型的在线更新中同样存在,需要在适应新行情和保留历史规律之间权衡(如滚动窗口长度、遗忘因子的选择)。ART 的连续时间微分方程实现、生物可信性等内容与量化实务无关。
推荐习题
- P19.5、P19.6:手算完整 ART1 训练,理解平局规则、重置、警戒参数如何改变类别数。
- E19.4:把快速学习与学习率 1 对应起来,打通第 15/16 章与本章。
- E19.6、E19.7:实现可动态增长类别的 ART1,是理解在线聚类的好练习。
- E19.1(iv)、E19.2(iv):检验参数条件 19.17 等对稳态行为的必要性。
第 20 章 稳定性 Stability(PDF p.805–838)
20.0 目标(PDF p.805)
递归网络的“收敛”问题最早在第 3 章 Hopfield 网络中提出:输出可能收敛到稳定点、振荡,甚至发散。第 9、10 章讨论过最速下降和 LMS 的稳定性,第 18 章讨论过 Grossberg 连续时间递归网络的稳定性。本章更严格地定义稳定性,目标是判断一组非线性方程是否存在输出会收敛到的点或轨迹。工具是 Lyapunov 稳定性定理及其推广 LaSalle 不变性定理;后者将在第 21 章用来证明 Hopfield 网络的稳定性。
20.1 递归网络(PDF p.806–807)
递归网络带有从输出到输入的反馈(第 3 章的 Hamming、Hopfield 网络,第 18、19 章的 Grossberg 网络都是)。它们能识别和回忆时间模式与空间模式,比前馈网络更强,但行为复杂得多:前馈网络对固定输入的输出是常数,递归网络的输出是时间的函数,给定输入和初始输出后,可能收敛、振荡、发散或混沌。本章研究一般的非线性连续时间递归网络(图 20.1):
20.2 稳定性概念(PDF p.807–809)
直观例子:有摩擦的钢珠在重力场中。
- 钢珠在槽底:移开后来回摆动,最终因摩擦回到槽底——渐近稳定(asymptotically stable)。
- 钢珠在平面中央:移开后原地不动,不回中心但也不会跑远——Lyapunov 意义下稳定(stable in the sense of Lyapunov)。
- 钢珠在山顶:精确放置能停住,但任何扰动都会滚下——不稳定平衡点。
第 21 章设计 Hopfield 网络时,希望存储的原型模式是渐近稳定平衡点,且吸引域尽可能大。图 20.2:情形 A 是大而规整的吸引域,放在任一盆地中的高摩擦小球都会落到盆底;情形 B 的吸引区域复杂,从点 P 出发不清楚会被哪个稳定点捕获,也不一定落到最近的稳定点,吸引域大小也难以判断。
定义(讨论平衡点,即 (20.1) 导数为零的点;不失一般性取原点 \(\mathbf a=\mathbf 0\)):
- 定义 1(Lyapunov 稳定):若对任意 \(\varepsilon>0\),存在 \(\delta(\varepsilon)>0\),使 \(\|\mathbf a(0)\|<\delta\) 时,解满足 \(\|\mathbf a(t)\|<\varepsilon\) 对所有 \(t>0\) 成立,则原点稳定。含义:想让输出始终在原点 \(\varepsilon\) 范围内,总能找到起始半径 \(\delta\)。平面上的钢珠(零速度、有摩擦)属于此类;若无摩擦,任何初速度都会让位置趋于无穷(此时 \(\mathbf a\) 包括位置和速度)。
- 定义 2(渐近稳定):若存在 \(\delta>0\),使 \(\|\mathbf a(0)\|<\delta\) 时解满足 \(\mathbf a(t)\to\mathbf 0\)(\(t\to\infty\)),则原点渐近稳定。槽底钢珠在有摩擦时渐近稳定,无摩擦时只是 Lyapunov 稳定。
- 定义 3(正定 positive definite):标量函数 \(V(\mathbf a)\) 满足 \(V(\mathbf 0)=0\) 且 \(V(\mathbf a)>0\)(\(\mathbf a\ne\mathbf 0\))。
- 定义 4(半正定 positive semidefinite):\(V(\mathbf a)\ge0\) 对所有 \(\mathbf a\)。负定、半负定类似定义。
20.3 Lyapunov 稳定性定理(PDF p.809–810)
A. M. Lyapunov(俄国数学家)的主要工作发表于 1892 年,很久后才在俄国以外受重视。这里讲其“直接法(direct method)”。考虑自治系统(无外力、不显含时间)
定理 1(Lyapunov 稳定性定理):若能找到正定函数 \(V(\mathbf a)\),使 \(dV/dt\) 半负定,则原点稳定;若 \(dV/dt\) 负定,则原点渐近稳定。此时 \(V\) 称为该系统的 Lyapunov 函数。其中
直观解释。 \(V\) 是广义能量:能量持续下降,系统最终停在某个最小能量状态。Lyapunov 的贡献在于把能量概念推广到能量难以表达或没有物理意义的系统。
注意。 定理是充分条件:找到合适的 \(V\) 就能断定稳定;找不到时不能推出不稳定,什么也说明不了。
20.4 单摆例子(PDF p.810–816)
模型(图 20.3)。 由牛顿第二定律
状态变量形式。 取 \(a_1=\theta\),\(a_2=d\theta/dt\):
用能量作 Lyapunov 函数: 动能加势能
数值例子。 取 \(g=9.8\),\(m=1\),\(l=9.8\),\(c=1.96\):
引出 LaSalle 思想。 找出 Lyapunov 函数导数为零的点,再判断系统是否会被困在这些点上(能困住轨迹的地方称为不变集)。若既能困住轨迹又导数为零的只有原点,原点就渐近稳定。不同初始条件可能给出完全不同的结果。演示 nnd17ds。
20.5 LaSalle 不变性定理(PDF p.816–822)
定义 5(Lyapunov 函数,推广):设 \(V:\mathbb R^n\to\mathbb R\) 连续可微,\(G\) 是 \(\mathbb R^n\) 的任一子集。若对系统 \(d\mathbf a/dt=\mathbf g(\mathbf a)\),
定义 6(集合 \(Z\)):
定义 7(不变集 invariant set):若从某点集出发的每条解都永远留在该集合中,则该集合关于 \(d\mathbf a/dt=\mathbf g(\mathbf a)\) 不变。系统一旦进入不变集就出不去。
定义 8(集合 \(L\)):\(L\) 是 \(Z\) 中最大的不变集。它包含解可能收敛到的所有点:在 \(L\) 中 Lyapunov 函数不变(导数为零),轨迹也被困住(不变集)。若 \(L\) 只有一个稳定点,则该点渐近稳定。
定理 2(LaSalle 不变性定理,[Lasa67]):若 \(V\) 是 \(G\) 上关于 \(d\mathbf a/dt=\mathbf g(\mathbf a)\) 的 Lyapunov 函数,则每条对所有 \(t>0\) 都留在 \(G\) 中的解 \(\mathbf a(t)\),当 \(t\to\infty\) 时趋近 \(L^\infty=L\cup\{\infty\}\)。(\(G\) 是 \(L\) 的吸引域,\(L\) 包含所有稳定点。)若所有轨迹有界,则 \(\mathbf a(t)\to L\)。 含义:留在 \(G\) 中的轨迹要么收敛到 \(L\),要么趋于无穷;轨迹有界则都收敛到 \(L\)。
推论 1(LaSalle 推论):令 \(G\) 为
单摆例子应用推论。
- 取 \(\eta=100\),\(\Omega_{100}=\{\mathbf a:V(\mathbf a)\le100\}\)(图 20.8 中蓝色区域,由沿 \(a_1\) 方向排列的多个分离区域组成)。取包含原点的分量作为 \(G\)(图 20.9)。
- \(dV/dt=-19.208(a_2)^2\le0\) 在 \(G\) 上成立。
- \(Z=\{\mathbf a:a_2=0,\ \mathbf a\in\overline G\}=\{\mathbf a:a_2=0,\ -1.6\le a_1\le1.6\}\),即 \(a_1\) 轴在 \(G\) 内的一段(图 20.10)。(由 \(96.04(1-\cos a_1)\le100\) 得 \(|a_1|\lesssim1.6\)。)
- 求 \(L\):从 \(a_1\in[-1.6,1.6]\)、零初速出发,速度能否一直保持为零?只有 \(a_1=0\)(竖直向下)可以,其他位置摆会下落、速度不为零、离开 \(Z\)。所以 \(L=\{\mathbf a:\mathbf a=\mathbf 0\}\),\(L^\circ=L\)。
- 结论:原点是吸引子(渐近稳定),\(G\) 在其吸引域内,从 \(G\) 出发的任何轨迹都衰减到原点。
把 \(G\) 取得过大。 取 \(\eta=300\):\(\Omega_{300}\) 只有一个连通分量(图 20.11 灰色),\(G=\Omega_{300}\),\(Z=\{\mathbf a:a_2=0\}\)(\(a_1\) 轴上一长段)。此时
20.6 评述(PDF p.822)
LaSalle 定理的关键是 \(V\) 和 \(G\) 的选择:希望 \(G\) 尽量大(代表吸引区域),又希望 \(V\) 使 \(Z\)(包含吸引子集)尽量小。例如 \(V=0\) 对全空间都是 Lyapunov 函数(导数恒为零不变号),但 \(Z=\mathbb R^n\),毫无信息。 若 \(V_1\)、\(V_2\) 都是 \(G\) 上的 Lyapunov 函数且导数同号,则 \(V=V_1+V_2\) 也是,且 \(Z=Z_1\cap Z_2\)。\(Z\) 不会大于 \(Z_1\)、\(Z_2\) 中较小者,所以和函数至少和任一个一样好。最好的 Lyapunov 函数是吸引子集最小、吸引区域最大的那个。
20.7 结果汇总(PDF p.823–824)
汇总重复定义 1–8、定理 1、定理 2 和推论 1,内容同上。
20.8 例题精解(PDF p.825–831)
- P20.1 系统 \(da_1/dt=-a_1+(a_2)^2\),\(da_2/dt=-a_2(a_1+1)\)。取 \(V=(a_1)^2+(a_2)^2\): \(dV/dt=2a_1(-a_1+a_2^2)+2a_2(-a_2(a_1+1))=-2(a_1)^2-2(a_2)^2\),负定,原点渐近稳定。
- P20.2 \(da_1/dt=-(a_1)^5\),\(da_2/dt=-5(a_2)^7\)。取 \(V=(a_1)^2+(a_2)^2\),\(dV/dt=-2(a_1)^6-10(a_2)^8\),负定,原点渐近稳定。
- P20.3 非线性弹簧–质量–阻尼系统(图 P20.1)。\(a_1=x\),\(a_2=dx/dt\):\(da_1/dt=a_2\),\(da_2/dt=-(a_1)^3-a_2\)。候选 \(V=\tfrac14(a_1)^4+\tfrac12(a_2)^2\):\(dV/dt=(a_1)^3a_2+a_2(-(a_1)^3-a_2)=-(a_2)^2\le0\),在 \(\mathbb R^2\) 上不变号。取 \(G=\{\mathbf a:V(\mathbf a)\le1\}\)(图 P20.2),\(Z=\{a_2=0,\ -\sqrt2\le a_1\le\sqrt2\}\);\(Z\) 中唯一的不变集是原点,\(L=\{\mathbf 0\}\)。原点是吸引子,\(G\) 在其吸引区域内;继续增大 \(\eta\) 可知整个 \(\mathbb R^2\) 都是原点的吸引域。图 P20.3:轨迹穿过 \(a_1\) 轴时与等高线平行(此时 \(dV/dt=0\)),但 \(a_1\) 轴除原点外不是不变集,轨迹最终只被原点吸引。
- P20.4 有两个不变集的系统。 \(da_1/dt=a_1(a_1^2+a_2^2-4)-a_2\),\(da_2/dt=a_1+a_2(a_1^2+a_2^2-4)\)。不变集为原点和圆 \(a_1^2+a_2^2=4\)。取 \(V=a_1^2+a_2^2\): \(dV/dt=2(a_1^2+a_2^2)(a_1^2+a_2^2-4)\),在原点和圆上为零;从圆外到圆内,符号由正变负,所以只在圆内半负定。选 \(G\) 在圆内,如 \(G=\{V\le1\}\),则 \(Z=\{\mathbf 0\}=L\)。原点是吸引子;同理可推得圆内所有点都在原点吸引域内。图 P20.4:圆虽是不变集但不是吸引子(圆内的轨迹收敛到原点,圆外的轨迹发散),系统唯一的吸引子是原点。
- P20.5 一维系统。 \(da/dt=-(a-1)(a-2)\)。(i) 平衡点 \(a=1,\ a=2\)。(ii) 取 \(V=(a-2)^2\),\(dV/dt=2(a-2)\cdot[-(a-1)(a-2)]=-2(a-1)(a-2)^2\)。取 \(G=\{(a-2)^2\le0.5\}\),即 \(1.3\le a\le2.7\),其中 \(dV/dt\le0\);\(Z=\{a=2\}\)(\(a=1\) 不在 \(G\) 内),\(L=Z\),故 \(G\) 在 \(a=2\) 的吸引域内。\(\eta\) 可增至 1,吸引域至少包含 \(1<a\le3\)。\(\eta>1\) 时 \(G\) 同时包含 1 和 2,\(dV/dt\) 在 \(G\) 上变号,用此 \(V\) 和推论对 \(a=2\) 的吸引域无法得出更多结论。图 P20.5:\(a=1\) 实际上不稳定,初值大于 1 收敛到 2,小于 1 趋向 \(-\infty\)。
20.9 结语与延伸阅读(PDF p.832–833)
结语。 对非线性动态系统(如递归网络),不说“系统”稳定,而说某些轨迹、尤其是平衡点稳定。Lyapunov 定理引入广义能量:能量总在下降,系统最终停在能量极小点。LaSalle 定理有两项改进:一是处理 Lyapunov 函数在某些区域保持不变(不严格下降)的情形,引入不变集识别能困住轨迹的区域;二是除了判定平衡点稳定性,还给出各稳定点的吸引区域。这些工具用于分析第 18、19 章 Grossberg 网络等递归网络([CoGr83] 用 LaSalle 定理分析竞争网络),第 21 章用于解释 Hopfield 网络。
延伸阅读。 [Brog91] Brogan《Modern Control Theory》,线性代数、线性微分方程与线性/非线性系统稳定性,例题多;[CoGr83] Cohen–Grossberg 用 LaSalle 定理分析一大类竞争递归网络的绝对稳定性;[Lasa67] LaSalle 不变性原理原文;[SlLi91] Slotine–Li《Applied Nonlinear Control》,非线性系统稳定性定理。
20.10 习题概览(PDF p.834–838)
- E20.1:两个二维系统,如 \(da_1/dt=-(a_1)^3+a_2,\ da_2/dt=-a_1-a_2\),用 Lyapunov 定理检验原点稳定性。
- E20.2:\(da_1/dt=a_2-2a_1(a_1^2+a_2^2)\),\(da_2/dt=-a_1-2a_2(a_1^2+a_2^2)\),候选 \(V=a_1^2+a_2^2\),并用
ode45仿真验证。 - E20.3、E20.4:一维系统(如 \(da/dt=a(a+1)\) 配 \(V=-(2a^3+3a^2)\),\(da/dt=\cos a\)、\(da/dt=\sin a\) 需自行构造 \(V\) 等),找平衡点、验证 \(V\) 有效、用推论确定 \(Z,G,L\) 与吸引域。
- E20.5、E20.6:二维系统(如 \(da_1/dt=a_2,\ da_2/dt=-a_1-(a_2)^3\),\(V=a_1^2+a_2^2\)),按步骤求平衡点、\(dV/dt\)、\(G\)、\(Z\)、\(L\),讨论改变 \(G\) 能否得到更多信息,并仿真。
- E20.7:从 \(dV/dt\) 的形式倒推构造 Lyapunov 函数(提示函数 \(f(a)=1-(a/\beta)^2\))。
- E20.8:\(da_1/dt=a_2-a_1(a_1^4+2a_2^2-10)\),\(da_2/dt=-a_1^3-3a_2^5(a_1^4+2a_2^2-10)\),\(V=(a_1^4+2a_2^2-10)^2\),找不变集(含曲线 \(a_1^4+2a_2^2=10\))并分析稳定性。
- E20.9:线性系统 \(d\mathbf a/dt=\begin{bmatrix}-1&0\\0&-2\end{bmatrix}\mathbf a+\begin{bmatrix}1\\2\end{bmatrix}\),自找 Lyapunov 函数并画出 \(\Omega,G,Z,L\)。
- E20.10:\(da_1/dt=a_2+a_1(1-a_1^2-a_2^2)\),\(da_2/dt=-a_1+a_2(1-a_1^2-a_2^2)\),不变集为原点和单位圆,\(V=(a_1^2+a_2^2-1)^2\),分析两个不变集的吸引域(极限环的稳定性)。
- E20.11:\(da_1/dt=-a_1-\cos a_2\),\(da_2/dt=a_1\),\(V=\tfrac12a_1^2+\sin a_2\)(\(dV/dt=-a_1^2\)),确定稳定平衡点与吸引域。
本章要点
稳定性针对平衡点(或轨迹)而言,有 Lyapunov 稳定与渐近稳定之分。Lyapunov 直接法:正定 \(V\) 加半负定(负定)导数 ⇒ 稳定(渐近稳定),只是充分条件。能量函数导数常常只是半负定(如单摆),这时用 LaSalle 不变性定理:在 \(G\) 上 \(dV/dt\) 不变号,找 \(Z=\{dV/dt=0\}\),再找其中最大不变集 \(L\);有界轨迹都收敛到 \(L\)。推论用 \(V\) 的下水平集的连通分量作 \(G\),同时给出吸引子和部分吸引域。\(G\) 取得太大,会把多个平衡点都包进来,只能说收敛到其中之一。
与量化交易的关联
直接关联有限,但有几处可用。(1) 优化算法的收敛性分析:梯度流 \(d\mathbf x/dt=-\nabla F(\mathbf x)\) 以 \(F\) 本身为 Lyapunov 函数,\(dF/dt=-\|\nabla F\|^2\le0\),LaSalle 定理说明有界轨迹收敛到驻点集。这是理解组合优化、模型训练中“目标函数单调下降但不一定到全局最优、多极小点各有吸引域”的统一框架。(2) 动态模型的均值回复与稳定性:连续时间利率模型、OU 过程的确定性部分、做市库存控制等,常用二次型 Lyapunov 函数判断系统是否回到均衡;随机版本(随机 Lyapunov 函数)用于证明遍历性与矩有界,这是本章思想的延伸,原书未涉及。(3) 自适应/在线算法:在线更新的组合权重或卡尔曼类滤波器,可用 Lyapunov 函数论证误差有界。单摆、弹簧等例子本身与量化无关。
推荐习题
- P20.3、P20.4:完整走一遍 \(V\to G\to Z\to L\) 的 LaSalle 推论流程,理解“导数半负定但仍渐近稳定”。
- P20.5、E20.3/E20.4:一维情形下看清 \(G\) 选得过大会发生什么。
- E20.10:极限环(单位圆)作为不变集的稳定性分析。
- E20.11:自行验证候选 \(V\) 并画等高线确定吸引域。
第 21 章 Hopfield 网络 Hopfield Network(PDF p.839–882)
21.0 目标与历史(PDF p.839–841)
本章讲连续时间 Hopfield 递归网络:先描述模型,再用 Lyapunov 稳定性理论分析其运行,最后展示如何把它设计成联想记忆。本章综合了前面多章内容:第 3 章离散 Hopfield 网络,第 6 章特征值与特征向量,第 7 章联想记忆与 Hebb 规则,第 8 章 Hessian、最优性条件、二次函数与等高线,第 9 章最速下降与相平面轨迹,第 18 章连续时间递归网络,第 20 章 Lyapunov 定理与 LaSalle 定理。
历史背景。 1980 年代初神经网络研究的复兴很大程度归功于 John Hopfield(加州理工物理学家)。他早年研究光与固体相互作用,后研究生物分子间电子转移。1982 年 [Hopf82]、1984 年 [Hopf84] 两篇论文影响巨大,综合了 McCulloch–Pitts 神经元 [McPi43]、Grossberg 加性模型 [Gros67]、Anderson [Ande72] 与 Kohonen [Koho72] 的线性联想器、Anderson 等的“盒中脑”(Brain-State-in-a-Box)[AnSi77] 等前人工作,并给出清晰的数学分析(包括 Lyapunov 理论)。影响大的其他原因:(1) 指出其网络与统计物理中磁性材料的 Ising 模型高度类似,引入大量现成理论并吸引物理学家进入该领域;(2) 与 AT&T 贝尔实验室 VLSI 设计者联系紧密,1987 年贝尔实验室已做出基于 Hopfield 网络的芯片,重视硬件实现;(3) 重视实际应用,如内容寻址存储、模数转换 [TaHo86]、优化问题(旅行商问题)[HoTa85]。本章用 1984 年论文的连续时间模型。
21.1 Hopfield 模型(PDF p.841–843)
电路模型(图 21.1)。 每个神经元是一个运算放大器加 RC 网络。两类输入:恒定外部电流 \(I_i\);来自其他放大器的反馈。例如第 2 个输出 \(a_2\) 经电阻 \(R_{S,2}\) 接到放大器 \(S\) 的输入。电阻只能为正,负连接通过放大器的反相输出实现。由基尔霍夫电流定律:
转为标准网络记号。 两边乘 \(R_i\),令 \(\varepsilon=R_iC\),\(w_{i,j}=R_iT_{i,j}\),\(b_i=R_iI_i\):
21.2 Lyapunov 函数(PDF p.843–845)
把 Lyapunov 理论用于递归网络是 Hopfield 的关键贡献之一(Cohen 与 Grossberg [CoGr83] 同时期也用它分析竞争网络)。Hopfield 选取的候选函数:
求导。
- 第一项(用式 8.37,\(\mathbf W\) 对称):\(\frac{d}{dt}[-\frac12\mathbf a^T\mathbf W\mathbf a]=-\mathbf a^T\mathbf W\frac{d\mathbf a}{dt}\)。
- 第二项:\(\frac{d}{dt}\int_0^{a_i}f^{-1}(u)du=f^{-1}(a_i)\frac{da_i}{dt}=n_i\frac{da_i}{dt}\),合计 \(\mathbf n^T\frac{d\mathbf a}{dt}\)。
- 第三项:\(-\mathbf b^T\frac{d\mathbf a}{dt}\)。
合计 \(\frac{dV}{dt}=[-\mathbf a^T\mathbf W+\mathbf n^T-\mathbf b^T]\frac{d\mathbf a}{dt}\)。由网络方程 \([-\mathbf a^T\mathbf W+\mathbf n^T-\mathbf b^T]=-\varepsilon\big[\frac{d\mathbf n}{dt}\big]^T\),故
21.3 不变集(PDF p.845)
取 \(G=\mathbb R^S\)。\(Z=\{\mathbf a:dV/dt=0,\ \mathbf a\in\overline G\}\)。由 (21.17),\(dV/dt=0\) 当且仅当所有 \(da_i/dt=0\),即电路处于平衡。所以“能量不变”的点恰是平衡点;平衡点本身就是不变集,因此最大不变集 \(L=Z\)(21.22),\(Z\) 中的所有点(即全部平衡点)都是潜在吸引子。
21.4 二神经元例子(PDF p.846–849)
取自 [Hopf84]。放大器特性
行为(图 21.3–21.6)。 两个吸引子分别在左下角和右上角;从左上方出发的轨迹收敛到左下角稳定点,Lyapunov 函数随时间单调下降(图 21.5)。原点也是平衡点:从左上角到右下角那条对角线(\(a_1=-a_2\))上任一点出发都会收敛到原点;不在该线上的初值收敛到左下或右上。原点是 Lyapunov 函数的鞍点而非极小点(图 21.6 给出收敛到鞍点的轨迹)。演示 nnd18hn。
21.5 Hopfield 吸引子是 Lyapunov 函数的驻点(PDF p.849–851)
潜在吸引子满足 \(d\mathbf a/dt=\mathbf 0\)。与 \(V\) 的极小点有何关系?第 8 章(式 8.27)说明极小点必为驻点 \(\nabla V=\mathbf 0\)。按推导 (21.13) 的步骤可得梯度
21.6 增益的影响与高增益 Lyapunov 函数(PDF p.851–854)
增益。 图 21.7 给出 \(\gamma=0.14,1.4,14\) 时的反正切特性:\(\gamma\) 决定 \(n=0\) 处斜率,\(\gamma\to\infty\) 时 \(f\) 趋于符号(阶跃)函数。 例子中第二项为 \(-\frac{4}{\gamma\pi^2}\log\cos(\frac\pi2a_i)\)(图 21.8),\(\gamma\) 越大越平坦,在 \(-1<a_i<1\) 大部分范围接近 0。故 \(\gamma\to\infty\) 时可忽略第二项,得到高增益 Lyapunov 函数:
例子的 Hessian。 \(\nabla^2V=-\mathbf W=\begin{bmatrix}0&-1\\-1&0\end{bmatrix}\),\(|\nabla^2V-\lambda\mathbf I|=\lambda^2-1\),特征值 \(\lambda_1=-1\)、\(\lambda_2=1\),特征向量 \(\mathbf z_1=[1,1]^T\)、\(\mathbf z_2=[1,-1]^T\)。一正一负,是鞍点:沿 \(\mathbf z_1\) 负曲率,沿 \(\mathbf z_2\) 正曲率(图 21.9)。函数本身无极小,但放大器把输出约束在超立方体 \(\{\mathbf a:-1\le a_i\le1\}\) 内,因此在两角 \(\mathbf a=[1,1]^T\)、\(\mathbf a=[-1,-1]^T\) 有约束极小。增益很小时只有原点一个极小(E21.1);增益增大,两个极小从原点向两角移动;\(\gamma=1.4\) 时极小在 \(\pm[0.57,0.57]^T\)(图 21.3)。一般多神经元情形,高增益极小落在超立方体某些角上。
21.7 Hopfield 设计(PDF p.854–857)
Hopfield 网络没有学习律,不训练也不自学;而是基于 Lyapunov 函数用设计方法确定权值。设计思路:选 \(\mathbf W\)、\(\mathbf b\),使高增益 \(V(\mathbf a)=-\frac12\mathbf a^T\mathbf W\mathbf a-\mathbf b^T\mathbf a\) 等于想要最小化的目标函数。把问题转化为二次最小化,网络最小化 \(V\) 就解了原问题。难点在于转化,通常不直接。
内容寻址存储(content-addressable memory)。 按部分内容检索存储项(区别于计算机按地址检索),例如只给员工姓名(甚至部分姓名)就取回完整记录。等同于第 7 章自联想记忆(p.7-10),只是这里用递归 Hopfield 网络而非线性联想器。目标:输入作为初始输出,网络输出收敛到最接近输入的原型。为此原型必须是 Lyapunov 函数的极小点。
设原型 \(\{\mathbf p_1,\dots,\mathbf p_Q\}\),每个向量 \(S\) 个元素,取值 \(\pm1\);假设 \(Q\ll S\),状态空间大且原型分布良好、彼此不近。提出二次性能指标
用 Hebb 规则设计。 取有监督 Hebb 规则(目标等于输入)和零偏置:
21.8 Hebb 规则下的平衡点分析(PDF p.857–861)
(沿用第 7 章 P7.5 的分析。)原型正交时,对原型 \(\mathbf p_j\):
结论。 \(\mathbf W\) 有两个特征值:\(S\)(特征空间 \(X\))和 \(0\)(特征空间 \(X^\perp\))。高增益 Hessian \(\nabla^2V=-\mathbf W\) 的特征值为 \(-S\) 和 \(0\):\(V\) 在 \(X\) 中负曲率,在 \(X^\perp\) 中零曲率。因此轨迹倾向落入超立方体 \(\{\mathbf a:-1\le a_i\le1\}\) 中位于 \(X\) 内的角。
伪模式(spurious patterns)。 Hebb 规则下每个原型至少对应两个极小:若 \(\mathbf p_q\) 是原型,\(-\mathbf p_q\) 也在 \(X\) 中,也是落在 \(X\) 中的角。此外,\(X\) 中的角还包括原型的某些线性组合,这些非原型极小称为伪模式。Hopfield 设计的目标是尽量减少伪模式、尽量扩大原型的吸引域;[LiMi89] 给出保证伪模式最少的设计方法。
二维例子。 若 \(\mathbf p_1=[1,1]^T\) 用 Hebb 规则:\(\mathbf W=\mathbf p_1\mathbf p_1^T=\begin{bmatrix}1&1\\1&1\end{bmatrix}\),注意 \(\mathbf W'=\mathbf W-\mathbf I=\begin{bmatrix}0&1\\1&0\end{bmatrix}\) 正是原例子的连接矩阵。高增益 \(V=-\frac12\mathbf a^T\begin{bmatrix}1&1\\1&1\end{bmatrix}\mathbf a\),Hessian \(\begin{bmatrix}-1&-1\\-1&-1\end{bmatrix}\),特征值 \(\lambda_1=-S=-2\)(\(\mathbf z_1=[1,1]^T\),即 \(X=\{a_1=a_2\}\))、\(\lambda_2=0\)(\(\mathbf z_2=[1,-1]^T\),即 \(X^\perp=\{a_1=-a_2\}\))。曲面有一条从左上到右下的笔直山脊(零曲率区,图 21.10)。山脊左右的初值分别收敛到 \([-1,-1]^T\) 或 \([1,1]^T\);恰在山脊上的初值停在原地。与原例子(图 21.9)相比,唯一区别是原例子中斜脊上的点收敛到原点(图 21.6),其余方面完全相同。
21.9 对角置零对 Lyapunov 曲面的影响(PDF p.861–862)
许多文献把 Hopfield 权值矩阵对角元素置零。内容寻址存储中,对角元素都等于 \(Q\)(每个 \(\mathbf p_q\) 元素为 \(\pm1\)),所以
- 对原型:\(\mathbf W'\mathbf p_q=S\mathbf p_q-Q\mathbf p_q=(S-Q)\mathbf p_q\),特征值 \(S-Q\),特征空间 \(X\)。
- 对 \(\mathbf a\in X^\perp\):\(\mathbf W'\mathbf a=\mathbf 0-Q\mathbf a=-Q\mathbf a\),特征值 \(-Q\),特征空间 \(X^\perp\)。
特征向量不变,特征值由 \((S,0)\) 变为 \((S-Q,-Q)\);修改后 Hessian \(\nabla^2V'=-\mathbf W'\) 的特征值为 \(-(S-Q)\) 与 \(Q\):在 \(X\) 中负曲率,在 \(X^\perp\) 中正曲率(原来是零曲率)。 系统性能几乎不受影响:初值不在直线 \(a_1=-a_2\) 上时,两种情形都收敛到超立方体在 \(X\) 中的角 \([1,1]^T\) 或 \([-1,-1]^T\)。初值恰在 \(a_1=-a_2\) 上时:用 \(\mathbf W\),输出保持不变;用 \(\mathbf W'\),收敛到原点鞍点(图 21.6)。两者都不理想(未收敛到极小),但只在初值恰在该线上时发生,实践中几乎不可能。
21.10 结果汇总(PDF p.863–864)
汇总:Hopfield 模型 \(\varepsilon\,d\mathbf n/dt=-\mathbf n+\mathbf W\mathbf a+\mathbf b\),\(\mathbf a=\mathbf f(\mathbf n)\),\(\mathbf a(0)=\mathbf p\);Lyapunov 函数 (21.8) 及 \(dV/dt\) 公式;若 \(\frac{d}{da_i}f^{-1}(a_i)>0\) 则 \(dV/dt\le0\);不变集由平衡点组成,\(L=Z\);平衡点是驻点;高增益 Lyapunov 函数与 Hessian \(-\mathbf W\);内容寻址存储 \(\mathbf W=\sum\mathbf p_q\mathbf p_q^T\),\(\mathbf b=\mathbf 0\);正交原型下 Hessian 特征值 \(-S\)(\(X\))与 \(0\)(\(X^\perp\)),轨迹落入 \(X\) 中的超立方体角。
21.11 例题精解(PDF p.865–874)
- P21.1 原型 \(\mathbf p_1=[1,1,-1,-1]^T\),\(\mathbf p_2=[1,-1,1,-1]^T\)。(i) Hebb: \(\mathbf W=\mathbf p_1\mathbf p_1^T+\mathbf p_2\mathbf p_2^T=\begin{bmatrix}2&0&0&-2\\0&2&-2&0\\0&-2&2&0\\-2&0&0&2\end{bmatrix}\)。 (ii) Hessian \(=-\mathbf W\)。原型正交,特征值 \(\lambda_1=-S=-4\)(特征空间 \(X=\mathrm{span}\{\mathbf p_1,\mathbf p_2\}\)),\(\lambda_2=0\)(\(X^\perp=\mathrm{span}\{[1,1,1,1]^T,[1,-1,-1,1]^T\}\))。(iii) 稳定点为 \(\pm\mathbf p_1,\pm\mathbf p_2\);若还有其他角落在 \(X\) 中也会是平衡点。超立方体共 \(2^4=16\) 个角,4 个在 \(X\) 中,4 个在 \(X^\perp\) 中,其余部分在 \(X\)、部分在 \(X^\perp\)。
- P21.2 高增益网络 \(\mathbf W=\begin{bmatrix}-1&-1\\-1&-1\end{bmatrix}\),\(\mathbf b=[1,-1]^T\)。Hessian \(-\mathbf W=\begin{bmatrix}1&1\\1&1\end{bmatrix}\),特征值 \(0\)(\(\mathbf z_1=[1,-1]^T\))与 \(2\)(\(\mathbf z_2=[1,1]^T\)):二次项沿 \(\mathbf z_1\) 零曲率,沿 \(\mathbf z_2\) 正曲率(图 P21.1)。线性项 \(-\mathbf b^T\mathbf a\) 在 \([1,-1]^T\) 方向造成负斜率,整个曲面向 \([1,-1]^T\) 倾斜(图 P21.2)。在超立方体约束下只有一个极小 \([1,-1]^T\),无论初值(题设 \([1,1]^T\))如何都收敛到那里。
- P21.3 原型 \(\mathbf p_1=[1,1]^T\),\(\mathbf p_2=[-1,1]^T\)。(i) \(\mathbf W=\begin{bmatrix}2&0\\0&2\end{bmatrix}\),\(\mathbf b=\mathbf 0\)。(ii) Hessian \(=\begin{bmatrix}-2&0\\0&-2\end{bmatrix}\),重特征值 \(-2=-S\),全空间都是特征空间。(iii) 等高线为圆,原点是唯一极大点;四个角都是极小,另有四个鞍点(如 \([-1,0]^T\),其吸引区域为负 \(a_1\) 轴),共 9 个驻点。用 LaSalle 推论可证原点的吸引域只有它自身,不是稳定平衡点;鞍点吸引区域是直线;四个角是仅有的具有二维吸引区域的吸引子,各自吸引域是所在象限(图 P21.3、低增益 \(\gamma=1.4\) 的图 P21.4)。(iv) 网络表现差:除两个原型外还“识别”另外两个角,收敛到离输入最近的角;所有二位模式都被存储,等于没用。这在意料之中:Hebb 规则只能存约 15% 神经元数的模式,2 个神经元存不了几个。E21.2 给出更好的设计。
- P21.4 已知高增益 \(V(\mathbf a)=-\frac12(7a_1^2+12a_1a_2-2a_2^2)=-\frac12\mathbf a^T\begin{bmatrix}7&6\\6&-2\end{bmatrix}\mathbf a\)。(i) \(\mathbf W=\begin{bmatrix}7&6\\6&-2\end{bmatrix}\)(\(\mathbf b=\mathbf 0\))。(ii) \(\nabla V=-\mathbf W\mathbf a\)。(iii) Hessian \(\begin{bmatrix}-7&-6\\-6&2\end{bmatrix}\)。(iv) 特征方程 \(\lambda^2+5\lambda-50=(\lambda+10)(\lambda-5)\),\(\lambda_1=-10\)(\(\mathbf z_1=[2,1]^T\)),\(\lambda_2=5\)(\(\mathbf z_2=[1,-2]^T\)),鞍点,沿 \(\mathbf z_1\) 负曲率,沿 \(\mathbf z_2\) 正曲率(图 P21.5)。(v) 从 \([0.25,0.25]^T\) 出发的最速下降路径垂直于等高线,碰到超立方体边界后沿边滑到极小点。高增益函数只是近似,图 P21.6 给出增益 0.5 时的 Lyapunov 函数和 Hopfield 实际轨迹作对比。
- P21.5 模数转换器(A/D)([TaHo86])。二位 A/D 用 \(y\approx\sum_{i=1}^2a_i2^{i-1}=a_1+2a_2\) 近似模拟信号 \(y\),\(a_i\in\{0,1\}\),范围 0–3,分辨率 1。Tank–Hopfield 性能指标:
\[J(\mathbf a)=\frac12\Big[y-\sum_{i=1}^2a_i2^{i-1}\Big]^2-\frac12\sum_{i=1}^2(2^{i-1})^2a_i(a_i-1),\]第一项是转换误差,第二项迫使 \(a_i\) 取 0 或 1(在 \(a_i\in\{0,1\}\) 时为零,在区间内部为正)。展开后 \(a_i^2\) 项相互抵消,常数项 \(\frac12y^2\) 不影响极小位置,得\[J=\frac12y^2+2a_1a_2+a_1\big(\tfrac12-y\big)+a_2(2-2y).\]与 \(V=-\frac12\mathbf a^T\mathbf W\mathbf a-\mathbf b^T\mathbf a\) 对照:\[\mathbf W=\begin{bmatrix}0&-2\\-2&0\end{bmatrix},\qquad \mathbf b=\begin{bmatrix}y-\tfrac12\\2y-2\end{bmatrix}.\]与内容寻址存储不同,这里网络输入是标量 \(y\),用来计算偏置;传递函数须把输出限制在 \([0,1]\),如 \(f(n)=1/(1+e^{-\gamma n})\)。
21.12 结语与延伸阅读(PDF p.875–878)
结语。 Hopfield 网络影响大的原因:重视实际,可做成电路且很早有 VLSI 实现;可用于模式识别与优化(内容寻址存储 [Hopf82]、A/D 转换 [TaHo86]、线性规划与旅行商问题 [HoTa85]);关键贡献是用 Lyapunov 理论分析递归网络,并指出高增益时 Lyapunov 函数为网络所最小化的二次函数,由此产生“把任务转成二次最小化”的设计方法。这是本书最后详细讨论的网络结构,下一章给出继续学习的方向(注:第二版中下一章实际是“实际训练问题”)。
延伸阅读。 [Ande72] 线性联想器;[AnSi77] 盒中脑模型,线性联想器加递归连接,用非线性传递函数把输出限制在超立方体内;[CoGr83] Cohen–Grossberg;[Gros67] 动态稳定构型中的信息存储;[Hopf82] 原始离散时间 Hopfield 论文;[Hopf84] 连续值(graded response)神经元的模拟电路模型与 Lyapunov 函数;[HoTa85] 优化问题与旅行商问题;[Koho72] 相关矩阵记忆(外积规则);[LiMi89] 闭超立方体上线性系统,减少伪平衡点的设计;[McPi43] 第一个神经元数学模型;[TaHo86] A/D 转换器、信号判决电路、线性规划电路。
21.13 习题概览(PDF p.879–882)
- E21.1:对正文例子(原书误写为 p.18-8),证明极小点满足 \(n_1=f(n_2)\)、\(n_2=f(n_1)\);考察增益从 0.1 变到 10 时极小位置的变化并画等高线。
- E21.2:P21.3 同样两个原型,用 [LiMi89] 方法得到 \(\mathbf W=\begin{bmatrix}1&0\\0&-10\end{bmatrix}\)(抽取文本如此)、\(\mathbf b=[0,11]^T\),画高增益等高线,对比 P21.3 的性能,并用
ode45仿真。 - E21.3:已知 \(V(\mathbf a)=-\frac12(a_1^2+2a_1a_2+4a_2^2+6a_1+10a_2)\),求 \(\mathbf W\)、\(\mathbf b\)、梯度、Hessian、等高线、驻点,并用 LaSalle 推论分析吸引域。
- E21.4:A/D 网络在 \(y=0.5\) 和 \(y=2.5\) 时的高增益等高线与极小点,判断能否正确转换。
- E21.5、E21.6:给定若干对 4 维或 6 维 \(\pm1\) 原型,用 Hebb 规则设计网络,求 Hessian 特征值/特征向量与稳定平衡点。
- E21.7:\(\mathbf W=\begin{bmatrix}1&3\\3&9\end{bmatrix}\),\(\mathbf b=[3,-1]^T\),画等高线,判断从 \([0.5,-0.5]^T\) 出发收敛到哪里。
- E21.8:不用 Hebb 规则,设计只有一个稳定平衡点 \([1,-1]^T\) 的高增益网络。
- E21.9、E21.10:给定 \(\mathbf W\)、\(\mathbf b\)(如 \(\mathbf W=-\mathbf I\),\(\mathbf b=[1,1]^T\)),画等高线、找稳定点并讨论吸引域。
- E21.11:容量实验(对应 E7.11):用 Hebb 规则依次存储数字 0–6,随机翻转 2/4/6 个像素,各测 10 次,画“错误率–存储数字数”三条曲线;再用伪逆规则比较;加分题用 [LiMi89] 的 Synthesis Procedure 5.1。
本章要点
连续时间 Hopfield 网络 \(\varepsilon\dot{\mathbf n}=-\mathbf n+\mathbf W\mathbf f(\mathbf n)+\mathbf b\) 在 \(\mathbf W\) 对称、\(f\) 单调递增时有 Lyapunov 函数 (21.8),\(dV/dt\le0\),所有平衡点构成最大不变集,平衡点都是 \(V\) 的驻点;\(f^{-1}\) 线性时网络即最速下降。高增益下 \(V=-\frac12\mathbf a^T\mathbf W\mathbf a-\mathbf b^T\mathbf a\) 为二次函数,Hessian 为 \(-\mathbf W\),极小落在超立方体角上。设计方法:把任务写成二次目标再读出 \(\mathbf W\)、\(\mathbf b\)。内容寻址存储用 Hebb 规则 \(\mathbf W=\sum\mathbf p_q\mathbf p_q^T\),原型正交时 \(\mathbf W\) 在原型张成空间特征值为 \(S\)、正交补为 0;会产生 \(-\mathbf p_q\) 和原型组合等伪模式,容量约为神经元数的 15%。对角置零只把正交补方向的曲率由 0 变正,对性能影响很小。
与量化交易的关联
(1) 二次优化与组合问题的神经求解:Hopfield 设计的本质是“把问题写成 \(\{0,1\}\) 或 \(\{\pm1\}\) 变量上的二次目标”,这与组合优化中的 QUBO(二次无约束二值优化)形式完全一致。带基数约束、整手约束的选股/组合构建、指数复制中的成分股选择都可写成 QUBO;今天通常用整数规划求解器、模拟退火或量子退火求解,而不是 Hopfield 电路,但本章的“惩罚项迫使变量取二值”(P21.5 第二项)正是构造 QUBO 惩罚项的标准技巧。(2) 二次型的几何:用 Hessian 特征分解判断鞍点、约束极小落在可行域顶点,这与均值–方差优化在非正定协方差估计下出现的病态、以及盒约束下解落在边界的现象是同一套数学。(3) 联想记忆与模式匹配:以“最相似历史形态”检索做行情类比(analog forecasting)在思想上与内容寻址存储相近,但实践中用最近邻检索即可,Hopfield 网络的容量和伪模式问题使其不适用。Ising 模型类比在市场微观结构的羊群行为建模中也有出现,属于延伸话题。
推荐习题
- P21.5、E21.4:把一个工程问题转成二次目标并读出权值,是理解 QUBO 建模的最佳练习。
- P21.1、P21.3、E21.11:理解 Hebb 设计下的特征结构、伪模式与容量限制。
- P21.4:二次函数特征分析 + 盒约束下最速下降轨迹。
- E21.1:增益如何使极小从内部移向超立方体角。
第 22 章 实际训练问题 Practical Training Issues(PDF p.883–914)
22.0 目标与总体流程(PDF p.883–885)
前面各章重在具体网络与学习规则的原理,本章讲适用于多种网络的实用训练技巧,不做推导,只给作者实践中有效的方法。分三部分:训练前(数据收集与预处理、网络结构选择)、训练中、训练后分析。
训练流程(图 22.1)是迭代过程: 收集/预处理数据 → 选网络类型与结构 → 选训练算法 → 初始化权值并训练 → 分析性能 → 使用网络。分析可能暴露数据、结构或算法的问题,于是回到前面步骤,直到性能满意。数据需划分训练/验证/测试集(见第 13 章)。
先问是否需要神经网络。 若标准线性回归就能满意地解决拟合问题,就不必用神经网络。神经网络更强大,但训练要求更高;线性方法可行时应优先。
22.1 训练前:数据选择(PDF p.885–887)
- 网络只和数据一样好。 神经网络很难融入先验知识,完全受制于数据。训练数据必须覆盖网络将来使用的整个输入空间。第 13 章的方法能保证在数据范围内插值良好(泛化),但对训练集范围之外的输入不能保证性能——神经网络与其他非线性“黑箱”方法一样不善于外推。
- 如何充分采样输入空间。 低维且各输入可独立选取时可用网格采样;但高维时网格不可行,且输入变量常相互依赖。图 22.2:两个输入各自在 \([-1,1]\) 变化,但实际只在阴影区域内取值,网络只需在该区域拟合,在全网格上拟合是浪费(高维时尤其如此)。实际中常在系统正常运行时收集数据;若能控制实验设计,必须让实验驱动系统经过将来要用网络的所有工况。训练前很难判断采样是否充分,可在训练后分析中判断,并可用技术检测网络何时在训练数据范围外使用(不会提升性能,但能避免在不可靠情形下使用)。
- 划分。 一般训练约 70%,验证和测试各约 15%。各子集都应代表全体数据,验证集、测试集应与训练集覆盖相同的输入区域。最简单是随机划分,通常效果好,但最好检查各子集之间有无明显差异;训练后分析也能发现划分问题。
- 数据量够不够。 取决于被逼近函数(或决策边界)的复杂度:拐点多的复杂函数需要大量数据;光滑函数需要少得多(除非噪声很大)。数据量与神经元数的选择密切相关。事前往往不知道复杂度,所以整个过程是迭代的,训练后的分析帮助判断数据是否充足。
22.2 数据预处理(PDF p.887–890)
目的:让训练更容易提取相关信息。包括归一化、非线性变换、特征提取、离散输入/目标编码、缺失数据处理等。
归一化(normalization)。 多层网络隐层常用 sigmoid,净输入绝对值大于约 3 时就基本饱和(\(e^{-3}\approx0.05\)),梯度很小,训练初期应避免。第一层净输入是输入乘权值加偏置,若输入很大,权值必须很小才不饱和。标准做法是先归一化输入,这样小随机初始权值就能保证乘积较小;同时权值大小的含义一致,这对第 13 章正则化尤其重要(正则化要求权值“小”,而“小”是相对的)。两种标准方法:
非线性变换。 与通用的线性归一化不同,非线性变换因问题而异。例如许多经济变量呈对数关系 [BoJe94],可先取对数;分子动力学模拟 [RaMa05] 中原子力与原子间距离成反比,可先对输入取倒数。这是把先验知识融入网络的一种方式,选得好能分担网络寻找输入–目标变换的工作,使训练更高效。
特征提取(feature extraction)。 原始输入维数很高且冗余时,从每个输入计算少量特征作为网络输入。例:心电图(EKG)分析 [HeOh97],12 或 15 导联、几分钟高频采样,数据太多不能直接输入,改为提取波形间平均时间间隔、某些波的平均幅度等(见第 25 章)。通用方法:主成分分析(PCA)[Joll02],把输入变换为互不相关的分量,按方差从大到小排列,只保留解释大部分方差的前几个分量;原始分量高度相关时可大幅降维。缺点:PCA 只考虑分量间的线性关系,线性降维可能丢失非线性信息,而用神经网络的主要目的恰是其非线性映射能力,所以要谨慎;非线性版本有核 PCA [ScSm99]。
离散目标编码(coding the targets)。 四类模式识别问题的三种编码:(1) 标量目标 1,2,3,4;(2) 二维二进制编码 (0,0),(0,1),(1,0),(1,1);(3) 四维独热(one-hot)编码,一次只有一个神经元激活。作者经验第三种效果最好。离散输入同理。编码还要配合输出层传递函数:模式识别常用 log-sigmoid 或更常用的 tan-sigmoid。若用 tansig,把目标设成渐近线 \(\pm1\) 会让训练算法试图使 sigmoid 饱和,造成困难;更好的做法是把目标设在 sigmoid 二阶导数最大处([LeCu98]):对 tansig 是净输入 \(\pm1\),对应输出 \(\pm0.76\)。 Softmax 输出层:
缺失数据(missing data)。 经济数据中常见,如 20 个月度经济变量,某些月份一两个变量没采到。最简单是丢弃任何有缺失的月份,但数据有限、补采昂贵时应尽量利用不完整数据。输入缺失:用该变量均值填补,并为该变量增加一个标志元素(可得为 1,缺失为 0),让网络知道哪些值是填补的;每个含缺失的输入变量各加一个标志。目标缺失:修改性能指标,不计入缺失目标对应的误差,只用已知目标。
22.3 网络结构选择(PDF p.890–895)
基本结构由问题类型决定。 本章只讨论四类问题:
- 拟合(fitting,又称函数逼近、回归):输入映射到连续目标。例:由税率、师生比、犯罪率估计房价;由油耗与速度估计发动机排放;由身体测量预测体脂(第 23 章案例)。标准结构是多层感知机,隐层 tansig、输出层线性。隐层优选 tansig 而非 logsig,理由同输入归一化:输出以 0 为中心,而 logsig 输出恒正。大多数拟合问题一个隐层足够,不满意时用两个,标准拟合问题很少超过两个(极难问题可用深层网络)。输出层线性是因为目标连续。第 11 章已证明“sigmoid 隐层 + 线性输出层”的两层网络是万能逼近器。径向基网络也可用于拟合(隐层高斯函数、输出层线性)。
- 模式识别(pattern recognition,又称模式分类):把输入分到目标类别。例:由化学分析识别葡萄酒产地;由细胞大小均匀度、团块厚度、有丝分裂判断肿瘤良恶性。也用多层感知机,与拟合网络的主要区别在输出层通常用 sigmoid;径向基网络也可用(第 25 章案例)。
- 聚类(clustering,又称分割):按相似性对数据分组。例:按购买模式做市场细分、数据挖掘、按表达模式对基因分组。第 16 章任何竞争网络都可用,最流行的是自组织特征映射(SOFM),其主要优点是能可视化高维空间(第 26 章案例)。
- 预测(prediction,又称时间序列分析、系统辨识、滤波、动态建模):预测时间序列未来值。例:股票交易者预测证券未来价值,控制工程师预测化工厂输出浓度,电力工程师预测电网故障。需要第 14 章的动态网络。最简单的非线性预测网络是聚焦时延神经网络(focused time-delay neural network, FTDNN)(图 22.3):属于“聚焦网络”,动态只出现在静态多层前馈网络的输入层(输入端的抽头延迟线 TDL),因此可用静态反向传播训练——把 TDL 换成延迟输入组成的扩展向量即可。动态建模与控制常用 NARX 网络(带外生输入的非线性自回归,图 22.4),例如输入为电机电压、输出为机械臂角度。它也可用静态反向传播训练:两条 TDL 换成延迟输入与延迟目标的扩展向量;之所以能用目标代替反馈的网络输出(否则需要动态反向传播),是因为训练完成时网络输出应与目标一致(第 27 章详述)。还有许多其他动态网络,FTDNN 与 NARX 是同类中最简单的。
结构细节。
- 层数:有时由基本结构决定(如 SOFM 一层)。多层网络的隐层数不由问题决定。标准做法:先用一个隐层;不满意再用两个;很少超过两个。隐层多时训练更难:每层 sigmoid 都做压缩,使性能函数对前面各层权值的导数很小,最速下降收敛很慢。极难问题可用多隐层的深层网络,通常需要并行或 GPU 计算。
- 神经元数:输出层神经元数等于目标向量维数。隐层神经元数取决于函数或决策边界的复杂度,事前一般未知。标准做法:先用比需要更多的神经元,再用提前停止(early stopping)或贝叶斯正则化(第 13 章)防止过拟合。神经元过多的主要坏处是过拟合,用上述方法可防止;但若关心计算时间或存储(如在单片机、VLSI、FPGA 上实时实现),就要找能拟合数据的最简网络。用贝叶斯正则化时,可看有效参数个数:若训练后有效参数数远小于总参数数,可减少神经元重训;也可用剪枝(pruning)删除神经元或权值。
- 多目标:可用一个多输出网络,也可用多个单输出网络。例:由血液光谱分析估计 LDL、VLDL、HDL 胆固醇,可一个三输出网络或三个单输出网络。理论上都行,实践中可能一个更好。通常先用一个多输出网络,不满意再改为多个单输出网络。
- 输入维数与输入选择:通常由数据决定,但输入有冗余或无关元素时,删除它们可减少计算并帮助防止过拟合。非线性网络的输入选择很难,没有完美方案。可修改贝叶斯正则化(式 13.23):对不同权值组用不同的 \(\alpha\) 参数,例如第一层权值矩阵每一列各有一个 \(\alpha\);若某输入元素无关,对应 \(\alpha\) 会变大,迫使该列权值都很小,于是可删去该输入(这就是自动相关性确定 ARD 的思想)。另一个方法是训练后的敏感性分析(见 22.6)。
22.4 训练网络(PDF p.895–900)
权值初始化。
- 多层网络:一般设为小随机值(如输入归一化到 \([-1,1]\) 时,均匀分布于 \([-0.5,0.5]\))。第 12 章已述:全设为 0 可能正好落在性能曲面的鞍点;初值太大则 sigmoid 饱和,落在曲面平坦区。
- Nguyen–Widrow 方法([WiNg90]/[NgWi90],两层网络):设定第一层权值大小,使每个 sigmoid 的线性区覆盖输入范围的 \(1/S^1\);再随机设偏置,使各 sigmoid 的中心随机落在输入空间中。具体(输入归一化到 \([-1,1]\)):第一层权值矩阵第 \(i\) 行 \({}_i\mathbf w^1\) 取随机方向,模长 \(\|{}_i\mathbf w^1\|=0.7(S^1)^{1/R}\)(\(R\) 为输入维数);\(b_i^1\) 取 \([-\|{}_i\mathbf w^1\|,\ \|{}_i\mathbf w^1\|]\) 上的均匀随机值。
- 竞争网络:也可用小随机数;或从训练集中随机选若干输入向量作为权值矩阵的初始行,保证初始权值在输入范围内,减少死神经元(dead units,第 16 章)。SOM 不存在死神经元问题:初始邻域足够大,训练初期所有神经元都有机会学习,会把所有权值向量带到合适区域;但若初始行就在活跃输入区域,收敛更快。
训练算法选择。
- 多层网络一般用基于梯度或 Jacobian 的算法(第 12 章),可批量(batch)或序贯(sequential,又称增量、逐模式、随机)实现。序贯最速下降(式 11.13)每呈现一个输入就更新;批量(p.12-7)先累加所有输入的梯度再更新。需要在线/自适应运行时用序贯;但许多更高效的算法(共轭梯度、牛顿类)本质上是批量算法。
- 权值和偏置不超过几百个、用于函数逼近时,Levenberg–Marquardt(式 12.31)通常最快;权值达到上千时,矩阵求逆计算量随权值数急剧增长,不如某些共轭梯度算法。大网络用 Scaled Conjugate Gradient([Moll93])很高效,也适合模式识别;LM 在模式识别中效果较差,因为最后一层 sigmoid 工作在远离线性区的地方。
- 可序贯实现的算法中最快的是**扩展卡尔曼滤波(EKF)**类算法,与 Gauss–Newton 的序贯实现密切相关,但不需要对近似 Hessian 求逆;[PuFe97] 的解耦 EKF(decoupled EKF)似乎最高效。
停止准则。
- 除线性可分问题上的感知机(第 4 章)外,多层网络训练误差一般不会恰好为零,需要其他准则。
- 误差达到某阈值:难以知道可接受的误差水平。
- 固定迭代次数:最简单;因难以预知所需次数,上限一般设得较高;若到上限还未收敛,可用本轮最终权值作初值重启。
- 梯度范数小于阈值:极小点处梯度为零;但多层网络性能曲面有许多平坦区,梯度也小,阈值要设得很小(如均方误差、归一化目标时取 \(10^{-6}\)),以免过早停止。
- 每次迭代性能下降量很小:同样可能过早停止,多层网络训练中性能常常在若干次迭代中几乎不变然后突然下降。训练结束后在双对数坐标上看训练性能曲线(图 22.5,误差平方和对 epoch)来确认收敛。
- 提前停止:验证集性能连续若干次迭代上升时停止。除防止过拟合外还大幅节省计算——多数实际问题中验证误差会先于其他准则触发。
- 训练是迭代过程,即使算法收敛,训练后分析仍可能建议修改网络重训;每个候选网络应训练多次以确保达到全局极小。
- 竞争网络(如 SOFM)没有显式性能指标或梯度可监控,只能到最大迭代次数停止。SOFM 的学习率和邻域随时间减小,邻域通常在训练结束时减到零,因此最大迭代次数同时决定训练终点与学习率、邻域的衰减速度,是非常重要的参数,一般取神经元数的十倍以上;训练后仍需分析,可能要用不同训练长度多次训练。
性能函数选择。
- 多层网络标准指标是均方误差。所有输入等可能出现时:
\[F(\mathbf x)=\frac{1}{QS^M}\sum_{q=1}^Q(\mathbf t_q-\mathbf a_q)^T(\mathbf t_q-\mathbf a_q)=\frac{1}{QS^M}\sum_{q=1}^Q\sum_{i=1}^{S^M}(t_{i,q}-a_{i,q})^2.\qquad(22.4,22.5)\]外部比例因子不影响最优权值位置,误差平方和与均方误差给出相同权值;但适当缩放便于比较不同大小数据集上的误差。
- 平均绝对误差:对一两个大误差不敏感,对离群值更稳健。推广为 Minkowski 误差:
\[F(\mathbf x)=\frac{1}{QS^M}\sum_{q=1}^Q\sum_{i=1}^{S^M}|t_{i,q}-a_{i,q}|^K,\qquad(22.6)\]\(K=2\) 为均方误差,\(K=1\) 为平均绝对误差。
- 正则化指标:均方误差加均方权值(第 13 章),贝叶斯正则化用贝叶斯方法选正则化参数,是防过拟合的优秀方法。
- 分类问题可用交叉熵(cross-entropy)([Bish95]):
\[F(\mathbf x)=-\sum_{q=1}^Q\sum_{i=1}^{S^M}t_{i,q}\ln\frac{a_{i,q}}{t_{i,q}},\qquad(22.7)\]目标取 0/1 表示类别归属,最后一层通常配 softmax。
- 第 11 章的反向传播对任何可微性能指标都适用;更换性能指标只需改最后一层敏感度的初始化(式 11.37)。
多次训练与网络委员会。
- 单次训练可能陷入局部极小。最好用不同初值重启多次,选性能最好的网络;5–10 次重启几乎总能得到全局最优([HaBo07],该文表明多次重启局部优化与全局随机优化方法效果相当但计算更少)。
- 网络委员会(committee of networks)([PeCo93]):每次训练随机选验证集、随机初始化,训练出 \(N\) 个网络后联合输出:函数逼近取各网络输出的简单平均;分类用多数投票。委员会性能通常优于最好的单个网络;各网络输出的离散程度还可用作委员会输出的误差棒/置信度。
22.5 训练后分析(PDF p.900–911)
按四类应用组织。
拟合:回归分析。 对网络输出与目标做线性回归
模式识别:混淆矩阵与 ROC。
- 混淆矩阵(confusion/misclassification matrix):列为目标类,行为输出类。图 22.8 例子共 214 个数据点:类 1 正确 47 个(22.0%;正文写作 41,与图中数字不符,以图为准),类 2 正确 162 个(75.7%),对角为正确分类;左下格 4 个(1.9%)为类 1 被误判为类 2,若类 1 为正类,则为假阴性(false negative,第二类错误 Type II);右上格 1 个(0.5%)为类 2 被误判为类 1,为假阳性(false positive,第一类错误 Type I)。底行(各目标类,即召回率):目标类 1 共 51 个,92.2%(47/51)被正确识别;目标类 2 共 163 个,99.4%(162/163)被正确识别。右列(各输出类,即精确率):判为类 1 的 48 个中 97.9%(47/48)正确,判为类 2 的 166 个中 97.6%(162/166)正确。右下角总正确率 97.7%(误差 2.3%)。
- ROC 曲线(receiver operating characteristic):把网络输出与从 \(-1\) 到 \(+1\) 变化的阈值比较(最后一层为 tansig),高于阈值判为类 1,否则类 2;每个阈值下统计真阳性率和假阳性率,得到曲线上一点,扫过阈值得到整条曲线(图 22.9,横轴假阳性率、纵轴真阳性率)。理想曲线经过 \((0,1)\)(无假阳性、全真阳性);随机猜测对应经过 \((0.5,0.5)\) 的对角线。
聚类:SOM 指标。
- 量化误差(quantization error):每个输入到最近原型距离的平均,衡量映射分辨率。神经元多时可人为变小,神经元数与输入数相同时可为零(过拟合);神经元数不显著少于输入数时,该指标无意义。
- 拓扑误差(topographic error):最近原型与次近原型在特征映射拓扑中不相邻的输入所占比例,衡量拓扑保持。训练良好的 SOM 中,拓扑上相邻的原型在输入空间也相邻,拓扑误差应为零。
- 失真度量(distortion measure):
\[E_d=\sum_{q=1}^Q\sum_{i=1}^S h_{ic_q}\|{}_i\mathbf w-\mathbf p_q\|^2,\qquad c_q=\arg\min_j\|{}_j\mathbf w-\mathbf p_q\|,\qquad(22.14,22.15)\]\(h_{ij}\) 为邻域函数。最简单的 \(h_{ij}\):原型 \(i\) 在原型 \(j\) 的预设邻域半径内取 1,否则取 0;也可用连续衰减的高斯邻域 \(h_{ij}=\exp\big(-\|{}_i\mathbf w-{}_j\mathbf w\|^2/(2d^2)\big)\)(式 22.16),\(d\) 为邻域半径。
预测:误差相关性检验。 两个关键原则:(1) 预测误差在时间上不应相关;(2) 预测误差不应与输入序列相关。否则就能预测误差、从而改进原预测。
- 样本自相关函数:
\[R_e(\tau)=\frac{1}{Q-\tau}\sum_{t=1}^{Q-\tau}e(t)e(t+\tau).\qquad(22.17)\]若误差为白噪声,除 \(\tau=0\) 外 \(R_e(\tau)\) 应接近 0。近似 95% 置信区间([BoJe96]):\[-\frac{2R_e(0)}{\sqrt Q}<R_e(\tau)<\frac{2R_e(0)}{\sqrt Q},\qquad(22.18)\]若对所有 \(\tau\ne0\) 都满足,则认为 \(e(t)\) 为白噪声。图 22.10(训练不足)有超出边界的值;图 22.11(训练成功)除 \(\tau=0\) 外都在界内。误差有自相关说明网络抽头延迟线长度应增加。
- 样本互相关函数:
\[R_{pe}(\tau)=\frac{1}{Q-\tau}\sum_{t=1}^{Q-\tau}p(t)e(t+\tau),\qquad(22.19)\]无相关时对所有 \(\tau\) 都应接近 0,95% 区间\[-\frac{2\sqrt{R_e(0)R_p(0)}}{\sqrt Q}<R_{pe}(\tau)<\frac{2\sqrt{R_e(0)R_p(0)}}{\sqrt Q}.\qquad(22.20)\]图 22.12(训练不足)超界,图 22.13(训练成功)全部在界内。对 NARX 网络,误差与输入相关提示应增加输入和反馈路径上的延迟线长度。
过拟合与外推。 数据分三部分:训练集算梯度和更新权值;验证集用于在过拟合前停止训练(用贝叶斯正则化时可并入训练集);测试集预测未来性能,是网络质量的度量。测试性能不足通常有四种原因:
- 陷入局部极小:用 5–10 组随机初值重训,训练误差最小者一般代表全局极小;
- 神经元不够:训练、验证、测试误差相近但都太大,应增加隐层神经元重训;用贝叶斯正则化时表现为有效参数数接近总参数数(网络足够大时,有效参数数应低于总参数数);
- 过拟合:验证误差远大于训练误差;即使用提前停止,若训练过快也可能过拟合,可改用较慢的训练算法重训;
- 外推:训练与验证误差相近、测试误差明显更大,说明测试数据落在训练/验证范围外,需要更多数据——可把测试数据并入训练/验证数据再收集新的测试数据,直到三个集合结果相近。
三者误差相近且足够小时可以使用网络,但仍需警惕外推:难以保证训练数据涵盖所有将来用法。新颖性检测(novelty detection):训练一个伴随的竞争网络对多层网络训练集的输入聚类;使用时把同一输入送入竞争网络,若输入到最近原型的距离大于该原型到其簇中最远训练成员的距离,就怀疑在外推。
敏感性分析(sensitivity analysis)。 评估各输入元素的重要性,删除不重要的输入可简化网络、减少计算、帮助防止过拟合。没有方法能绝对确定重要性,但敏感性分析有帮助:计算网络响应对各输入元素的导数,导数小的可删。由于网络非线性,导数随输入变化,不能用单个导数;可取训练集上导数绝对值的平均或均方根,或计算误差平方和对每个输入元素的导数。后者用反向传播的简单变形(式 11.44–11.47):由式 11.32 的敏感度 \(s^m_i=\partial\hat F/\partial n^m_i\)(\(\hat F\) 为单个误差平方),链式法则
22.6 结语与延伸阅读(PDF p.912–914)
结语。 训练是包含数据收集与预处理、结构选择、训练、训练后分析的迭代过程。后面五章用实际案例演示:函数拟合、密度估计、模式识别、聚类、预测。
延伸阅读。 [Bish95] Bishop《Neural Networks for Pattern Recognition》,统计视角;[BoJe94] Box–Jenkins–Reinsel《Time Series Analysis》(第 4 版,2008);[HaBo07] 多次重启局部优化 vs. 随机全局优化;[HeOh97] 用神经网络从 12 导联心电图检测急性心梗;[Joll02] Jolliffe《Principal Component Analysis》;[LeCu98] LeCun 等“Efficient BackProp”,多层网络训练实用技巧;[Moll93] 标度共轭梯度;[NgWi90] Nguyen–Widrow 初始化;[PeCo93] 网络集成(委员会);[PuFe97] 解耦 EKF 训练;[RaMa05] 用神经网络与修正新颖性采样构造从头算势能面;[ScSm99] 核 PCA。
(本章无习题。)
本章要点
神经网络训练是“数据 → 结构 → 算法 → 训练 → 分析”的迭代闭环,先确认线性方法不够再用神经网络。数据要覆盖使用范围(网络不会外推),按约 70/15/15 随机划分并检查代表性;输入、目标都要归一化,必要时做对数等非线性变换、PCA 特征提取,分类目标用独热编码并把 tansig 目标设在 \(\pm0.76\),缺失输入用均值填补加标志位。拟合用 tansig 隐层 + 线性输出,分类用 sigmoid/softmax 输出,预测用 FTDNN 或 NARX;神经元宁多勿少,配合提前停止或贝叶斯正则化。初始化用小随机数或 Nguyen–Widrow;小网络拟合用 LM,大网络/分类用 SCG,在线用 EKF;多次重启(5–10 次)或网络委员会。训练后:拟合看回归 \(R\)、误差直方图并分子集比较;分类看混淆矩阵与 ROC;聚类看量化误差、拓扑误差、失真;预测看误差自相关和误差–输入互相关是否落在 \(\pm2/\sqrt Q\) 量级的置信带内;根据训练/验证/测试误差的相对大小诊断局部极小、容量不足、过拟合、外推;用新颖性检测防外推,用敏感性分析 \((\mathbf W^1)^T\mathbf s^1\) 做输入选择。
与量化交易的关联
本章是全书与量化实务最贴近的一章,几乎每条建议都能直接搬到因子建模和收益预测中,但要注意金融数据的特殊性:
- 数据划分:书中建议随机划分,在金融时间序列上会造成前视偏差和信息泄漏(相邻样本高度相关、标签窗口重叠),必须改为按时间顺序的滚动/扩展窗口划分,并在训练集与验证/测试集之间留间隔(purging、embargo)。“验证误差远大于训练误差 → 过拟合”的诊断在回测中同样成立,“测试误差显著更大 → 外推”对应市场状态切换(regime shift)。
- 预处理:因子截面标准化(z-score,式 22.2)、按分位数映射到 \([-1,1]\)(类似式 22.1)、对市值和成交量取对数、缺失值用截面均值/中位数填补并加缺失标志,都是因子工程的标准步骤。注意归一化统计量必须只用训练期数据计算。PCA 用于因子降维与风险模型的统计因子。
- 网络委员会:对应多随机种子集成、bagging,能显著降低收益预测模型的方差,各成员预测的离散度可作为信号置信度,用于仓位缩放。
- 预测残差检验:自相关与互相关检验(式 22.17–22.20)就是 Ljung–Box 类白噪声检验的雏形,用于检验收益预测模型、波动率模型的残差是否还有可利用的结构。
- 分类指标:涨跌方向分类可用混淆矩阵、ROC/AUC 评估;但量化中更关心按预测值分组的收益、IC/RankIC 等,与分类准确率不完全一致。
- 敏感性分析与输入选择:\((\mathbf W^1)^T\mathbf s^1\) 是基于梯度的特征重要性,可用于剔除无效因子;ARD 式的分组正则化对应因子组稀疏选择。
- 新颖性检测:可用于实盘监控——当前特征向量远离训练样本分布时,降低模型权重或停止交易。
- 损失函数:Minkowski 误差 \(K=1\)(MAE)对极端收益更稳健;分类配交叉熵与 softmax。
推荐习题
本章无习题。建议的实践练习:用一组日频因子数据,分别按随机划分和时间顺序划分训练同一网络,比较测试误差差异,体会信息泄漏;对训练好的预测模型画残差自相关图并与 \(\pm2/\sqrt Q\) 带比较;用 5–10 个随机种子训练委员会,比较单网络与委员会的样本外表现。
第 23 章 案例研究 1:函数逼近 Case Study 1: Function Approximation(PDF p.915–926)
23.0 目标(PDF p.915)
第 23–27 章是一组案例研究,覆盖五类重要应用:函数逼近(非线性回归)、密度/概率估计、模式识别(分类)、聚类、预测(时间序列分析、系统辨识、动态建模)。每个案例按第 22 章的设计/训练流程逐步走一遍。本章的函数逼近:训练集由响应变量(因变量)和一个或多个解释变量(自变量)组成,网络学习从解释变量到响应变量的映射。案例系统是智能传感器(smart sensor):一个或多个标准传感器加神经网络,输出对单个参数的校准测量;具体是用两块太阳能电池的电压估计物体在一维上的位置。
23.1 智能位置传感器系统(PDF p.916–917)
函数逼近即建立输入变量到输出变量的映射,例如由社区特征估计房价,或由反应器温度压力估计炼油厂汽油辛烷值 [FoGi07]。 装置(图 23.1)。 物体悬挂在光源与两块太阳能电池之间,影子落在电池上使电压下降。物体位置 \(y\) 增大时,依次是 \(v_1\) 下降、\(v_2\) 下降、\(v_1\) 回升、\(v_2\) 回升(图 23.2)。目标是由两个电压求位置。这是高度非线性的关系,需要多层网络。这是典型的“学习函数的逆”问题:正向函数是 \(y\mapsto(v_1,v_2)\),我们要学 \((v_1,v_2)\mapsto y\)。
23.2 数据收集与预处理(PDF p.917–918)
- 在若干已校准位置测量两块电池电压,物体是一个乒乓球,共 67 组测量(图 23.3),位置单位英寸、电压单位伏。每条曲线在 0 V 的平坦段是球影完全覆盖该电池的区域;若影子大到同时覆盖两块电池,就无法由电压恢复位置。
- 划分:因使用贝叶斯正则化,不需要验证集;留出 15% 作测试:按位置排序后每隔六或七个点取一个,共 10 个测试点,测试点完全不参与训练,只在训练完成后用作未来性能指标。
- 输入 \(\mathbf p=[v_1,v_2]^T\)(23.1),目标 \(t=y\)(23.2)。用式 (22.1) 把输入和目标都缩放到 \([-1,1]\)(图 23.4)。
23.3 结构选择(PDF p.918–919)
多层网络:两元输入,单输出(球位置)。隐层 tansig、输出层线性(图 23.5:\(\mathbf a^1=\mathrm{tansig}(\mathbf W^1\mathbf p+\mathbf b^1)\),\(a^2=\mathrm{purelin}(\mathbf W^2\mathbf a^1+b^2)\)),这是函数逼近的标准网络,第 11 章已证明是万能逼近器。有时用两个隐层,但通常先试一个。隐层神经元数 \(S^1\) 取决于被逼近的函数,训练前一般无法知道。
23.4 训练(PDF p.919–921)
- 用第 22 章 Nguyen–Widrow 方法初始化,用贝叶斯正则化(第 13 章)训练。该算法使网络泛化良好而无需验证集;验证集数据可以加回训练集,因此效果常优于提前停止(下一章给出提前停止的例子)。
- \(S^1=10\),训练 100 次迭代后性能变化很小(图 23.6,SSE 对迭代次数的双对数图)。
- 多次重启防局部极小:五次不同初值(Nguyen–Widrow)的最终 SSE 见表 23.1:\(1.121\times10^{-3}\)、\(8.313\times10^{-4}\)、\(1.068\times10^{-3}\)、\(8.672\times10^{-4}\)、\(8.271\times10^{-4}\)。都相近,第 2、4、5 次略小,任一组权值都能得到满意网络。
- 有效参数个数 \(\gamma\)(第 13 章贝叶斯正则化计算的量,图 23.7):收敛到 17.4,而 2-10-1 网络共 41 个参数,只用了约 40%;五次训练中 \(\gamma\) 都在 17–20 之间。提示若关心计算量可用更小网络。
- 不同隐层规模(表 23.2,最终训练 SSE):\(S^1=3\):\(4.406\times10^{-3}\)(总参数仅 13 个,明显更差);\(S^1=5\):\(9.227\times10^{-4}\);\(S^1=8\):\(8.088\times10^{-4}\);\(S^1=10\):\(8.672\times10^{-4}\);\(S^1=20\):\(8.096\times10^{-4}\)。有效参数约 20,预计 5 个隐层神经元(21 个参数)就够,实验证实除 \(S^1=3\) 外都大致相当。
- 结论:贝叶斯正则化允许训练几乎任意规模的网络而只有效使用所需参数数。实时应用等关心计算时间时用 \(S^1=5\),否则原 \(S^1=10\) 网络即可;不必花大量时间找最优神经元数,算法保证不过拟合。
23.5 验证(PDF p.921–924)
- 输出–目标散点图(图 23.8,归一化单位):训练集与测试集的点都紧贴 45° 线,拟合极好;测试集拟合与训练集一样好,说明没有过拟合。
- 误差直方图(图 23.9):先把网络输出反归一化回英寸,式 (22.1) 对目标的逆变换为
\[\mathbf a=(\mathbf a^n+\mathbf 1).*(\mathbf t^{max}-\mathbf t^{min})/2+\mathbf t^{min},\qquad(23.3)\]\(\mathbf a^n\) 为网络原始输出(拟合归一化目标),\(.*\) 为逐元素乘。再与原始目标相减得英寸误差。训练、测试集几乎所有误差都在 0.01 英寸以内,已达原始测量精度,不可能更好。
- 网络响应曲面(图 23.10,原始单位:伏 → 英寸):蓝圈是球移动时电压走过的路径。贝叶斯正则化得到的响应虽然高度非线性但很光滑。训练数据只落在蓝圈路径上;路径之外的响应形状对传感器无关紧要(网络不会在那里使用),重训后那里的形状可能完全不同,而路径附近的响应总是一样。这一点对很多应用很重要:正常运行时往往只访问输入空间的一小部分,网络只需在这些区域拟合,所以即使输入维数大,数据量也可以不大;前提是训练数据必须覆盖全部可能的运行范围。
数据文件:ball_p.txt(输入)、ball_t.txt(目标),随附录 C 的演示软件提供。
23.6 结语与延伸阅读(PDF p.925–926)
本案例代表一大类“软传感器/智能传感器”应用:用神经网络融合多个原始传感器输出,得到关键变量的校准测量。sigmoid 隐层 + 线性输出层的多层网络很适合,贝叶斯正则化是很好的训练算法。下一章做概率估计,仍用多层网络但改变输出层传递函数。[FoGi07]:炼油厂用堆叠神经网络软传感器由反应器温度压力预测辛烷值。
(案例章无习题。)
本章要点
函数逼近的标准流程:归一化到 \([-1,1]\) → 1 隐层 tansig + 线性输出 → Nguyen–Widrow 初始化 → 贝叶斯正则化训练(可省去验证集)→ 多次重启确认非局部极小 → 用有效参数个数 \(\gamma\) 判断网络是否过大 → 用测试集散点图和反归一化后的误差直方图验证。网络只需在实际使用的输入区域内拟合,但训练数据必须覆盖全部使用范围。
与量化交易的关联
“软传感器”思想对应量化中的不可直接观测量的估计:用多个可观测指标估计一个难测变量,例如由高频盘口特征估计瞬时有效价差、由期权报价估计隐含波动率曲面上的缺失点、由宏观高频指标做 GDP 现时预测(nowcasting)。贝叶斯正则化与有效参数个数为“网络该多大”提供了可操作的判断,对小样本的金融回归(如月频因子收益预测)尤其有价值。“只在使用区域内拟合、区域外响应无意义”提醒:模型在训练样本未覆盖的市场状态下(极端波动、流动性枯竭)输出不可信。需注意本案例按位置等间隔抽测试点,适用于静态校准问题,不适用于时间序列。
推荐习题
无原书习题。建议用 ball_p.txt/ball_t.txt 复现:比较贝叶斯正则化与提前停止,观察 \(\gamma\) 随隐层规模的变化。
第 24 章 案例研究 2:概率估计 Case Study 2: Probability Estimation(PDF p.927–940)
24.0 目标(PDF p.927–928)
概率估计是函数逼近的特例:响应变量是一组概率,必须为正且和为 1,希望网络自动满足这些条件。例如由化验结果估计患某病的概率,或由一组市场条件估计某金融工具价格上涨的概率(原书原话)。本案例:金刚石化学气相沉积(CVD),碳二聚体(一对键合的碳原子)射向金刚石表面,根据二聚体的特征(平动能、入射角等)估计各反应(化学吸附、散射等)的概率。细节见 [AgSa05]。
24.1 CVD 过程描述(PDF p.928–929)
碳二聚体射向金刚石基底,假设三种反应:化学吸附(chemisorption)——原子与基底结合;散射(scattering)——原子弹开;解吸(desorption)——原子与基底结合一段时间后释放。还有一种概率很小的反应被忽略。 记号(图 24.1):黑圈为二聚体,有向线为初速度方向;蓝星为基底中心碳原子位置;入射角 \(\theta\) 为初速度方向与表面法线(\(z\) 方向)的夹角;冲击参数 \(b\) 为中心原子到初速度向量与表面交点(坐标原点)的距离;角 \(\phi\) 为 \(x\) 轴与原点到中心原子连线的夹角。
24.2 数据收集与预处理(PDF p.929–931)
- 分子动力学(MD)模拟生成数据:按已知物理定律计算各原子受力并模拟运动 [RaMa05]。系统共 324 个原子:282 个金刚石基底原子(模拟晶面,顶层有 40 个氢原子覆盖),加 C2 二聚体 2 个原子。\((x,y)\) 平面为基底;除中心原子和边界原子外,顶层碳原子都被氢原子封端,反应发生在中心原子附近。
- 研究反应概率对 \(b,\theta,\phi\)、转动速度 \(v_{rot}\)、平动速度 \(v_{trans}\) 的依赖。C2 初始振动能设为零点能,晶格温度恒为 600 K。
- 真概率未知,只能用蒙特卡洛估计。记号:真概率 \(P_X(\mathbf p)\),\(X\in\{C,S,D\}\) 分别为化学吸附、散射、解吸,
\[\mathbf p=[b,\ \theta,\ \phi,\ v_{trans},\ v_{rot}]^T;\qquad(24.1)\]网络估计 \(P^{NN}_X(\mathbf p)\);蒙特卡洛估计\[P^{MC}_X(\mathbf p)=\frac{N_X}{N_T},\qquad(24.2)\]\(N_X\) 为导致反应 \(X\) 的 MD 轨迹数,\(N_T\) 为总轨迹数。每条轨迹结果取决于大量变量:\(\mathbf p\) 中的参数,以及 C2 初始取向、转动平面角、振动能与相位、系统温度、基底所有振动相位等;只关心 \(\mathbf p\) 的影响,其余变量每次随机设定(零点振动能与 600 K 温度除外)。“蒙特卡洛”指一组随机设定其余变量的模拟,“MD 模拟”指单条轨迹的计算。
- 化学家的标准做法是在每个感兴趣的 \(\mathbf p\) 值上跑一系列蒙特卡洛模拟,非常耗时,要求高精度时所需次数很大。本案例目标:训练网络学到真概率作为 \(\mathbf p\) 的函数。
- 目标用 \(P^{MC}_X(\mathbf p)\),可看作真概率的含噪版本;网络需在噪声值之间插值、得到 \(P_X(\mathbf p)\) 的准确估计而不过拟合——正好用第 13 章的泛化方法。
- 数据集 2000 个 \(\{\mathbf p,P^{MC}_X(\mathbf p)\}\) 对:随机取 1400(70%)训练、300(15%)验证、300 测试。\(\mathbf p\) 按物理上合适的分布随机生成;每个 \(P^{MC}_X\) 用 \(N_T=50\) 条轨迹,全数据集共 \(2000\times50\) 条轨迹。
- 输入原始单位:\(\theta,\phi\) 为弧度,\(b\) 为埃,\(v_{trans}\) 为埃/皮秒,\(v_{rot}\) 为弧度/皮秒;用式 (22.1) 缩放到 \([-1,1]\)。目标是概率,本就在 \([0,1]\),输出层用 softmax(输出在 0–1),所以目标不缩放。
24.3 结构选择(PDF p.931–933)
- 多层网络,5 维输入。目标可用三元向量
\[\mathbf t=[P^{MC}_C(\mathbf p),\ P^{MC}_S(\mathbf p),\ P^{MC}_D(\mathbf p)]^T,\qquad(24.3)\]或三个网络各估一个概率;两种都试过,结果相近。用单网络三输出的好处:三个目标是概率,总在 0–1 且和为 1,正适合 softmax(式 22.3):\[a_i=f(n_i)=\exp(n_i)\Big/\sum_{j=1}^S\exp(n_j).\qquad(24.4)\]
- softmax 与其他传递函数不同:每个输出 \(a_i\) 受所有净输入 \(n_j\) 影响(其他函数中 \(n_i\) 只影响 \(a_i\))。这不会给训练带来实质困难,第 11 章反向传播(式 11.44–11.45)仍可用,只是传递函数导数不再是对角矩阵:
\[\dot{\mathbf F}^m(\mathbf n^m)=\begin{bmatrix}a^m_1\big(\sum_ia^m_i-a^m_1\big)&-a^m_1a^m_2&\cdots&-a^m_1a^m_{S^m}\\-a^m_2a^m_1&a^m_2\big(\sum_ia^m_i-a^m_2\big)&\cdots&-a^m_2a^m_{S^m}\\\vdots&&\ddots&\vdots\\-a^m_{S^m}a^m_1&-a^m_{S^m}a^m_2&\cdots&a^m_{S^m}\big(\sum_ia^m_i-a^m_{S^m}\big)\end{bmatrix}\qquad(24.5)\]因 \(\sum_ia_i=1\),对角元即 \(a_i(1-a_i)\),非对角元 \(-a_ia_j\),即 \(\mathrm{diag}(\mathbf a)-\mathbf a\mathbf a^T\)。
- 完整结构(图 24.2):5 输入 → \(S^1\) 个 tansig 隐层神经元 → 3 个 softmax 输出神经元。\(S^1\) 依函数复杂度而定,须在训练中确定:既要准确拟合训练数据又不过拟合。
24.4 训练(PDF p.933–935)
- 用标度共轭梯度(SCG,[Mill93],即 [Moll93])训练;其他共轭梯度或 LM 算法也行。目标噪声大,不期待极高精度。用提前停止防过拟合:验证误差 25 次迭代不再改进就停止。典型训练(图 24.3,\(S^1=10\)):验证性能在第 69 次迭代达最小,继续到第 94 次仍未改进,于是保存第 69 次的权值。
- 隐层规模:比较训练与验证 RMSE(三行依次为 \(P_C,P_S,P_D\)):
- 表 24.1,\(S^1=10\):训练 0.0496/0.0634/0.0586,验证 0.0439/0.0659/0.0604,两者大致相同;验证集随机且独立于训练集,说明拟合在相关输入范围内一致、无过拟合。
- 表 24.2,\(S^1=2\):训练 0.0634/0.0669/0.0617,验证 0.0627/0.0704/0.0618,一致但误差高于 \(S^1=10\)。
- 表 24.3,\(S^1=20\):训练 0.0432/0.0603/0.0569,验证 0.0444/0.0643/0.0595,验证略高于训练,可能有轻微过拟合;且训练、验证误差都没有比 \(S^1=10\) 显著更小。结论:10 个隐层神经元足够。
- 多次重启(Nguyen–Widrow 初始化):五次最终验证 MSE(表 24.4)为 \(3.074,2.953,3.031,3.105,3.050\ (\times10^{-3})\),都相近,说明每次都到达全局极小;若某次显著更低,就用那次的权值。
24.5 验证(PDF p.935–938)
- 散点图(图 24.4,\(N_T=50\)):网络输出与目标有强线性关系,但散布相当大。原因:目标不是真概率 \(P_X\) 而是含噪的 \(P^{MC}_X\)。
- 二项分布下约 95% 的情况满足
\[P_X-2\sigma<P^{MC}_X<P_X+2\sigma,\qquad \sigma=\sqrt{\frac{P_X(1-P_X)}{N_T}}.\qquad(24.6,24.7)\]图 24.5 画出 \(N_T=50\) 时的预期散布带;对比图 24.4 可见散布完全由 \(P^{MC}_X\) 的统计波动解释。
- 进一步验证:另生成测试数据,每个 \(P^{MC}_X\) 用 500 次蒙特卡洛(\(N_T=500\)),输入到用 \(N_T=50\) 数据训练的同一网络。散点图(图 24.6)散布大幅缩小,尽管网络没变。说明网络拟合的是真概率 \(P_X(\mathbf p)\),而不是 \(P^{MC}_X(\mathbf p)\) 的统计波动。
- 用训练好的网络做参数研究:图 24.7 给出反应概率随冲击参数 \(b\) 的变化(固定 \(\phi=5.4\) rad、\(\theta=0.3\) rad、\(v_{rot}=0.004\) rad/fs、\(v_{trans}=0.004\) Å/fs):\(b\) 增大时化学吸附概率下降,散射与解吸概率上升。传统方法做这样的研究需要上千次模拟;网络已捕获 \(\mathbf p\) 与反应概率的关系,任意研究只需在不同输入点计算网络响应。网络在含噪数据点间平滑插值,提前停止防止了对噪声的过拟合。
数据文件:cvd_p.txt、cvd_t.txt(原始数据),cvd_p500.txt、cvd_t500.txt(\(N_T=500\) 测试集)。
24.6 结语与延伸阅读(PDF p.939–940)
用蒙特卡洛模拟得到的反应概率估计作目标,网络在不过拟合蒙特卡洛误差的情况下捕获了真实概率函数,关键是提前停止(独立验证集误差上升即停止)。下一章做模式识别。[AgSa05]:用前馈网络预测 C2 二聚体与活化金刚石 (100) 表面反应的 MD 模拟结果;[Mill93]:SCG,每步所需内存和计算最少的快速批量算法;[RaMa05]:神经网络用于 MD 模拟。
(案例章无习题。)
本章要点
概率估计用 softmax 输出层保证输出非负且和为 1,其导数矩阵为 \(\mathrm{diag}(\mathbf a)-\mathbf a\mathbf a^T\),反向传播照常适用。目标本身是有噪声的频率估计(方差 \(P(1-P)/N_T\)),网络配合提前停止能平滑掉噪声、学到真概率;验证方法是用更多试验次数(\(N_T=500\))的低噪声测试集,看散布是否显著缩小。训练好的网络可作为昂贵模拟的廉价代理模型(surrogate),做任意参数扫描。
与量化交易的关联
- 方向/事件概率预测:原书明确提到用市场条件估计金融工具上涨概率。多分类 softmax 可直接用于“涨/平/跌”三分类,或违约/提前还款/正常还款等互斥事件概率(信用与 MBS 建模)。
- 含噪频率目标:量化中常把“某条件下未来 N 日上涨的经验频率”当标签,本章的二项误差带 \(2\sqrt{P(1-P)/N_T}\) 给出判断“模型预测与经验频率的差异是否只是抽样噪声”的标准;验证思路(用更大样本的低噪声测试集)对评估概率预测的校准很有用。
- 代理模型:用神经网络拟合昂贵的蒙特卡洛定价结果(奇异期权、XVA、路径依赖产品),训练后可毫秒级求值并做参数敏感性扫描,正是本章“用网络替代大量 MD 模拟”的思路,在衍生品定价与风险计算中已广泛使用。
- 注意金融中正负样本比例和非平稳性比本案例严重得多,概率输出还需做校准检验(如可靠性图)。
推荐习题
无原书习题。建议练习:用模拟数据(已知真概率的 logistic 模型,每点 \(N_T=50\) 次伯努利试验作目标)复现“散布由二项噪声解释、\(N_T=500\) 测试集散布收缩”的现象。
第 25 章 案例研究 3:模式识别 Case Study 3: Pattern Recognition(PDF p.941–952)
25.0 目标与问题描述(PDF p.941–942)
模式识别要把输入分到目标类别,例:手写邮编、语音单词、由症状识别疾病、指纹识别、白细胞分类。本案例用多层网络从心电图(EKG)识别心肌梗死(myocardial infarction, MI,心脏病发作),演示数据收集、特征提取、结构选择、训练与验证的全过程。 EKG 简介。 EKG 记录心脏电活动随时间的变化,通常是同时记录的一组信号(导联,lead)。标准详细判读用 12 导联(由放置在身体特定位置的 10 个电极计算),有时用 15 导联;每个导联代表身体两点之间的电活动(详见 [Dubi00])。信号形状反映心肌协调收缩时电流在心脏中的路径;若部分心肌因冠状动脉供血不足受损(MI),电流路径改变,训练有素的医生能从 EKG 变化判断是否受损及部位。本案例用 15 导联 EKG 信息训练网络识别 MI。
25.1 数据收集与预处理(PDF p.943–946)
- 数据来自 PhysioNet 数据库 [MoMa01] 的 QT 数据集,包括健康者与 MI 患者。15 个导联:I, II, III, aVR, aVL, aVF, V1–V6, VX, VY, VZ(图 25.1 为一位健康者 lead I 信号片段)。共 447 条记录:79 条健康,368 条 MI。诊断由医生给出,但也可能有误(验证时会再谈)。
- 每条 EKG 是 15 导联、1000 Hz 采样、持续数分钟,数据量巨大,不可能整体输入网络。需先做特征提取:把高维输入映射到低维空间,简化并增强模式识别的稳健性。通用降维方法有线性的 PCA 和非线性的流形学习(manifold learning,如 Isomap [TeSi00]);本案例改用医生常用的特征。
- EKG 原型周期(图 25.2):P、Q、R、S、T 波,PR 间期、PR 段、QRS 时限、ST 段、QT 间期。Einthoven 在 20 世纪初首先仔细测量分析 EKG、命名这些波,并描述了多种心血管疾病的心电特征,1924 年获诺贝尔医学奖,其特征沿用至今。
- 47 个输入特征(由 Lionel Raff 设计提取 [Raff06];“amplitude 导联”指 VX、VY、VZ 平方和的平方根):1 年龄;2 性别(女 −1、男 1);3–7 心率相关(最大、最小心率,心跳平均间隔,平均心率的 rms 偏差,心率分布半高全宽);8–11 QT 间期及校正 QT(最大 T 波导联/所有导联平均);12 所有导联平均 QRS 间期;13–18 PR 间期及其 rms 偏差、负 P 波百分比(最大 P 波导联/所有导联);19 任一 T 波最大幅度;20–21 QT、校正 QT 的 rms 偏差;22–23 ST 段平均长度及 rms 偏差;24–25 平均心率及心率分布 rms 偏差;26 平均 RT 角;27 漏检 R 波数;28–30 未分析或缺失的 QT/PR/ST 间期百分比;31 T 波结束到 Q 之间平均极大值个数;32 RT 角 rms 偏差;33–42 amplitude 导联上的 QRS、ST 段、QT、Bazett 校正 QT、R-R 间期的均值与 rms 偏差;43 QRS 复合波平均面积;44 S 到 T 波结束的平均面积;45 两者面积比;46 每个心跳内 RT 角 rms 偏差的平均;47 amplitude 信号 ST 间期起点的 ST 抬高。
- 总结:447 条记录,每条 47 个输入、一个目标;健康为 1,MI 为 −1。
- 类别不平衡:健康仅 79 条,MI 368 条。若用各误差等权的误差平方和,网络会偏向判 MI。理想办法是收集更多健康数据;不可能时,一种办法是加权误差平方和(健康样本误差权重更高,使两类总贡献相等);更简单的是重复健康记录,使训练集中健康记录数等于 MI 记录数(多花计算,此处不成问题),本案例用后者。
- 划分:随机留 15% 验证、15% 测试;只在训练集中重复健康记录,验证集和测试集不重复。
- 用式 (22.1) 把输入归一化到 \([-1,1]\);输出层用 tansig,目标设为 \(\pm0.76\) 而非 \(\pm1\),避免 sigmoid 饱和造成训练困难(第 22 章)。
25.2 结构、训练(PDF p.946–947)
- 图 25.3:47 输入 → \(S^1\) 个 tansig 隐层 → 1 个 tansig 输出,这是模式识别的标准网络;通常先试一个隐层,\(S^1\) 取决于决策边界复杂度,先取 10,训练后检验。
- 用 SCG([Mill93],对模式识别很高效)训练,提前停止防过拟合。图 25.4(\(S^1=10\)):验证误差在第 16 次迭代最小(图中圆圈),保存该处参数。验证误差曲线并非每次都下降,可能先升后降到更低,所以确认验证误差在 40 次迭代内不再降低才最终停止。
25.3 验证(PDF p.947–950)
- 分类问题输出和目标是离散的,散点图用处不大,改用混淆矩阵。测试集(图 25.5):14 个健康中 13 个正确,71 个 MI 中 66 个正确,总正确率 92.9%(\(79/85\))。最大的错误是 5 个 MI 被判为健康(cell 1,2),1 个健康被判为 MI。按目标类:健康识别率 92.9%,MI 识别率 93.0%;按输出类:判为健康的 18 个中 72.2% 正确,判为 MI 的 67 个中 98.5% 正确。
- ROC 曲线(图 25.6,测试集):理想路径从 (0,0) 到 (0,1) 再到 (1,1),本测试集的曲线接近理想。
- 对数据划分的敏感性:蒙特卡洛验证。 数据集小(尤其健康样本),结果可能依赖于划分。把数据随机划分 1000 次,每次用不同随机初值训练一个网络,平均结果(图 25.7):每个测试集平均约 11.6 个健康者,其中 9.11 个判对(78.4%),2.51 个误判为 MI;约 53.5 个患者,其中 49.83 个判对(93.1%),3.69 个误判为健康;判为健康的输出中 71.2% 正确,判为 MI 的输出中 95.2% 正确;平均测试误差约 9.5%(正确率 90.5%)。测试集患者从未用于训练,这些数字应是对新患者表现的保守估计。
- 误差分布(图 25.8):1000 次试验的百分比误差直方图,均值 9.5%,标准差 3.5,散布相当大——只看单次划分的结果会误导。
- 蒙特卡洛过程的其他用途:(1) 找出无论如何划分都被持续误分的患者,交给临床医生复核:若原标签错了就修正数据库;若标签正确,则用这些病例改进网络——寻找能刻画其关键特征的新特征,或收集更多类似数据加强训练。(2) 把蒙特卡洛中得到的多个网络组合起来投票(选多数网络选择的类别),通常能得到更准确的分类。
数据文件:ekg_p.txt(输入)、ekg_t.txt(目标)。
25.4 结语与延伸阅读(PDF p.951–952)
多数模式识别任务都有特征提取降维步骤,这里提取的是 EKG 原型周期的特征。验证中用了蒙特卡洛:多次随机划分、每次随机初始化训练,分析所有网络以估计未来性能,并分析多数网络都误分的记录以完善数据集。下一章用 SOFM 做聚类。[Dubi00] 心电图判读入门;[MoMa01] PhysioNet 生理信号数据库;[Raff06] 特征设计者 Lionel Raff;[TeSi00] Isomap 非线性降维。
(案例章无习题。)
本章要点
模式识别流程:领域知识驱动的特征提取(把海量原始信号压缩为 47 个特征)→ 处理类别不平衡(重复少数类或加权误差,仅在训练集中做)→ 输入归一化、tansig 输出目标设 \(\pm0.76\) → SCG + 提前停止(耐心期设足够长,因验证误差会先升后降)→ 混淆矩阵与 ROC 验证 → 多次随机划分的蒙特卡洛评估平均误差及其分布,识别持续误分样本,并可用多网络投票提升精度。
与量化交易的关联
- 特征工程优先:本案例不把原始高频信号直接喂给网络,而是提取有含义的统计特征(均值、rms 偏差、比例、缺失比例等),与量化中从 tick 数据构造因子(波动率、价差、订单不平衡、成交间隔统计)的做法一致。“缺失/未分析比例”本身作为特征也值得借鉴。
- 类别不平衡:极端事件(暴跌、违约、欺诈交易)预测中正样本稀少,可用过采样或加权损失;本章强调只在训练集中过采样、验证/测试集保持原始分布,这一点在回测中同样关键,否则评估指标会被高估。
- 混淆矩阵的业务含义:本例最多的错误是“把患者判为健康”(漏报),在风控中对应“把高风险判为低风险”,代价远高于误报;应根据不对称代价选择 ROC 曲线上的阈值。
- 重复随机划分的蒙特卡洛评估:给出性能的分布而不只是点估计(本例误差均值 9.5%、标准差 3.5),对应量化中对策略做多段样本外、多随机种子评估,避免把一次幸运划分的结果当真;但金融数据要用时间序列交叉验证而非随机划分。
- 持续误分样本分析:对应检查长期被模型错判的股票/时期,可能是数据错误(复权、停牌、退市处理),也可能提示缺失的因子。
推荐习题
无原书习题。建议练习:用 ekg_p.txt/ekg_t.txt 复现 1000 次蒙特卡洛划分,比较“重复少数类”与“加权误差”两种不平衡处理,以及多网络投票相对单网络的提升。
第 26 章 案例研究 4:聚类 Case Study 4: Clustering(PDF p.953–964)
26.0 目标与背景(PDF p.953–954)
聚类:按相似性分组,例如按购买模式做市场细分、数据挖掘中划分相关子集、生物信息学中按表达模式给基因分组。本案例用第 16 章的自组织特征映射(SOFM)分析森林覆盖类型,并演示配合 SOFM 的多种可视化工具。 聚类一般没有网络目标,采用无监督训练,不是训练网络产生期望响应,而是分析数据集寻找隐藏模式。应用:数据挖掘、城市规划(按住宅类型与土地用途分区)、图像压缩(找少量原型子图组合表示大量图像)、语音识别(把说话人聚类以简化非特定人识别)、营销(识别客户群)、组织大型文献库。SOFM 的独特之处是能可视化高维数据,本案例重点展示这一点。
26.1 森林覆盖问题(PDF p.954–955)
林务部门需维护准确的自然资源清单,森林覆盖类型是关键属性,但需实地勘察或遥感估计,采集成本高。[BlDe99] 说明可用更容易获得的自变量预测覆盖类型。本章用该数据做聚类分析,看 SOFM 能否把高维自变量空间可视化并揭示覆盖类型之间的关系。 10 个自变量(表 26.1)(原文用 12 个,此处为便于展示只取前 10 个):1 海拔(米);2 坡向(方位角度);3 坡度(度);4 到最近地表水的水平距离(米);5 到最近地表水的垂直距离(米);6 到最近道路的水平距离(米);7 夏至上午 9 点山体阴影指数(0–255);8 夏至正午山体阴影指数;9 夏至下午 3 点山体阴影指数;10 到最近野火起火点的水平距离(米)。 7 种覆盖类型(表 26.2):0 Krummholz(高山矮曲林)、1 云杉/冷杉、2 扭叶松(Lodgepole Pine)、3 西黄松(Ponderosa Pine)、4 三角叶杨/柳、5 白杨、6 花旗松(Douglas-fir)。数据含覆盖类型,但不用于训练,只用来检验 SOM 的聚类能力。
26.2 数据收集与预处理(PDF p.956–957)
- 数据源自 UCI KDD 数据档案 [HeBa99]:美国林务局第 2 区资源信息系统中 30×30 米网格单元的覆盖类型。原数据 581,012 条观测、12 个自变量加覆盖类型;本案例取前 20,000 条、前 10 个自变量。
- 无监督学习一般不划分训练/验证/测试集:无需验证集停止训练,竞争训练通常跑固定迭代次数,全部数据用于训练。
- 用式 (22.1) 缩放到 \([-1,1]\)(SOFM 也可用式 22.2 标准化为均值 0、方差 1)。
- 训练前先看数据:散点图矩阵(图 26.1,变量 7、8、9;对角为直方图,非对角为两两散点图)。看什么:(1) 数据是否充分分布于取值范围,几乎不变的变量应剔除;(2) 变量间相关性,若散点恰落在一条直线上则两变量线性相关,无需同时使用。图中三个阴影指数之间有一定相关但并非线性相关。
26.3 结构选择(PDF p.957–958)
- 具体结构部分依据数据点数确定,使每个原型向量(权值矩阵的一行;输入归属于最近的原型)关联合理数量的数据。数据量增大时神经元数也应增加但慢一些,经验法则:神经元数随数据点数的平方根增长(\(\sqrt{20000}\approx141\))。
- 图 26.2:10 个输入,150 个神经元,特征映射为 15×10 的六边形排列(每个内部神经元有 6 个邻居)。竞争层 \(n_i=-\|{}_i\mathbf w-\mathbf p\|\),\(\mathbf a=\mathrm{compet}(\mathbf n)\)。
- 训练后分析结构是否满意,实践中常尝试几种结构。与有监督训练有明确性能指标(误差平方和)不同,SOFM 没有确定的“最佳性能”标准,目的往往是获得对数据集的洞见,选择最佳结构和训练方案有一定艺术性。
26.4 训练(PDF p.958–959)
- 线性初始化(linear initialization)([Koho95]):计算输入向量协方差矩阵,求两个最大特征值对应的特征向量;\(\mathbf W\) 各行设为输入均值加两特征向量的线性组合,使所有初始权值位于前两个主成分张成的平面上(铺成网格)。比纯随机初始化收敛更快(也可随机选训练集中的输入作初始权值)。
- SOFM 学习规则(式 16.21):
\[_i\mathbf w(q)={}_i\mathbf w(q-1)+\alpha\big(\mathbf p(q)-{}_i\mathbf w(q-1)\big)=(1-\alpha)\,{}_i\mathbf w(q-1)+\alpha\mathbf p(q),\quad i\in N_{i^*}(d),\qquad(26.1)\]\(i^*\) 为获胜神经元,邻域 \(N_i(d)=\{j:d_{ij}\le d\}\)(26.2)。
- 批量 SOM(batch SOM)([Koho93]):所有输入呈现完后才更新权值。先把序贯形式改写为带邻域函数的形式
\[_i\mathbf w(q)={}_i\mathbf w(q-1)+\alpha h_{ii^*}\big(\mathbf p(q)-{}_i\mathbf w(q-1)\big),\qquad h_{ii^*}=\begin{cases}1,&i\in N_{i^*}(d)\\0,&i\notin N_{i^*}(d)\end{cases}\qquad(26.3,26.4)\]批量版本:\[_i\mathbf w(k)=\frac{\sum_{q=1}^Qh_{ii_q}\mathbf p(q)}{\sum_{q=1}^Qh_{ii_q}},\qquad(26.5)\]\(k\) 为迭代次数,\(i_q\) 为输入 \(\mathbf p(q)\) 的获胜神经元。批量算法须区分迭代编号与输入编号(每次迭代呈现所有输入),而序贯算法每个输入一次迭代。学习率不影响批量算法(分子分母同时出现)。对 (26.4) 的邻域函数,批量算法把每个权值设为“该神经元落在其获胜者邻域内的所有输入”的平均。与序贯算法一样,训练中邻域逐步缩小:开始时邻域大,使所有权值进入数据所在区域,然后缩小邻域微调权值位置。
- 批量算法所需迭代次数少得多,但每次计算量大得多。本案例只用了两次批量迭代:第一次邻域大小 4,第二次缩小到 1。
26.5 验证(PDF p.959–962)
- 两个数值指标(见 p.22-23):分辨率与拓扑保持。量化误差:每个数据向量到其获胜神经元的平均距离,过大说明许多输入没有被任何原型充分代表。拓扑误差:最近(获胜)神经元与次近神经元在特征映射拓扑中不相邻的输入比例,小说明拓扑上的邻居在输入空间也是邻居;拓扑保持很重要,后面的可视化工具才有效。本 SOM 最终量化误差 0.535,拓扑误差 0.037(不到 4% 的输入获胜与次近神经元不相邻),训练结束时已获得正确拓扑。
- U 矩阵(unified distance matrix)(图 26.3):显示特征映射中相邻神经元之间的距离。每个神经元一个格,每对相邻神经元之间再加一个格;神经元间的格按对应权值向量距离着色,神经元格按周围值的均值着色。浅色表示距离大。图中映射左侧有一串浅色格,说明左侧神经元对应的簇与中部、右侧显著不同。
- 标注映射(图 26.4):本数据实际知道覆盖类型,可给每个映射格标上离该簇中心最近的输入的覆盖类型。对照 U 矩阵:类型 2(扭叶松)位于映射左边缘;从左到右依次是中部的类型 0、1,然后类型 5、3、4,类型 6 主要在右上部。SOM 已学会按覆盖类型聚类。
- 命中直方图(hit histogram)(图 26.5):统计每个神经元在全数据集上获胜的次数,六边形大小表示获胜次数,灰度表示覆盖类型(最深为类型 0,最浅为类型 6)。各区域颜色一致:左侧中等灰度对应类型 2;最深的在中左部,对应类型 0、1;较浅的类型 5、6 在中右部;中等灰度的类型 3、4 在右边缘。
- 很多问题无法给每个输入打标签,这里的要点是 SOM 在不知道真实类型的情况下把数据聚成了相似的覆盖类型,说明 10 个输入变量与覆盖类型有足够相关性,聚类是有用的。
- 分量平面(component plane)(图 26.6):每个分量平面对应权值矩阵的一列,即输入向量的一个元素;第 \(i\) 列第 \(j\) 个元素是输入 \(i\) 到神经元 \(j\) 的连接,在特征映射中该神经元位置用灰度表示其大小。10 个分量平面各不相同,没有两列模式相同(无冗余变量)。变量 1(海拔)、4、5(到水体水平/垂直距离)、6(到道路距离)、10(到起火点距离)在映射左边缘出现边界,似乎对区分类型 2 与其他类型很重要,可回到表 26.1 推敲它们与类型 2 的联系。
数据文件:cover_p.txt(输入)、cover_t.txt(标签)。
26.6 结语与延伸阅读(PDF p.963–964)
SOM 把相似向量放进同一簇,用于把土地按相似覆盖类型聚类;除高效聚类外,其主要优势是能可视化高维数据。下一章用 NARX 网络做预测。[BlDe99] 比较神经网络与判别分析由地图变量预测森林覆盖类型(科罗拉多北部 Roosevelt 国家森林四个荒野区);[HeBa99] UCI KDD 数据档案;[Koho93] 批量 SOM 等 SOM 变体;[Koho95] Kohonen《Self-Organizing Map》第 2 版,含 LVQ 一章。
(案例章无习题。)
本章要点
SOFM 聚类流程:先用散点图矩阵检查变量分布与相关性 → 归一化 → 神经元数约按 \(\sqrt N\) 设定(此处 15×10 六边形)→ 用前两主成分做线性初始化 → 批量 SOM(权值 = 邻域内输入的加权平均,与学习率无关,迭代次数少)并逐步缩小邻域 → 用量化误差、拓扑误差评估 → 用 U 矩阵看簇边界、命中直方图看样本分布、分量平面看各变量在映射上的分布与作用。无标签时 SOM 也能发现与真实类别一致的结构。
与量化交易的关联
- 市场状态与资产聚类可视化:用 SOM 把多维宏观/市场指标(波动率、利差、动量、流动性等)映射到二维网格,U 矩阵显示状态边界,命中直方图显示各状态出现频率,按时间顺序连接获胜神经元可得到“市场在状态图上的轨迹”,用于 regime 识别与情景分析。
- 股票聚类与行业替代:按收益相关性或基本面特征对股票聚类,得到数据驱动的“行业”分组,用于中性化、配对交易候选筛选。分量平面能直观显示哪些特征决定了簇的划分(类似本例变量 1、4、5、6、10 区分类型 2)。
- 线性初始化即 PCA:前两主成分平面也是市场数据降维可视化的常用起点。
- 注意:SOM 无明确最优准则,结果依赖结构和训练方案,作为探索性工具比作为交易信号更可靠;在金融中还需检查簇的时间稳定性。
推荐习题
无原书习题。建议练习:用 cover_p.txt 复现批量 SOM,比较线性初始化与随机初始化的收敛速度,以及不同网格尺寸下量化误差与拓扑误差的权衡。
第 27 章 案例研究 5:预测 Case Study 5: Prediction(PDF p.965–979)
27.0 目标(PDF p.965–966)
预测是一种动态滤波:用一个或多个时间序列的过去值预测未来值,使用第 10、14 章的动态网络;与前几个案例不同,输入是时间序列。应用:金融分析师预测股票、债券等金融工具的未来价值(原书原话);工程师预测喷气发动机即将失效;系统辨识(动态建模),即建立物理系统的动态模型,用于制造系统、化工过程、机器人、航空航天的分析、仿真、监控与控制。本章为磁悬浮系统建立预测模型。用数据建立动态模型称为系统辨识(system identification),可用于经济、航空航天、生物、交通、通信、制造、化工等。磁悬浮多年来用于交通(磁悬浮列车原理相同)。
27.1 磁悬浮系统(PDF p.966–967)
目标:控制悬浮于电磁铁上方的磁铁位置,磁铁只能竖直运动(图 27.1)。运动方程:
27.2 数据收集与预处理(PDF p.967–968)
- 未搭建实物,而是用 Simulink 仿真式 (27.1)(任何仿真工具都可)。电流范围 \(-1\) 到 4 安,每 0.01 秒采样一次,共 4000 个数据点(图 27.2)。
- 激励信号设计。 为得到准确模型,系统输入输出必须覆盖将来使用的工作范围。系统辨识中常施加由随机幅度、随机宽度的脉冲序列组成的随机输入,称为 skyline 函数(形似城市天际线)。脉冲宽度和幅度须仔细选择。优点:同时探索系统的暂态与稳态——长脉冲末端系统接近稳态,短脉冲探索暂态。稳态性能差时可加长脉冲;但训练集中稳态数据过多,数据就不能代表典型工况,输入输出不能充分覆盖要控制的区域,导致暂态性能差。应使用宽度和幅度都有一定范围的输入序列,兼顾暂态与稳态。
- 划分:用贝叶斯正则化,不需要验证集;留 15% 测试。输入是时间序列时,测试序列宜取原数据中的连续一段,这里取最后 15%。
- 用式 (22.1) 把输入和目标缩放到 \([-1,1]\)(图 27.3)。
27.3 结构选择(PDF p.968–970)
- NARX 模型(第 22 章介绍过):递归动态网络,反馈连接包围网络的若干静态层,基于时间序列建模中常用的线性 ARX 模型。定义式
\[y(t)=f\big(y(t-1),y(t-2),\dots,y(t-n_y),\ u(t-1),u(t-2),\dots,u(t-n_u)\big),\qquad(27.2)\]下一个因变量输出值对其过去值和独立(外生)输入的过去值回归。本例 \(y\) 为磁铁位置,\(u\) 为电流。用前馈网络逼近 \(f\)(图 27.4,两层前馈网络):最后一层输出是下一位置的预测,网络输入为电流;隐层 tansig、输出层线性,隐层神经元数 \(S^1\) 取决于系统复杂度。
- 还需设定抽头延迟线长度 \(n_u\)(输入 TDL 含 \(u(t-1),\dots,u(t-n_u)\))和 \(n_y\)(输出 TDL 含 \(y(t-1),\dots,y(t-n_y)\))。因式 (27.1) 是二阶微分方程,先取 \(n_y=n_u=2\),之后再考察其他取值。
- 并联与串并联形式(图 27.5,[NaPa90])。 标准 NARX(并联 parallel 形式)把网络输出的估计值反馈到前馈网络输入。训练时真实输出可得,可构造**串并联(series-parallel)**形式:用真实输出代替反馈的估计输出。两个好处:前馈网络输入更准确;整个网络变为纯前馈结构,可用静态反向传播训练。用串并联形式时,可直接用标准多层网络实现 NARX,输入向量由过去的输入输出组成
\[\mathbf p(t)=[u(t-1),\ u(t-2),\ y(t-1),\ y(t-2)]^T,\qquad(27.3)\]目标为下一个输出 \(t=y(t)\)(27.4)。
27.4 训练(PDF p.971–972)
- Widrow–Nguyen 初始化(p.22-13),贝叶斯正则化训练(预测问题与第 23 章函数逼近类似,该方法对两者都有效)。
- 有 4000 个数据点而权值和偏置少于 100 个,过拟合可能性很小,其实不需要贝叶斯正则化或提前停止;但它能给出有效参数个数,所以只要适用作者就喜欢用。
- \(S^1=10\),训练 1000 次迭代后性能变化很小(图 27.6);多个不同初值训练的最终 SSE 相近,可确信未陷入局部极小。
- 有效参数个数(图 27.7)收敛到 39;4-10-1 网络共 61 个参数,有效使用不到 2/3。若有效参数接近总参数,应增加隐层神经元重训,这里不需要。也无需减少神经元:计算时间不关键;而就防止过拟合而言,39 个有效参数等价于总共只有 39 个参数——这正是贝叶斯正则化的妙处:只要网络中潜在参数足够多,它会为每个问题选择正确的参数数。
27.5 验证(PDF p.972–977)
- 散点图(图 27.8,归一化单位):测试集拟合与训练集一样好,没有过拟合。
- 预测模型的两条基本性质([BoJe86],即 Box–Jenkins):预测误差
\[e(t)=y(t)-\hat y(t)=y(t)-a^2(t)\qquad(27.5)\](1) 在相邻时间步之间应互不相关;(2) 与输入序列 \(u(t)\) 不相关。若误差相关,就能利用相关性改进预测:例如相隔一步的误差正相关,则当前大的正误差预示下一步误差也为正,把下一步预测调低就能减小误差。输入与误差相关时同理。
- 自相关检验:
\[R_e(\tau)=\frac{1}{Q-\tau}\sum_{t=1}^{Q-\tau}e(t)e(t+\tau).\qquad(27.6)\]误差不相关(白噪声)时,自相关函数应是 \(\tau=0\) 处的脉冲、其余为零;由于是估计值,\(\tau\ne0\) 处不会恰为零。白噪声的置信区间\[-\frac{2R_e(0)}{\sqrt Q}<R_e(\tau)<\frac{2R_e(0)}{\sqrt Q}.\qquad(27.7)\]\(n_y=n_u=2\)、\(S^1=10\) 时(图 27.9,虚线为置信界),自相关在若干点超出界限,提示需增大 \(n_y\)、\(n_u\)。
- 互相关检验:
\[R_{ue}(\tau)=\frac{1}{Q-\tau}\sum_{t=1}^{Q-\tau}u(t)e(t+\tau),\qquad -\frac{2\sqrt{R_e(0)}\sqrt{R_u(0)}}{\sqrt Q}<R_{ue}(\tau)<\frac{2\sqrt{R_e(0)}\sqrt{R_u(0)}}{\sqrt Q}.\qquad(27.8,27.9)\]\(n_y=n_u=2\) 时互相关都在界内(图 27.10),不提示问题。
- 增大延迟阶数:把 \(n_y\)、\(n_u\) 从 2 增到 4 重训。新的自相关除 \(\tau=0\) 外都在置信界内(图 27.11),互相关也都远在界内(图 27.12),误差与输入无显著相关。\(n_y=n_u=4\) 时预测误差为白噪声且与输入不相关,模型准确。
- 误差与多步迭代预测:最终模型的误差非常小(图 27.13,归一化误差量级 \(10^{-4}\)),但因为是串并联形式,这只是一步预测误差。更严格的检验是把网络改回原来的并联形式,进行多步迭代预测(自己的预测反馈作输入)。图 27.14:实线为实际位置、虚线为 NARX 预测,即使提前 600 个时间步预测仍非常准确。
数据文件:maglev_u.txt(输入序列)、maglev_y.txt(输出序列)。
27.6 结语与延伸阅读(PDF p.978–979)
本章用多层网络做预测:由某时间序列及其他序列的过去值预测其未来值,此处作为磁悬浮系统模型(系统辨识)。NARX 网络适合此类问题,贝叶斯正则化是很好的训练算法。[BoJe94] Box–Jenkins–Reinsel 时间序列分析经典教材;[HaDe02] 神经网络控制系统综述,演示模型预测控制、NARMA-L2 控制、模型参考控制三种控制器;[NaMu97] 提出 NARMA-L2 模型与控制器,训练后易于求逆得到控制器;[NaPa90] Narendra–Parthasarathy 用神经网络做动态系统辨识与控制的经典早期论文。
(案例章无习题。)
本章要点
动态系统辨识/预测流程:用宽度与幅度都随机的 skyline 激励覆盖暂态和稳态 → 测试集取末尾连续一段 → 归一化 → NARX 模型 \(y(t)=f(y(t-1..n_y),u(t-1..n_u))\),延迟阶数先按物理阶数设定 → 训练时用串并联形式(用真实过去输出作输入),可用静态反向传播 → 贝叶斯正则化并看有效参数数 → 用误差自相关(应为白噪声,界 \(\pm2R_e(0)/\sqrt Q\))与误差–输入互相关(界 \(\pm2\sqrt{R_e(0)R_u(0)}/\sqrt Q\))检验,有相关就加长延迟线 → 最后改回并联形式做多步迭代预测,作更严格检验。
与量化交易的关联
- NARX 即非线性 ARX/ARDL:用收益/波动率自身滞后项加外生变量(成交量、利差、宏观因子、指数期货基差等)的滞后项预测下一期,是时间序列因子模型的非线性推广;延迟阶数的选择对应 AR 阶数选择,可用残差白噪声检验来定。
- 残差诊断:自相关和互相关检验与 Ljung–Box 检验、Granger 意义上的“剩余可预测性”一致。若收益预测残差与某外生变量的滞后项相关,说明该变量仍有未利用信息。
- 一步 vs 多步预测:串并联(teacher forcing)训练只保证一步预测好;做多步价格路径或波动率期限结构预测时,必须在并联(递推)模式下评估,误差会累积。物理系统能做到 600 步准确,是因为系统确定且无噪声;金融序列信噪比极低,多步递推预测通常迅速退化为均值,切勿以本案例的精度类比。
- 测试集取末尾连续段:与量化回测的时间顺序样本外检验一致,是本书中唯一明确采用时间顺序划分的案例,金融应用应一律这样做。
- 激励设计:skyline 输入覆盖暂态与稳态,对应量化中训练数据应覆盖不同市场状态(牛熊、高低波动),否则模型只在单一状态下有效。
- 系统辨识 + 控制:NARX 模型 + 模型预测控制的框架,可类比最优执行中的价格冲击建模与执行控制(先辨识冲击动态,再优化下单轨迹)。
推荐习题
无原书习题。建议练习:用 maglev_u.txt/maglev_y.txt 复现 \(n_y=n_u=2\) 与 4 的残差自相关对比,以及串并联训练后改并联做多步迭代预测;再在一个金融收益序列上做同样的残差白噪声检验,比较两类数据的可预测性差异。
附录 A 参考文献(PDF p.980–990)
全书参考文献总表,按作者–年份代码排序,每条注明被引用的章节。与本块(第 19–27 章)相关的主要条目:[AgSa05](24 章)、[AnSi77]、[Ande72]、[Hopf82]、[Hopf84]、[HoTa85]、[TaHo86]、[LiMi89]、[McPi43]、[Koho72]、[Gros67](21 章)、[CaGr87a/b]、[CaGr90]、[CaGrMa92]、[CaGrRe91]、[Gros76]、[Gros82](19 章)、[Brog91]、[CoGr83]、[LaSa67]、[SlLi91](20 章)、[Bish95]、[BoJe94]、[HaBo07]、[HeOh97]、[Joll02]、[LeCu98]、[Moll93]、[NgWi90]、[PeCo93]、[PuFe97]、[RaMa05]、[ScSm99](22 章)、[FoGi07](23 章)、[Mill93](24 章)、[Dubi00]、[MoMa01]、[TeSi00](25 章)、[BlDe99]、[HeBa99]、[Koho93]、[Koho95](26 章)、[HaDe02]、[NaMu97]、[NaPa90](27 章)。也包含前面各章文献,如 [HoSt89] 多层前馈网络万能逼近、[RuHi86] 反向传播、[Werbo74]、[MacK92] 贝叶斯插值、[FoHa97] 贝叶斯正则化的 Gauss–Newton 近似、[HaMe94] Marquardt 训练、[DeHa07] 动态网络反向传播、[Werb90] BPTT、[WiZi89] RTRL、[Tikh63] 正则化、[MoDa89]、[Powe87]、[PaSa93](径向基网络)等。注:[Mill93] 与 [Moll93] 实为同一篇 SCG 论文(作者 M. F. Møller),书中出现两种拼写。
附录 B 记号(PDF p.991–998)
- 基本约定:标量为小写斜体(\(a,b,c\)),向量为小写粗体非斜体(\(\mathbf a\)),矩阵为大写粗体(\(\mathbf A\));“向量”指列向量,“行向量”指矩阵的一行当作(列)向量使用。
- 权值:\(w^k_{i,j}(t)\)(\(i\) 行、\(j\) 列、\(k\) 层、\(t\) 时刻/迭代);矩阵 \(\mathbf W^k(t)\);列向量 \(\mathbf w^k_j(t)\);行向量 \({}_i\mathbf w^k(t)\);偏置 \(b^k_i(t)\)、\(\mathbf b^k(t)\)。
- 输入 \(p_i(t)\)、\(\mathbf p(t)\)(序列中的第 \(t\) 个)或 \(\mathbf p_q\)(集合中第 \(q\) 个);净输入 \(n^k_i(t)\) 或 \(n^k_{i,q}\);输出 \(a^k_i=f^k(n^k_i)\),\(\mathbf a^k=\mathbf f^k(\mathbf n^k)\);目标 \(t_i(t)\) 或 \(t_{i,q}\);训练集 \(\{\mathbf p_1,\mathbf t_1\},\dots,\{\mathbf p_Q,\mathbf t_Q\}\);误差 \(e=t-a\)。
- 尺寸:层数 \(M\),第 \(k\) 层神经元数 \(S^k\),输入向量数 \(Q\),输入维数 \(R\)。
- 参数向量 \(\mathbf x\)(全部权值和偏置),第 \(k\) 次迭代 \(\mathbf x(k)\) 或 \(\mathbf x_k\),变化量 \(\Delta\mathbf x_k=\mathbf x_{k+1}-\mathbf x_k\);性能指标 \(F(\mathbf x)\),梯度 \(\mathbf g_k\),Hessian \(\mathbf A_k\);特征值/向量 \(\lambda_i,\mathbf z_i\);单步近似性能指标 \(\hat F(\mathbf x)\);传递函数导数 \(\dot f(n)\) 与对角矩阵 \(\dot{\mathbf F}^m(\mathbf n^m)\);Jacobian \(\mathbf J(\mathbf x)\),近似 Hessian \(\mathbf H=\mathbf J^T\mathbf J\);敏感度 \(s^m_i=\partial\hat F/\partial n^m_i\);Marquardt 敏感度 \(\tilde s^m_{i,h}=\partial v_h/\partial n^m_{i,q}\) 及矩阵 \(\tilde{\mathbf S}^m\)。
- 动态网络:输入权值 \(\mathbf{IW}^{m,l}(d)\)、层权值 \(\mathbf{LW}^{m,l}(d)\)(\(d\) 为延迟);延迟集合 \(DL_{m,l}\)、\(DI_{m,l}\);索引集合 \(I_m\)、\(L^f_m\)、\(L^b_m\)、\(E_{LW}\)、\(E_S\) 等;输入层 \(X\)(有输入权值或任一权值含延迟)与输出层 \(U\)(输出与目标比较,或经带延迟的矩阵连到输入层)的定义。
- 反向传播变体参数:学习率 \(\alpha\)、动量 \(\gamma\),学习率增减因子 \(\eta,\rho\) 与百分比 \(\zeta\),共轭梯度调整参数 \(\beta_k\),Marquardt 参数 \(\mu,\vartheta\)。
- 泛化:正则化参数 \(\alpha,\beta,\rho=\alpha/\beta\),有效参数数 \(\gamma\),模型 \(M\),\(E_D\) 与 \(E_W\),\(\mathbf x^{ML}\) 与 \(\mathbf x^{MP}\)。
- 特征映射:神经元距离 \(d_{ij}\),邻域 \(N_i(d)=\{j:d_{ij}\le d\}\)。
- Grossberg 与 ART:on-center/off-surround 矩阵 \({}^+\mathbf W\)(单位阵)、\({}^-\mathbf W\)(对角 0、其余 1),兴奋/抑制偏置 \({}^+\mathbf b,{}^-\mathbf b\),时间常数 \(\varepsilon\),相对强度 \(\bar p_i=p_i/P\)(\(P=\sum_jp_j\)),instar/outstar 权值 \(\mathbf W^{1:2},\mathbf W^{2:1}\),定向子系统参数 \(\alpha,\beta,\rho=\alpha/\beta\)(警戒),ART1 学习律参数 \(\zeta\)。
- Lyapunov 稳定性:\(V(\mathbf a)\),\(Z\)、\(L\)、闭包 \(\bar L\),有界集 \(\Omega_\eta=\{\mathbf a:V(\mathbf a)<\eta\}\)。
- Hopfield:电路参数 \(T_{i,j},C,R_i,I_i,\rho\),放大器增益 \(\gamma\)。
附录 C 软件(PDF p.999–1003)
- 书中用 MATLAB 做数值计算与可视化,但非必需:习题可用任何编程语言完成,演示程序有帮助但不是理解内容的关键。MATLAB 的矩阵记号和绘图便于实验;很多神经网络特性只在大规模问题上显现,手算不可行。
- Neural Network Design 演示程序从 hagan.okstate.edu/nnd.html 下载,需 MATLAB 2010a 或更高版本,放在 MATLAB 路径下后输入
nnd启动主菜单(启动画面 → Contents → 图形目录,按章节按钮和下拉菜单选择演示);help nndesign列出全部演示;nnsound off/on关闭/开启声音(关声音运行更快,不支持声音的机器需关闭)。 - 演示清单(按章):第 2 章 nnd2n1/nnd2n2(单/双输入神经元);第 3 章 nnd3pc、nnd3hamc、nnd3hopc(感知机、Hamming、Hopfield 分类);第 4 章 nnd4db、nnd4pr;第 5 章 nnd5gs、nnd5rb;第 6 章 nnd6lt、nnd6eg;第 7 章 nnd7sh;第 8 章 nnd8ts1、nnd8ts2、nnd8dd、nnd8qf;第 9 章 nnd9sdq、nnd9mc、nnd9nm、nnd9sd;第 10 章 nnd10nc、nnd10eeg、nnd10lc;第 11 章 nnd11nf、nnd11bc、nnd11fa、nnd11gn;第 12 章 nnd12sd1、nnd12sd2、nnd12mo、nnd12vl、nnd12ls、nnd12cg、nnd12ms、nnd12m;第 13 章 nnd13es、nnd13reg、nnd13breg、nnd13esr;第 14 章 nnd14fir、nnd14iir、nnd14dynd、nnd14rnt;第 15 章 nnd15uh、nnd15edr、nnd15hd、nnd15gis、nnd15is、nnd15os;第 16 章 nnd16cc、nnd16cl、nnd16fm1、nnd16fm2、nnd16lv1、nnd16lv2;第 17 章 nnd17nf、nnd17pc、nnd17lls、nnd17ols、nnd17no;第 18 章 nnd18li、nnd18sn、nnd18gl1、nnd18gl2、nnd18aw;第 19 章 nnd19al1、nnd19al2、nnd19os、nnd19a1(ART1 第 1 层、第 2 层、定向子系统、算法);第 20 章 nnd20ds(动态系统/单摆);第 21 章 nnd21hn(Hopfield 网络)。
- 注意:第 19–21 章正文中引用的演示名沿用第一版编号(nnd16al1、nnd17ds、nnd18hn 等),与附录 C 的第二版编号(nnd19al1、nnd20ds、nnd21hn)不一致,以附录为准。
索引与封底(PDF p.1004–1012)
- 索引(p.1004–1011):按字母排列全书术语及页码,如 ART1 各子项(快速学习 19-19、第 1 层 19-4、第 2 层 19-10、学习律 19-17/19-20、定向子系统 19-13、共振 19-17、子集/超集两难 19-17、警戒 19-15)、批量 SOFM 26-6、贝叶斯正则化与有效参数数 13-16/23-6、委员会网络 22-18/25-10、混淆矩阵 22-21/25-7、交叉熵 22-17、高增益 Lyapunov 函数 21-13、LaSalle 推论 20-14、线性初始化 26-6、Minkowski 误差 22-17、新颖性检测 22-28、Nguyen–Widrow 初始化 22-13、ROC 22-22、敏感性分析 22-28、softmax 22-7/24-6、伪模式 21-20、拓扑误差 22-23 等。
- 封底(p.1012):本书清晰详细地介绍基本神经网络结构与学习规则,强调主要网络、训练方法及其实际应用的连贯阐述。特色:用简单构件讲解联想网络与竞争网络(含特征映射与 LVQ);一章针对函数逼近、模式识别、聚类、预测的实用训练技巧,加五章详细的实际案例;前馈网络(多层与径向基)和递归网络训练方法的广泛覆盖,除共轭梯度和 LM 外还包括保证泛化能力的贝叶斯正则化与提前停止;大量例题与习题,幻灯片与演示软件可从 hagan.okstate.edu/nnd.html 下载。作者简介:Martin T. Hagan(堪萨斯大学电气工程博士,俄克拉何马州立大学教授,35 年控制与信号处理教研,近 25 年研究神经网络用于控制、滤波与预测);Howard B. Demuth(斯坦福电气工程博士,在 Los Alamos 国家实验室 23 年,参与设计早期电子计算机 MANIAC,现于科罗拉多大学博尔德分校讲授神经网络);Mark Hudson Beale(爱达荷大学计算机工程学士,软件工程师,MHB Inc.);Orlando De Jesús(俄克拉何马州立大学电气工程博士,其博士论文是 MATLAB 神经网络工具箱动态网络训练算法的基础)。前三位及 De Jesús 均参与 MATLAB Neural Network Toolbox。
本块总览(供编写者参考)
第 19–21 章延续前面的联想/竞争/递归网络理论线:ART1 用“期望 + 警戒”解决竞争学习的稳定性/可塑性问题;第 20 章给出分析递归网络所需的 Lyapunov 与 LaSalle 稳定性工具;第 21 章用这些工具分析连续时间 Hopfield 网络,并把网络设计归结为二次函数最小化。这三章数学较完整,但与现代量化实务的直接联系弱,可在教材中压缩为“动态系统稳定性与能量函数”“二值二次优化(QUBO)建模”“在线聚类与灾难性遗忘”等可迁移思想。第 22–27 章是实用训练与案例,与量化实务高度相关:数据划分与预处理、结构与算法选择、停止准则、性能函数、集成、训练后诊断(回归 \(R\)、混淆矩阵、ROC、残差自相关/互相关检验、新颖性检测、敏感性分析),以及五个案例覆盖回归、概率估计(softmax)、分类(类别不平衡、蒙特卡洛划分评估)、聚类可视化(SOM、U 矩阵、分量平面)、时间序列预测(NARX、串并联训练、多步迭代预测)。改写为量化教材时,需要把书中“随机划分数据”的做法统一改为时间顺序划分,并强调金融数据低信噪比、非平稳带来的差异。