精读笔记:Hagan, Demuth, Beale, De Jesús《Neural Network Design》(2nd ed.) — 负责 PDF 第 520–754 页(第 14–18 章:动态网络、联想学习、竞争网络、径向基网络、Grossberg 网络)
说明:本段文本由 PDF 抽取,公式和图中标注被切得很碎。下文公式依据上下文和本书统一记号重组。记号约定沿用全书:上标 \(m\) 表示层号,\(\mathbf{W}\) 为权值矩阵,\(\mathbf{b}\) 为偏置,\(\mathbf{n}\) 为净输入(net input),\(\mathbf{a}\) 为层输出,\(\dot{\mathbf{F}}^m\) 为传输函数导数组成的对角阵。
第 14 章 动态网络(Dynamic Networks)(PDF p.520–573)
14.0 目标(Objectives)(PDF p.520)
- 神经网络分为静态(static)和动态(dynamic)两类。第 11–13 章的多层网络是静态网络:输出只由当前输入经前馈连接算出。动态网络的输出还依赖当前或过去的输入、输出或状态。例:第 10 章的自适应滤波器(用抽头延迟线 tapped delay line, TDL 存过去的输入)、第 3 章的 Hopfield 网络(有反馈/递归 recurrent 连接)。
- 训练仍然用第 9–12 章的优化算法:基于梯度的(最速下降、共轭梯度)或基于 Jacobian 的(Gauss-Newton、Levenberg-Marquardt)。静态与动态网络训练的唯一区别在于梯度/Jacobian 怎么算。本章讲动态网络的梯度计算。
14.1 理论概述(PDF p.521)
- 动态网络含延迟(连续时间网络中为积分器),处理的是输入序列,输入顺序有意义。可以只有前馈连接(如自适应滤波器),也可以有反馈连接。动态网络有记忆:任一时刻的响应依赖输入序列的历史,因此能学习时序模式。静态多层感知机逼近函数,动态网络逼近动态系统。
- 书中列举的应用:动态系统控制、金融市场预测(prediction in financial markets)、通信信道均衡、电力系统相位检测、排序、故障检测、语音识别、自然语言文法学习、蛋白质结构预测。
- 标准反向传播无法直接给出动态网络所需的梯度,需要"动态反向传播"。两大类方法:
- BPTT(backpropagation-through-time,随时间反向传播)[Werb90]:先算出所有时刻的网络响应,再从最后一个时刻往回算梯度。算梯度效率高,但难以在线实现。
- RTRL(real-time recurrent learning,实时递归学习)[WiZi89]:从第一个时刻开始,梯度和网络响应同时向前推进。算梯度比 BPTT 计算量大,但便于在线实现;算 Jacobian 时 RTRL 通常比 BPTT 更高效。
14.2 分层数字动态网络 LDDN(Layered Digital Dynamic Networks)(PDF p.522–524)
LDDN 是静态多层网络记号的扩展,便于表示多条反馈连接和抽头延迟线。示例网络(图 14.1):三层,输入 \(\mathbf{p}^1(t)\)(\(R\times1\))接入第 1 层(\(\mathbf{IW}^{1,1}\));层权值 \(\mathbf{LW}^{1,1}\)(第 1 层自反馈)、\(\mathbf{LW}^{1,3}\)(第 3 层反馈到第 1 层)、\(\mathbf{LW}^{2,1}\)、\(\mathbf{LW}^{2,3}\)、\(\mathbf{LW}^{3,2}\);多处连接前有 TDL。
净输入的一般公式(14.1):
其中 \(\mathbf{p}^l(t)\) 为第 \(l\) 个输入向量;\(\mathbf{IW}^{m,l}\) 为输入 \(l\) 到层 \(m\) 的输入权值(input weight);\(\mathbf{LW}^{m,l}\) 为层 \(l\) 到层 \(m\) 的层权值(layer weight);\(\mathbf{b}^m\) 为偏置;\(DL_{m,l}\) 为层 \(l\)→层 \(m\) 之间 TDL 的延迟集合;\(DI_{m,l}\) 为输入 \(l\)→层 \(m\) 的延迟集合;\(I_m\) 为连到层 \(m\) 的输入向量下标集合;\(L^f_m\) 为直接前向连到层 \(m\) 的层下标集合。
层输出(14.2): \(\mathbf{a}^m(t)=\mathbf{f}^m(\mathbf{n}^m(t))\)。
与静态网络(式 11.6)的区别:多个层可以连到同一层;部分连接经 TDL 形成递归;可以有多个输入向量,且可连到任意层;任意层可连任意层,包括自己。
- 仿真顺序(simulation order):为得到正确输出必须按某种顺序算各层输出(不一定唯一)。**反传顺序(backpropagation order)**是其逆序。图 14.1 中仿真顺序 1-2-3,反传顺序 3-2-1。
- LDDN 的基本单元仍是"层",每层五个组成部分:①流入该层的一组权值矩阵(来自其他层或外部输入);②权值矩阵前面的 TDL(\(DL_{m,l}\) 或 \(DI_{m,l}\));③偏置向量;④求和点;⑤传输函数。
- 关键难点:输出不仅是权值、偏置和当前输入的函数,还是过去层输出的函数。所以权值对输出有两种作用:直接作用(direct effect),可用第 11 章标准反传计算;间接作用(indirect effect),因为部分网络输入是过去的输出,而它们本身也是权值的函数。
14.3 动态网络示例(PDF p.524–527)
例 1:前馈动态网络 = ADALINE 滤波器(FIR)(图 14.2)。单输入、单线性神经元,输入端 TDL,\(DI_{1,1}=\{0,1,2\}\):
例 2:递归线性神经元(IIR)(图 14.4),式 (14.5):
对比:静态两层感知机(图 11.4)可以逼近 \(g(p)=1+\sin(\pi p/4)\) 这类静态函数;动态网络可以逼近机械臂、飞机、生物过程、经济系统等动态系统——当前输出取决于过去输入和输出的历史。动态系统比静态函数复杂,所以训练也更难。
14.4 动态学习原理(Principles of Dynamic Learning)(PDF p.527–530)
单神经元例子:对图 14.4 网络用最速下降训练,性能函数为误差平方和(14.7):
图 14.6 a) 对 \(iw_{1,1}\):总导数与静态部分对比——只看静态部分会低估权值变化的影响;b) 原响应与 \(iw_{1,1}\) 从 0.5 增到 0.6 后的响应,对照可见导数如何刻画权值变化对响应的影响。图 14.7 对 \(lw_{1,1}(1)\) 有类似结果。要点:①导数有静态和动态两部分;②动态部分依赖其他时刻。演示 nnd14dynd。
一般化:带单个反馈环的多层网络(图 14.8):\(\mathbf{a}(t)=\mathrm{NN}(\mathbf{p}(t),\mathbf{a}(t-1),\mathbf{x})\),\(\mathbf{x}\) 为全部权值和偏置。两种用链式法则的方式:
- (14.14)+(14.16) 构成 RTRL,关键量 \(\partial\mathbf{a}(t)/\partial\mathbf{x}^T\)(14.18)向前随时间传播。
- (14.15)+(14.17) 构成 BPTT,关键量 \(\partial F/\partial\mathbf{a}(t)\)(14.19)向后随时间传播。
- 一般 RTRL 算梯度的计算量略大于 BPTT;但 BPTT 必须先算完所有时刻输出再反传回初始时刻,不便实时实现;RTRL 每步都能算导数,适合实时。求 LM 算法所需 Jacobian 时 RTRL 常更高效 [DeHa07]。
14.5 动态反向传播(Dynamic Backpropagation)(PDF p.531–549)
14.5.1 预备定义(PDF p.531)
- 输入层(input layer):有输入权值,或其任一权值矩阵带延迟。
- 输出层(output layer):训练时与目标比较,或经带延迟的矩阵连到某输入层。
- 图 14.1 中:输出层 1、3,输入层 1、2;记输出层集合 \(U=\{1,3\}\),输入层集合 \(X=\{1,2\}\)。
- 仿真:每个时刻 \(m\) 按仿真顺序递增,迭代式 (14.1)(14.2);然后 \(t\to t+1\)。
14.5.2 RTRL 的一般化(PDF p.531–536)
推广式 (14.14)(14.20):除了对时间求和,还要对每个输出层求和;若 \(F\) 不显式依赖某输出 \(\mathbf{a}^u\),对应显式导数为零。
推广式 (14.16)(14.21):要对每个输出 \(u'\)、每个输入层 \(x\)、以及每个延迟 \(d\) 求和,按 \(t=1\to Q\) 向前更新;\(t\le0\) 时的 \(\partial\mathbf{a}^u(t)/\partial\mathbf{x}^T\)(14.22)一般置零:
由净输入的分量形式(14.24,对照式 11.20) \(n^x_k(t)=\sum_{l}\sum_{d'}\sum_i lw^{x,l}_{k,i}(d')a^l_i(t-d')+\sum_l\sum_{d'}\sum_i iw^{x,l}_{k,i}(d')p^l_i(t-d')+b^x_k\) 得(14.25)\(\partial^e n^x_k(t)/\partial a^{u'}_j(t-d)=lw^{x,u'}_{k,j}(d)\)。
敏感度(sensitivity)(14.26)及矩阵(14.27):
指示集(indicator sets)——只对非零项求和以省计算(\(\ni\) 读作"使得",\(\exists\) 为"存在"):
- (14.31) \(E^U_{LW}(x)=\{u\in U\ni\exists(\mathbf{LW}^{x,u}(d)\neq0,\ d\neq0)\}\):以非零延迟连到(输入)层 \(x\) 的输出层。
- (14.32) \(E^X_S(u)=\{x\in X\ni\exists(\mathbf{S}^{u,x}\neq0)\}\):与输出层 \(u\) 有非零敏感度的输入层(\(\mathbf{S}^{u,x}\ne0\) 意味着 \(x\) 到 \(u\) 有静态连接)。
- (14.33) \(E_S(u)=\{x\ni\exists(\mathbf{S}^{u,x}\neq0)\}\):与 \(u\) 有非零敏感度的所有层。\(E^X_S\) 只含输入层;\(E_S\) 用于敏感度计算 (14.38)。
RTRL 的核心递推(14.34):
敏感度的计算(静态反传的推广,PDF p.534–535):输出处(14.35–14.37) \(s^{u,u}_{k,i}(t)=\dot f^u(n^u_i(t))\)(\(i=k\)),否则为 0;即 \(\mathbf{S}^{u,u}(t)=\dot{\mathbf{F}}^u(\mathbf{n}^u(t))\),\(\dot{\mathbf{F}}^u\) 为对角阵 \(\mathrm{diag}(\dot f^u(n^u_1),\dots,\dot f^u(n^u_{S^u}))\)(参见式 11.34)。再从每个输出层向回传(14.38):
显式导数(14.39–14.44),用 vec 算子(把矩阵按列堆叠成向量)和 Kronecker 积 \(\otimes\) [MaNe99]:
RTRL 伪代码(PDF p.536,Summary 中重复):
- 初始化:对所有 \(u\in U\),\(t\le0\) 时 \(\partial\mathbf{a}^u(t)/\partial\mathbf{x}^T=0\)。
- For \(t=1\) to \(Q\):置 \(U'=\varnothing\),对所有 \(u\in U\) 置 \(E_S(u)=\varnothing\)、\(E^X_S(u)=\varnothing\)。
- For \(m\) 沿反传顺序递减:
- 对所有 \(u\in U'\):若 \(E_S(u)\cap L^b_m\neq\varnothing\),按 (14.38) 算 \(\mathbf{S}^{u,m}(t)\),把 \(m\) 加入 \(E_S(u)\);若 \(m\in X\),把 \(m\) 加入 \(E^X_S(u)\)。
- 若 \(m\in U\):\(\mathbf{S}^{m,m}(t)=\dot{\mathbf{F}}^m(\mathbf{n}^m(t))\),把 \(m\) 加入 \(U'\) 和 \(E_S(m)\);若 \(m\in X\) 再加入 \(E^X_S(m)\)。
- For \(u\in U\) 沿仿真顺序递增:对所有权值和偏置算显式导数 (14.42–14.44);再按 (14.34) 算总导数。
- For \(m\) 沿反传顺序递减:
- 按 (14.20) 汇总梯度。
14.5.3 RTRL 例子(FIR 与 IIR)(PDF p.537–541)
FIR 网络:结构 \(U=\{1\}\),\(X=\{1\}\),\(I_1=\{1\}\),\(DI_{1,1}=\{0,1,2\}\),\(L^f_1=\varnothing\),\(E^U_{LW}(1)=\varnothing\)。性能函数取三个时刻 \(F=\sum_{t=1}^{3}e^2(t)\),训练对 \(\{p(1),t(1)\},\{p(2),t(2)\},\{p(3),t(3)\}\)。需给出延迟的初始条件 \(p(0)\)、\(p(-1)\)。第一步 \(a(1)=iw(0)p(1)+iw(1)p(0)+iw(2)p(-1)\)。线性传输函数,故 \(\mathbf{S}^{1,1}(1)=\dot{\mathbf{F}}^1=1\),\(E^X_S(1)=\{1\}\),\(E_S(1)=\{1\}\)。显式导数:\(\partial^e a(1)/\partial iw(0)=p(1)\),\(\partial^e a(1)/\partial iw(1)=p(0)\),\(\partial^e a(1)/\partial iw(2)=p(-1)\)。因 \(E^U_{LW}(1)=\varnothing\),总导数等于显式导数。最终梯度:
IIR 网络(图 14.4):\(U=\{1\}\),\(X=\{1\}\),\(I_1=\{1\}\),\(DI_{1,1}=\{0\}\),\(DL_{1,1}=\{1\}\),\(L^f_1=\{1\}\),\(E^U_{LW}(1)=\{1\}\)。需要初始条件 \(a(0)\) 以及初始导数 \(\partial a(0)/\partial iw\)、\(\partial a(0)/\partial lw(1)\)(通常取 0)。\(a(1)=lw(1)a(0)+iw\,p(1)\);显式导数 \(\partial^e a(1)/\partial iw=p(1)\),\(\partial^e a(1)/\partial lw(1)=a(0)\)。总导数(14.45):
14.5.4 BPTT 的一般化(PDF p.541–545)
推广式 (14.15):对层权值(14.46)
推广式 (14.17)(14.57):三重求和——每个网络输出 \(u'\)、该输出经哪个输入层 \(x\) 连回、延迟了几次 \(d\);按 \(t=Q\to1\) 向后更新,\(t>Q\) 时 \(\partial F/\partial\mathbf{a}^u(t)\)(14.58)置零:
BPTT 伪代码(PDF p.545):
- 初始化:对所有 \(u\in U\),\(t>Q\) 时 \(\partial F/\partial\mathbf{a}^u(t)=0\)。
- For \(t=Q\) down to 1:置 \(U'=\varnothing\),\(E_S(u)=\varnothing\),\(E^U_S(u)=\varnothing\)。
- For \(m\) 沿反传顺序递减:对所有 \(u\in U'\),若 \(E_S(u)\cap L^b_m\neq\varnothing\),按 (14.38) 算 \(\mathbf{S}^{u,m}(t)\),把 \(m\) 加入 \(E_S(u)\),把 \(u\) 加入 \(E^U_S(m)\)。若 \(m\in U\):\(\mathbf{S}^{m,m}(t)=\dot{\mathbf{F}}^m\),把 \(m\) 加入 \(U'\)、\(E_S(m)\)、\(E^U_S(m)\)。
- For \(u\in U\) 沿反传顺序递减:按 (14.63) 算 \(\partial F/\partial\mathbf{a}^u(t)\)。
- 对所有层 \(m\):\(\mathbf{d}^m(t)=\sum_{u\in E^U_S(m)}[\mathbf{S}^{u,m}(t)]^T\,\partial F/\partial\mathbf{a}^u(t)\)。
- 按 (14.54)–(14.56) 计算梯度。
14.5.5 BPTT 例子(PDF p.546–549)
FIR:先算出全部时刻响应 \(a(1),a(2),a(3)\)。初始化 \(U'=\varnothing\) 等。从 \(t=3\) 开始:\(\mathbf{S}^{1,1}(3)=1\),\(E^U_S(1)=\{1\}\),\(E_S(1)=\{1\}\);由 (14.63)(无延迟反馈项)\(\partial F/\partial a(3)=\partial^eF/\partial a(3)=-2e(3)\);\(d^1(3)=-2e(3)\)。同理 \(d^1(2)=-2e(2)\),\(d^1(1)=-2e(1)\)。代入 (14.55):\(\partial F/\partial iw(0)=\sum_t -2e(t)p(t)\),\(\partial F/\partial iw(1)=\sum_t-2e(t)p(t-1)\),\(\partial F/\partial iw(2)=\sum_t-2e(t)p(t-2)\)——与 RTRL 结果相同。RTRL 与 BPTT 总给出同一梯度,区别只在实现。
IIR:BPTT 需要导数的终止条件 \(\partial F/\partial a(4)=0\)(RTRL 则需要初始条件)。先算 \(a(1)=lw\,a(0)+iw\,p(1)\)、\(a(2)\)、\(a(3)\)。\(t=3\):\(\partial F/\partial a(3)=-2e(3)+lw\,S(4)\,\partial F/\partial a(4)=-2e(3)\),\(d(3)=-2e(3)\)。\(t=2\):\(\partial F/\partial a(2)=-2e(2)+lw(-2e(3))=d(2)\)。\(t=1\):\(\partial F/\partial a(1)=-2e(1)+lw(-2e(2))+lw^2(-2e(3))=d(1)\)。总梯度:
14.6 动态训练的总结与评述(PDF p.549–552)
- 两种算法都算精确梯度,结果相同。RTRL 从第一时刻向前算,适合在线(实时)实现;BPTT 从最后时刻向后算,梯度计算量通常更少,但需要更多存储。两者都可推广到算 Jacobian(供第 12 章 LM 算法),此时 RTRL 一般更高效 [DeHa07]。
- 动态网络比前馈网络难训练,原因有三:
- **按时间展开(unfolded in time)**后相当于很深的前馈网:如图 14.4 网络训练 5 个时刻,可展开为 5 层。若用 sigmoid,任一时刻输出接近饱和区,梯度就可能非常小(即梯度消失)。
- 误差曲面形状:递归网络误差曲面可出现与被逼近系统无关的伪谷(spurious valleys)[PhHa13],根源在于递归网络可能不稳定。如图 14.4 网络在 \(|lw_{1,1}(1)|>1\) 时不稳定;但对特定输入序列,某些 \(|lw|>1\) 的值或 \(lw\)、\(iw\) 的某些组合下输出可能恰好很小,从而形成窄谷。
- 训练数据难以充分:有些层的输入来自 TDL,输入向量的分量不能独立选取(采样自时间上相关的序列)。数据既要覆盖每个输入的取值范围,也要覆盖输入随时间变化的方式。
- 示例(图 14.9):把图 14.4 改成 tansig 非线性递归神经元 \(a(t)=\mathrm{tansig}(lw_{1,1}(1)a(t-1)+iw_{1,1}p(t))\)。函数是向量空间之间的映射,动态系统是时间序列集合之间的映射。为便于分析,用一个已知最优解的问题:目标由同一网络在 \(lw_{1,1}(1)=0.5\)、\(iw_{1,1}=0.5\)(14.64)下生成。输入用天际线函数(skyline function)——一串高度和宽度各异的脉冲(图 14.10)。训练输入序列必须代表所有可能的输入序列;简单网络容易做到,实际网络往往很难。
- 图 14.11:平方误差性能曲面。\(|lw|>1\) 时误差陡增(训练序列越长越明显);但在 \(lw>1\) 区域也能看到窄谷(常见现象,见习题 E14.18)。最速下降轨迹一开始就被曲面底部的窄谷误导。演示 nnd14rnt。
14.7 结果汇总(Summary of Results)(PDF p.553–555)
重复 RTRL 与 BPTT 伪代码,以及记号定义:\(\mathbf{p}^l(t)\)、\(\mathbf{n}^m(t)\)、\(\mathbf{f}^m\)、\(\mathbf{a}^m(t)\)、\(\mathbf{IW}^{m,l}\)、\(\mathbf{LW}^{m,l}\)、\(\mathbf{b}^m\)、\(DL_{m,l}\)、\(DI_{m,l}\)、\(I_m\)、\(L^f_m\)、\(L^b_m\);输入层/输出层定义;敏感度 \(s^{u,m}_{k,i}(t)=\partial^e a^u_k(t)/\partial n^m_i(t)\);四个指示集 \(E^U_{LW}(x)\)、\(E^X_S(u)\)、\(E_S(u)\)、\(E^X_{LW}(u)\)、\(E^U_S(x)\)。
14.8 例题(Solved Problems)(PDF p.556–564)
- P14.1:先引入动态网络的简化框图符号(图 P14.1:层块标注神经元数和传输函数,如"Layer #1 with 2 tansig neurons";输入块标元素数;TDL 块标延迟范围如 "from 1 to 9""from 0 to 9")。对一个 10 层网络(图 P14.2)写出 \(U\)、\(X\)、\(I_m\)、\(DI_{m,1}\)、\(DL_{m,l}\)、\(L^f_m\)、\(L^b_m\)、\(E^U_{LW}(x)\)、\(E^X_{LW}(u)\),选择仿真顺序并给出各权值矩阵维数。结论:\(X=\{1,2,4,6,9\}\)(有输入权值或带延迟连接的层);假定只有第 10 层与目标比较,则 \(U=\{2,3,4,5,8,10\}\);\(I_1=\{1\}\),\(DI_{1,1}=\{0\}\);\(L^f_2=\{1,2\}\),\(L^f_4=\{3,4,7\}\),\(L^f_6=\{2,5\}\),\(L^f_9=\{4,8\}\),\(L^f_{10}=\{6,9\}\) 等;带延迟的连接如 \(DL_{2,2}=\{1\}\)、\(DL_{4,3}=\{1\}\)、\(DL_{4,4}=\{1\}\)、\(DL_{6,5}=\{0,1\}\)、\(DL_{9,8}=\{1\}\);\(E^U_{LW}(2)=\{2\}\),\(E^U_{LW}(4)=\{3,4\}\),\(E^U_{LW}(6)=\{5\}\),\(E^U_{LW}(9)=\{8\}\);\(E^X_{LW}(2)=\{2\}\),\(E^X_{LW}(3)=\{4\}\),\(E^X_{LW}(4)=\{4\}\),\(E^X_{LW}(5)=\{6\}\),\(E^X_{LW}(8)=\{9\}\)。仿真顺序 \(\{1,2,3,7,4,5,6,8,9,10\}\)。
- P14.2:写出该网络的 BPTT 方程(单个时刻),按反传顺序 \(\{10,9,8,6,5,4,7,3,2,1\}\) 逐层算 \(\mathbf{S}^{u,m}(t)\)、\(\partial F/\partial\mathbf{a}^u(t)\)(含 \(t+1\) 时刻经延迟连接回传的项,例如 \(\partial F/\partial\mathbf{a}^8(t)=\partial^eF/\partial\mathbf{a}^8(t)+\mathbf{LW}^{9,8}(1)^T\mathbf{S}^{10,9}(t+1)^T\partial F/\partial\mathbf{a}^{10}(t+1)\))和 \(\mathbf{d}^m(t)\)。演示了多条路径汇合时敏感度相加(如 \(\mathbf{S}^{10,2}=[\mathbf{S}^{10,6}\mathbf{LW}^{6,2}(0)+\mathbf{S}^{10,7}\mathbf{LW}^{7,2}(0)]\dot{\mathbf{F}}^2\))。最后按 (14.54)–(14.56) 求梯度。
- P14.3:写出 RTRL 方程。敏感度与 BPTT 相同,不再重复。显式导数如 \(\partial^e\mathbf{a}^u(t)/\partial\mathrm{vec}(\mathbf{IW}^{1,1}(0))^T=[\mathbf{p}^1(t)]^T\otimes\mathbf{S}^{u,1}(t)\)。总导数如 \(\partial\mathbf{a}^2(t)/\partial\mathbf{x}^T=\partial^e\mathbf{a}^2(t)/\partial\mathbf{x}^T+\mathbf{S}^{2,2}(t)\mathbf{LW}^{2,2}(1)\partial\mathbf{a}^2(t-1)/\partial\mathbf{x}^T\),第 4、5、8、10 层的式子含多个延迟反馈项。梯度 \(\partial F/\partial\mathbf{x}^T=\sum_t\sum_{u\in\{2,3,4,5,8,10\}}[\partial^eF/\partial\mathbf{a}^u(t)]^T\partial\mathbf{a}^u(t)/\partial\mathbf{x}^T\)。
- P14.4:展开 \(\partial^e\mathbf{a}^2(t)/\partial\mathrm{vec}(\mathbf{IW}^{1,1}(0))^T=[\mathbf{p}^1(t)]^T\otimes\mathbf{S}^{2,1}(t)\) 的细节:\(\mathbf{IW}^{1,1}(0)\) 为 \(2\times3\),vec 后按列排成 \([iw_{1,1},iw_{2,1},iw_{1,2},iw_{2,2},iw_{1,3},iw_{2,3}]\);\(\mathbf{S}^{2,1}\) 为 \(3\times2\);Kronecker 积定义 \(\mathbf{A}\otimes\mathbf{B}=[a_{ij}\mathbf{B}]\);结果为 \(3\times6\) 矩阵,元素形如 \(p_j s^{2,1}_{k,i}\),与逐元素链式法则 \(\partial a^2_k/\partial iw_{i,j}=s^{2,1}_{k,i}p_j\) 一致。
- P14.5:复杂度。样例网络(图 P14.3):单输入 \(R=1\),第 1 层 \(S^1\) 个神经元、带 \(D\) 个延迟的自反馈 \(\mathbf{LW}^{1,1}(d)\),单输出第 2 层。BPTT 由 (14.54) 主导:\(\partial F/\partial\mathbf{LW}^{1,1}(d)=\sum_t\mathbf{d}^1(t)[\mathbf{a}^1(t-d)]^T\),外积 \(O((S^1)^2)\),乘以 \(Q\) 个时刻和 \(D\) 个延迟,得 \(O((S^1)^2DQ)\)。RTRL 由 (14.34) 主导:\(\partial\mathbf{a}^2(t)/\partial\mathbf{x}^T=\partial^e\mathbf{a}^2/\partial\mathbf{x}^T+\mathbf{S}^{2,1}(t)\sum_{d=1}^{D}\mathbf{LW}^{1,1}(d)\,\partial\mathbf{a}^1(t-d)/\partial\mathbf{x}^T\),其中 \(S^1\times S^1\) 矩阵乘 \(S^1\times(D(S^1)^2+3S^1+1)\) 矩阵(列数即参数总数),为 \(O((S^1)^4D)\),再乘每个 \(d\)、每个 \(t\),得 \(O((S^1)^4D^2Q)\)。RTRL 的梯度计算远贵于 BPTT。
14.9 结语与延伸阅读(PDF p.565–566)
- 结语:优化流程与静态网络相同,区别在梯度计算。RTRL 计算量更大,但便于在线实现,一般存储需求比 BPTT 少;算 Jacobian 时常更高效。第 27 章有用动态网络做预测的实际案例。
- 延伸阅读:[DeHa07] De Jesús & Hagan 2007(BPTT/RTRL 对一大类动态网络的一般推导及复杂度实验比较);[MaNe99] Magnus & Neudecker《Matrix Differential Calculus》;[PhHa13] Phan & Hagan 2013(递归网络误差曲面的伪谷及改善训练的办法);[Werb90] Werbos 1990(BPTT 一般框架);[WiZi89] Williams & Zipser 1989(提出 RTRL)。
14.10 习题概览(PDF p.567–573)
E14.1 把图 14.1 画成 P14.1 的框图形式。E14.2 图 14.4 网络给定 \(iw=2\)、\(lw(1)=0.5\)、\(a(0)=4\)、\(p=\{2,3,2\}\),手算 \(a(1..3)\)。E14.3 图 P14.3 网络(\(D=2\),\(S^1=1\),给定权值和初值)手算响应。E14.4 对图 E14.1 网络定义架构集合、仿真顺序和矩阵维数。E14.5/E14.6 对图 E14.2 写 RTRL/BPTT 方程。E14.7 一个含零延迟环路的网络:写运行方程、能否仿真和训练,应如何检验(考查代数环/无延迟回路不可仿真)。E14.8–E14.11 多个网络的架构定义、响应方程、BPTT/RTRL 方程及 (14.63)(14.34) 的具体展开。E14.12 在线 RTRL:每步更新权值时梯度是否准确;MATLAB 实现(学习率 0.1,天际线输入)并与不更新权值的梯度比较。E14.13 对图 14.4 写出两步 SSE 的显式表达式并求导,与书中 RTRL/BPTT 结果核对。E14.14 Kronecker 积显式导数的数值计算。E14.15 若净输入改为乘积,RTRL/BPTT 如何改变。E14.16 若净输入改为距离 \(n_i=-\|{}_i\mathbf{w}-\mathbf{a}\|\)(RBF 型),算法如何改变。E14.17 图 E14.6 网络的复杂度比较(随 \(S^2\)、\(D\)、\(Q\))。E14.18 \(iw=1\)、\(a(0)=0\) 时把 \(a(t)\) 写成 \(lw\) 的多项式;\(lw=-1.4\) 时给定输入序列 \(a(8)\) 却很小,用多项式根解释伪谷。
本章要点
- 动态网络 = 带延迟(TDL)或反馈的网络,有记忆,逼近的是"序列到序列"的动态系统;无反馈为 FIR(有限记忆),有反馈为 IIR(无限记忆)。
- LDDN 框架用 \(\mathbf{IW}^{m,l}(d)\)、\(\mathbf{LW}^{m,l}(d)\)、\(DL\)、\(DI\) 等集合统一描述任意连接;需区分仿真顺序与反传顺序、输入层集合 \(X\) 与输出层集合 \(U\)。
- 权值对输出有直接作用和经过去输出的间接作用;只算静态部分会低估影响。
- RTRL 向前传播 \(\partial\mathbf{a}^u(t)/\partial\mathbf{x}^T\)(式 14.34),适合在线、Jacobian 计算高效,但梯度计算量 \(O(S^4D^2Q)\);BPTT 向后传播 \(\partial F/\partial\mathbf{a}^u(t)\)(式 14.63),梯度计算量 \(O(S^2DQ)\),但需存全序列。两者梯度完全相同。
- 敏感度 \(\mathbf{S}^{u,m}\) 只沿零延迟连接用静态反传计算;显式导数用 Kronecker 积表达。
- 训练难点:展开后的梯度消失、不稳定性导致的伪谷、输入序列的代表性。
与量化交易的关联
- 时序预测模型:书中把"金融市场预测"列为动态网络的应用。FIR 型网络(输入端 TDL)就是把过去 \(D\) 期收益/因子作为输入的非线性自回归模型(NARX 的前馈部分);IIR/递归型对应带隐状态的 RNN,可用于收益率、波动率、成交量等序列建模。理解 RTRL/BPTT 是理解 LSTM/GRU 等现代模型训练的基础。
- 在线学习与实盘:RTRL 可每个 bar 更新梯度,适合非平稳行情下的在线自适应模型;BPTT 需要整段序列,更适合离线批量回测训练(实务中常用截断 BPTT)。E14.12 讨论的"每步更新权值导致梯度不再精确"问题在在线学习中真实存在。
- 训练风险:伪谷和不稳定性提示递归模型训练结果对初值敏感,回测中需多次随机初始化、检查反馈权值的稳定性(如 \(|lw|<1\))。"输入序列须代表所有使用情形"直接对应样本覆盖不同市场状态(牛熊、高低波动)的要求;TDL 输入时间相关意味着不能像独立样本一样随机打散,交叉验证要用按时间切分的方式。
- 延迟线 = 滞后特征:\(DI_{m,l}\) 的选择就是滞后阶数选择,与 ARMA 定阶、因子滞后结构类似。
推荐习题
- E14.2、E14.3:手算动态网络响应,熟悉 FIR/IIR 递推。
- E14.13:对两步 SSE 直接求导,验证 RTRL 与 BPTT 一致,理解直接/间接作用。
- E14.12:实现在线 RTRL,体会在线更新对梯度精度的影响(与在线交易模型直接相关)。
- E14.17 与 P14.5:BPTT 与 RTRL 复杂度分析。
- E14.18:用多项式根解释递归网络误差曲面的伪谷,理解训练不稳定的来源。
- E14.4、E14.10:练习 LDDN 架构集合与仿真顺序的确定。
第 15 章 联想学习(Associative Learning)(PDF p.574–615)
15.0 目标(PDF p.574)
前面各章(第 4、7、10–14 章)的网络都是**有监督(supervised)训练,需要目标信号定义正确行为。本章介绍一组简单的无监督(unsupervised)**学习规则,使网络能学会经常同时出现的模式之间的联想(association);学会后可用于模式识别和回忆。这些规则虽简单,却是第 16、18、19 章强大网络的基础。
15.1 理论与背景(PDF p.575–576)
- 联想:系统输入与输出之间的任意联系,使得给出模式 A 时系统响应模式 B。输入模式称为刺激(stimulus),输出模式称为响应(response)。
- 联想是心理学行为主义学派的基础(该路线后来大体被否定)。Pavlov 的狗:每次给食物时摇铃,狗最终听到铃声就分泌唾液——经典条件反射(classical conditioning)。Skinner 训练老鼠按杠杆得食物——操作性条件反射(instrumental conditioning)。
- Hebb 假说 [Hebb49]:"当细胞 A 的轴突足够近以激发细胞 B,并反复或持续参与使其放电时,一个或两个细胞会发生某种生长过程或代谢变化,使 A 作为激发 B 的细胞之一的效率提高。"第 7 章讲过基于该假说的有监督规则,本章讲无监督形式。
- 历史:Anderson 与 Kohonen 在 1960 年代末到 1970 年代初独立提出线性联想器([Ande72]、[Koho72]);Grossberg 同期提出非线性连续时间联想网络 [Gros68]。
15.2 简单联想网络(Simple Associative Network)(PDF p.576–578)
单输入硬限幅联想器(图 15.1):
本章规则通常用在更大的网络(第 16、18、19 章的竞争网络)中;为单独演示,用带两类输入的简单网络:
- 无条件刺激(unconditioned stimulus) \(p^0\):类比 Pavlov 实验的食物,天生就会引起响应,对应权值固定。
- 条件刺激(conditioned stimulus) \(p\):类比铃声,对应权值按学习规则调整。
香蕉联想器(图 15.2):\(a=\mathrm{hardlim}(w^0p^0+wp+b)\),\(p^0\)=是否看到香蕉形状(无条件),\(p\)=是否闻到香蕉气味(条件)(15.3)。条件刺激与无条件刺激的选择是任意的,只为演示。希望网络只把"形状"与"是香蕉"联系起来:取 \(w^0>-b\)、\(w<-b\),例如 \(w^0=1\)、\(w=0\)(15.4),于是 \(a=\mathrm{hardlim}(p^0-0.5)\)(15.5):只有看到时才响应,闻没闻到都一样。
15.3 无监督 Hebb 规则(Unsupervised Hebb Rule)(PDF p.578–580)
- 何时该学联想?人和动物倾向于把同时发生的事物联系起来。如果香蕉气味刺激与"香蕉"概念响应(由看到形状激活)同时出现,就应加强两者联系,以后单凭气味也能激活概念。
- 规则:按输入 \(p_j\) 与输出 \(a_i\) 的乘积增大权值(15.6,参见式 7.5)
\[w_{ij}(q)=w_{ij}(q-1)+\alpha\,a_i(q)\,p_j(q)\]学习率 \(\alpha\) 决定刺激与响应需同时出现多少次才形成联想。在图 15.2 中,当 \(w\ge -b=0.5\) 时形成联想,此后 \(p=1\) 无论 \(p^0\) 如何都会产生 \(a=1\)。
- 局部学习规则(local learning rule):只用被更新权值所在层内可得的信号;与之对比,反传需要把敏感度从最后一层传回。本章所有规则都是局部的。
- 向量形式(15.7):\(\mathbf{W}(q)=\mathbf{W}(q-1)+\alpha\,\mathbf{a}(q)\mathbf{p}^T(q)\)。无监督学习对按时间给出的训练序列(training sequence) \(\mathbf{p}(1),\mathbf{p}(2),\dots,\mathbf{p}(Q)\)(15.8)响应:每次先算输出,再用 Hebb 规则更新权值。记号用 \(\mathbf{p}(q)\) 而非 \(\mathbf{p}_q\),强调时间序列性质。
香蕉例子:初值 \(w^0=1\)、\(w(0)=0\)(15.9);嗅觉传感器可靠,视觉传感器只在偶数步工作,训练序列重复 \(\{p^0(1)=0,p(1)=1\},\{p^0(2)=1,p(2)=1\}\)(15.10);\(\alpha=1\)(15.11)。
- \(q=1\):\(a(1)=\mathrm{hardlim}(1\cdot0+0\cdot1-0.5)=0\),无响应;\(w(1)=0+0\cdot1=0\)。
- \(q=2\):\(a(2)=\mathrm{hardlim}(1\cdot1+0\cdot1-0.5)=1\)(香蕉);气味与响应同时出现,\(w(2)=0+1\cdot1=1\)。
- \(q=3\):视觉又失灵,但 \(a(3)=\mathrm{hardlim}(0+1\cdot1-0.5)=1\);\(w(3)=2\)。 此后网络凭视觉或嗅觉都能认出香蕉,即使两套检测都间歇故障也大多正确。演示 nnd13uh(书中演示编号沿用旧版章号)。
Hebb 规则的两个实际缺陷:①继续训练,\(w\) 会无界增长,与生物突触不符;②没有让权值减小的机制——输入或输出有噪声时,所有权值都会(缓慢地)增长,最终网络对任何刺激都响应。
15.4 带衰减的 Hebb 规则(Hebb Rule with Decay)(PDF p.580–582)
加权值衰减项(参见式 7.45)(15.18):
最大权值:在标量形式中令 \(a_i=p_j=1\)(学习最大化)并令新旧权值相等(稳态):\(w_{ij}=(1-\gamma)w_{ij}+\alpha\),得(15.19)
香蕉例子,\(\gamma=0.1\):前两步同前,\(w(1)=0\)、\(w(2)=1\);第三步 \(w(3)=w(2)+a(3)p(3)-0.1w(2)=1+1-0.1=1.9\),只增 0.9。无论强化多少次 \(w\) 都不超过 \(w^{\max}=1/0.1=10\)(15.23)。小的随机增量很快衰减掉,所以学到的联想不会是噪声伪迹。图 15.3:无衰减时每次激活权值增同样的量(线性增长);有衰减时指数趋近 10。演示 nnd13hd、nnd13edr。
代价:环境必须偶尔重新给出所有已有联想的刺激,否则联想会衰减消失。若 \(a_i=0\),式 (15.18) 变为 \(w_{ij}(q)=(1-\gamma)w_{ij}(q-1)\)(15.24),\(\gamma=0.1\) 时 \(w_{ij}(q)=0.9w_{ij}(q-1)\)(15.25):每次不激活就丢 10%,任何已学联想终将丢失。解决办法见 instar 规则。
15.5 简单识别网络:instar(PDF p.582–584)
instar(图 15.4):向量输入、标量输出的神经元,是能做模式识别的最简单网络。结构与感知机(图 4.2)、ADALINE(图 10.2)、线性联想器(图 7.1)相似,名称不同既有历史原因,也因为功能和分析方式不同:这里不关注决策边界,而关注识别某一模式的能力(如 Hamming 网络第一层,p.3-10)。
当 \({}_1\mathbf{w}^T\mathbf{p}\ge -b\)(15.27)时激活。由式 (5.15):
- 取 \(b=-\|{}_1\mathbf{w}\|\,\|\mathbf{p}\|\)(15.29),则只有 \(\mathbf{p}\) 与 \({}_1\mathbf{w}\) 完全同向(\(\theta=0\))时才激活,只识别模式 \({}_1\mathbf{w}\)。
- 若要响应 \({}_1\mathbf{w}\) 附近(\(\theta\) 小)的模式,把 \(b\) 调到比 \(-\|{}_1\mathbf{w}\|\|\mathbf{p}\|\) 更大;\(b\) 越大,能激活的模式越多,判别力越弱。
- 以上分析假设所有输入向量范数相同;归一化问题在第 16、18、19 章再谈。
- 已知要识别的向量就能直接设计网络;但要无监督地学会一个向量需要新规则,因为两版 Hebb 规则都不产生归一化权值。
15.6 instar 规则(Instar Rule)(PDF p.584–588)
思路:带衰减的 Hebb 规则问题在于必须反复呈现刺激,否则遗忘。改为只在 instar 激活(\(a_i\neq0\))时才衰减:权值仍有界,但遗忘最小化。在原 Hebb 规则(15.30)上加与 \(a_i(q)\) 成比例的衰减项(15.31):
橙子识别器(图 15.6):\(a=\mathrm{hardlim}(w^0p^0+\mathbf{W}\mathbf{p}+b)\)(15.35)。\(p^0\)=视觉是否认出橙子(无条件刺激);\(\mathbf{p}=[\text{shape};\text{texture};\text{weight}]\) 三个测量(条件刺激),元素取 \(\pm1\)(同第 3 章式 3.2),故 \(\|\mathbf{p}\|=\sqrt3\)(15.36)。\(b=-2\),比 \(-\|\mathbf{p}\|^2=-3\) 稍正(参照 15.29)。\(w^0=3>-b\),视觉与响应恒有联想;测量权值初值 \(\mathbf{W}(0)={}_1\mathbf{w}^T(0)=[0\ 0\ 0]\)(15.37);instar 规则 \(\alpha=1\)(15.38)。视觉只在偶数步工作,训练序列重复 \(\{p^0(1)=0,\mathbf{p}(1)=[1;-1;-1]\},\{p^0(2)=1,\mathbf{p}(2)=[1;-1;-1]\}\)(15.39)。
- \(q=1\):\(a(1)=\mathrm{hardlim}(3\cdot0+[0\,0\,0]\mathbf{p}-2)=0\),权值不变。
- \(q=2\):\(a(2)=\mathrm{hardlim}(3-2)=1\);\({}_1\mathbf{w}(2)=[0;0;0]+1\cdot([1;-1;-1]-[0;0;0])=[1;-1;-1]\),权值成为橙子测量向量的拷贝。
- \(q=3\):视觉失灵,\(a(3)=\mathrm{hardlim}(0+3-2)=1\),仍识别;\({}_1\mathbf{w}(3)=[1;-1;-1]\) 不再变化(完全学会后权值停止变化;学习率更低则需更多迭代)。 演示 nnd13is、nnd13gis。
15.7 Kohonen 规则(PDF p.588)
与 instar 规则一样让权值学习输入向量,适合识别;不同之处是学习量不正比于输出 \(a_i(q)\),而是当神经元下标 \(i\) 属于集合 \(X(q)\) 时学习。若层的传输函数只输出 0/1(如 hardlim),令 \(X(q)=\{i: a_i(q)=1\}\),两者等价。Kohonen 规则的好处是 \(X(q)\) 可以有其他定义,例如第 16 章自组织特征图中的"获胜者邻域"。
15.8 简单回忆网络:outstar(PDF p.589)
outstar(图 15.7):标量输入、向量输出,通过把刺激与一个向量响应联系起来实现模式回忆(pattern recall):
15.9 outstar 规则(Outstar Rule)(PDF p.590–593)
instar 规则让衰减项正比于输出 \(a_i\);outstar 规则反过来让衰减项正比于输入 \(p_j\)(15.49):
菠萝回忆器(图 15.8):\(\mathbf{a}=\mathrm{satlins}(\mathbf{W}^0\mathbf{p}^0+\mathbf{W}p)\)(15.52),\(\mathbf{W}^0=\mathbf{I}\)(15.53)。\(\mathbf{p}^0=[\text{shape};\text{texture};\text{weight}]\) 为测量(无条件刺激),\(p\)=是否看到菠萝(条件刺激)(15.54)。输出应反映当前水果的测量,用一切可得输入。\(\mathbf{W}^0=\mathbf{I}\) 使任何 \(\pm1\) 测量被复制到输出;\(\mathbf{W}\) 初值为 0,看到菠萝本身不产生响应;\(\mathbf{W}\) 用 outstar 规则、\(\alpha=1\) 更新(15.55)。菠萝测量 \(\mathbf{p}^{pineapple}=[-1;-1;1]\)(15.56);测量系统只在偶数步可用,序列重复 \(\{\mathbf{p}^0(1)=\mathbf{0},p(1)=1\},\{\mathbf{p}^0(2)=[-1;-1;1],p(2)=1\}\)(15.57)。
- \(q=1\):\(\mathbf{a}(1)=\mathrm{satlins}(\mathbf{0}+\mathbf{0}\cdot1)=\mathbf{0}\),无响应;\(\mathbf{w}_1(1)=\mathbf{0}+(\mathbf{0}-\mathbf{0})\cdot1=\mathbf{0}\)。
- \(q=2\):\(\mathbf{a}(2)=[-1;-1;1]\)(给出测量);\(\mathbf{w}_1(2)=\mathbf{0}+([-1;-1;1]-\mathbf{0})\cdot1=[-1;-1;1]\),权值成为测量的拷贝。
- \(q=3\):测量失效,\(\mathbf{a}(3)=\mathrm{satlins}(\mathbf{0}+[-1;-1;1]\cdot1)=[-1;-1;1]\),回忆出测量;之后除非看到测量不同的菠萝,权值不再变。 演示 nnd13os。第 19 章 ART 网络同时使用 instar 和 outstar 规则。
15.10 结果汇总(PDF p.594–595)
联想定义;无监督 Hebb \(\mathbf{W}(q)=\mathbf{W}(q-1)+\alpha\mathbf{a}\mathbf{p}^T\);带衰减 Hebb \(\mathbf{W}(q)=(1-\gamma)\mathbf{W}(q-1)+\alpha\mathbf{a}\mathbf{p}^T\);instar 结构及激活条件 \(\|{}_1\mathbf{w}\|\|\mathbf{p}\|\cos\theta\ge-b\);instar 规则及其 \(a_i=1\) 时的图解;Kohonen 规则;outstar 结构及规则。
15.11 例题(PDF p.596–606)
- P15.1 带衰减 Hebb:若 \(a_i\)、\(p_j\) 一起在 0 和 1 之间交替,最大权值多少?写两步:\(w(q+2)=(1-\gamma)[(1-\gamma)w(q)+a(q)p(q)\alpha]+\alpha a(q+1)p(q+1)\)。为求最大值,令 \(a(q)p(q)=0\)、\(a(q+1)p(q+1)=1\)(先降后升,\(w(q+2)\) 是两者中较大者):\(w(q+2)=(1-\gamma)^2w(q)+\alpha\)。稳态 \(w^{\max}=(1-\gamma)^2w^{\max}+\alpha\),
\[w^{\max}=\frac{\alpha}{\gamma(2-\gamma)}\]MATLAB 用 meshgrid/mesh 画出(图 P15.1):衰减率相对学习率很小时 \(w^{\max}\to\infty\)。
- P15.2 用 instar 规则、\(\alpha=0.4\) 重训橙子识别器。MATLAB 逐步:\(q=1\) \(a=0\);\(q=2\) \(a=1\),\(\mathbf{W}=[0.4,-0.4,-0.4]\);\(q=3\) \(a=0\)(\(3\times0.4=1.2<2\));\(q=4\) \(a=1\),\(\mathbf{W}=[0.64,\dots]\);\(q=5\) \(a=0\);\(q=6\) \(a=1\),\(\mathbf{W}=[0.784,\dots]\);\(q=7\) 只凭测量 \(a=1\)(\(3\times0.784=2.352\ge2\)),\(\mathbf{W}=[0.8704,\dots]\)。学习率低,需要测量与响应配对 3 次(偶数步)才形成足够强的联想。
- P15.3 设计识别两个向量 \(\mathbf{p}_1=[5;-5;5]\)、\(\mathbf{p}_2=[-5;5;5]\) 的网络,仅在完全相同时响应。两个 instar 组成一层(图 P15.2):\(\mathbf{W}=[\mathbf{p}_1^T;\mathbf{p}_2^T]=\begin{bmatrix}5&-5&5\\-5&5&5\end{bmatrix}\)(这正是 Hamming 网络第一层的设计方式,Hamming 第一层就是一层 instar)。\(\|\mathbf{p}_1\|^2=\|\mathbf{p}_2\|^2=75\),按 (15.29) 取 \(b_1=b_2=-75\)。测试:\(\mathbf{p}_1\to\mathbf{a}=[1;0]\);\(\mathbf{p}_3=[-5;5;-5]\to[0;0]\)。
- P15.4 instar \({}_1\mathbf{w}=[1;-1;-1]\)、\(b=-2\),输入范数 \(\sqrt3\)。激活需 \(\sqrt3\sqrt3\cos\theta\ge2\),即 \(\cos\theta\ge2/3\),\(\theta\le48.19°\)。求边界向量:约束 \(p_1-p_2-p_3-2=0\) 与 \(p_1^2+p_2^2+p_3^2=3\);令 \(p_1=0\),得 \(p_2+p_3=-2\)、\(p_2p_3=0.5\),解得 \(p_2=-1\pm\sqrt{0.5}\),\(p_3\) 取另一个值,如 \(\mathbf{p}=[0;\,-1+\sqrt{0.5};\,-1-\sqrt{0.5}]\)。代入网络得净输入 0,恰在激活区边界(hardlim(0)=1)。
- P15.5 instar(\(w^0=3\),\(b=-2\),两维测量),训练序列 \(\{p^0=0,\mathbf{p}=[-1;1]\},\{p^0=1,\mathbf{p}=[-1;1]\}\) 重复,\(\alpha=0.5\),\(\mathbf{W}(0)=\mathbf{0}\)。\(q=1\):\(a=0\),不变;\(q=2\):\(a=1\),\({}_1\mathbf{w}=[-0.5;0.5]\);\(q=3\):\(a=\mathrm{hardlim}(0+1-2)=0\),不变;\(q=4\):\(a=1\),\({}_1\mathbf{w}=[-0.75;0.75]\);继续则收敛到 \([-1;1]\)。图解(图 P15.4):只在第 2、4 步更新,每次从当前位置向输入走一半(\(\alpha=0.5\),\({}_1\mathbf{w}(q)=0.5\,{}_1\mathbf{w}(q-1)+0.5\,\mathbf{p}(q)\))。
15.12 结语与延伸阅读(PDF p.607–609)
- 结语:每条规则都通过加强同时出现的刺激与响应之间的联系来工作。instar(训练后识别模式)与 outstar(训练后回忆模式)是后三章的基本构件:第 16、18 章用 instar 层做模式识别(与第 3 章 Hamming 网络相似,其第一层就是 instar 层);第 19 章结合 instar 与 outstar 实现稳定学习。
- 延伸阅读:[Ande72] Anderson 线性联想器;[Gros68] Grossberg 早期非线性微分方程联想学习模型;[Gros82] Grossberg 论文集《Studies of Mind and Brain》;[Hebb49]《The Organization of Behavior》;[Koho72] Kohonen 相关矩阵记忆(外积/Hebb 规则);[Koho87]《Self-Organization and Associative Memory》(提出 Kohonen 规则);[Leib90] 行为心理学教材。
15.13 习题概览(PDF p.610–615)
E15.1 带衰减 Hebb(\(\alpha=0.3\),\(\gamma=0.1\),\(b=-0.8\),\(w^0=1\)):从 \(w=0\) 起需连续呈现多少次才对测试集响应,画 \(w\) 曲线;从 \(w=1\) 起,不强化时多少次后失去联想。E15.2 用 (15.19) 求稳态 \(w=\alpha/\gamma=3\) 并与图核对。E15.3 不带衰减重做。E15.4 一个形似 instar、但符号/形式不同的规则(\(\Delta w_{ij}=-\alpha a_i(p_j+w_{ij}^{old})\) 一类),问何时非零、权值趋向何值、有何用途。E15.5 instar 学习交替出现的两个单位向量 \([0.174;\pm0.985]\)(\(\alpha=0.6\)),最终权值与训练向量比较,长期训练后的权值范数。E15.6 instar(\(\alpha=0.25\),\(\mathbf{W}(0)=[1\ 0]\))前 8 步及图解。E15.7 设计识别三个四维 \(\pm1\) 向量的网络,选偏置并测试。E15.8 把视觉系统换成人:是有监督还是无监督?与目标信号的异同。E15.9 电梯网络:\(\mathbf{a}=\mathrm{hardlims}(\mathbf{W}^0\mathbf{p}^0+\mathbf{W}\mathbf{p}+\mathbf{b})\),按钮楼层码经单位阵输入,三位高管的视网膜扫描为 one-hot 输入,用 outstar 规则(\(\alpha=0.6\))学习每人常去楼层,模拟按键序列并预测结果。
本章要点
- 联想 = 刺激与响应的联系;无条件刺激的权值固定,条件刺激的权值靠学习;同时出现即加强(Hebb 原理),规则都是局部的。
- 无监督 Hebb 规则 \(\Delta\mathbf{W}=\alpha\mathbf{a}\mathbf{p}^T\):权值无界、不会减小。加衰减后 \(w^{\max}=\alpha/\gamma\),但不强化就遗忘。
- instar(向量入、标量出)识别模式:激活条件 \(\|\mathbf{w}\|\|\mathbf{p}\|\cos\theta\ge-b\),偏置控制"多近才算像"。instar 规则 \({}_i\mathbf{w}\leftarrow{}_i\mathbf{w}+\alpha a_i(\mathbf{p}-{}_i\mathbf{w})\) 只在激活时学习/衰减,权值向输入移动,输入归一化则权值归一化。
- Kohonen 规则把"激活"换成"属于集合 \(X(q)\)",为 SOFM 铺路。
- outstar(标量入、向量出)回忆模式:outstar 规则 \(\mathbf{w}_j\leftarrow\mathbf{w}_j+\alpha(\mathbf{a}-\mathbf{w}_j)p_j\) 在输入非零时把列向输出移动。识别存"行",回忆存"列"。
与量化交易的关联
本章与量化交易没有直接的常用工具对应,价值主要在概念层面:
- instar/Kohonen 规则 \({}_i\mathbf{w}\leftarrow(1-\alpha){}_i\mathbf{w}+\alpha\mathbf{p}\) 本质上是**指数移动平均(EMA)**向输入靠拢,与在线均值/中心估计、EWMA 更新完全同构;带衰减 Hebb 的 \((1-\gamma)\) 因子即指数遗忘,与 RiskMetrics 式 EWMA 协方差的衰减因子思想一致,\(w^{\max}=\alpha/\gamma\) 类似 EMA 的稳态幅度。
- instar 的"内积 ≥ 阈值"即余弦相似度匹配,可类比用相似度在历史行情中做形态匹配(pattern matching)、找相似交易日;偏置决定匹配的严格程度。
- 这些规则是第 16 章竞争学习/SOM/LVQ 的基础,后者可用于市场状态聚类,见下章。
推荐习题
- P15.1 与 E15.1、E15.2:带衰减 Hebb 的稳态权值推导,理解指数遗忘。
- P15.2、E15.5、E15.6:instar 规则的迭代与图解,体会学习率与收敛速度。
- P15.4:用余弦条件求 instar 的识别边界。
- E15.9:outstar 规则的完整模拟(回忆与"偏好"学习)。
- E15.8:有监督与无监督的界限讨论。
第 16 章 竞争网络(Competitive Networks)(PDF p.616–663)
16.0 目标(PDF p.616)
第 3 章的 Hamming 网络能做模式识别,但原型模式必须事先已知并写进权值矩阵的行。本章网络结构和运行方式与 Hamming 网络很像,但用第 15 章的联想学习规则自适应地学习分类。介绍三种:竞争网络(competitive network)、自组织特征图(self-organizing feature map, SOFM)、**学习向量量化(learning vector quantization, LVQ)**网络。
16.1 背景(PDF p.617–618)
- Hamming 网络是最简单的竞争网络之一:输出层神经元相互竞争决出获胜者,获胜者指出哪个原型最能代表输入。竞争通过**侧抑制(lateral inhibition)**实现——输出层神经元之间的负连接。
- 历史:1959 年 Rosenblatt 的"自发"分类器(基于感知机的无监督网络,把输入分成成员数大致相等的两类);1960 年代末到 1970 年代初 Grossberg 的多种侧抑制竞争网络(噪声抑制、对比度增强、向量归一化,见第 18、19 章);1973 年 von der Malsburg 的自组织规则,使相邻神经元对相似输入响应(模仿 Hubel 与 Wiesel 在猫视觉皮层发现的结构),但需非局部计算来归一化权值,生物合理性较差;Grossberg 重新发现 instar 规则(此前 Nilsson 1965 年《Learning Machines》已提出),说明学习归一化输入的权值会自动归一化;Kohonen 偏重工程应用和高效数学描述,1970 年代提出 instar 规则的简化版,并高效地把拓扑结构引入竞争网络。
- 本章采用 Kohonen 框架:体现竞争网络主要特征,又比 Grossberg 网络在数学上易处理。顺序:简单竞争网络 → 带拓扑的 SOFM → 把竞争放进有监督框架的 LVQ。
16.2 Hamming 网络回顾(PDF p.618–620)
两层(图 16.1):第一层是一层 instar,计算输入与各原型的相关;第二层做竞争,决定哪个原型离输入最近。
第 1 层:单个 instar 只能识别一个模式,多模式需要多个 instar。要识别原型 \(\{\mathbf{p}_1,\dots,\mathbf{p}_Q\}\)(16.1),取(16.2)
第 2 层:instar 用 hardlim 判断"够不够近";这里有多个 instar,要判断"哪个最近",于是用竞争层取代 hardlim。以第一层输出初始化(16.4)\(\mathbf{a}^2(0)=\mathbf{a}^1\),再按递归关系更新(16.5):
16.3 竞争层(Competitive Layer)(PDF p.620–621)
每个神经元激励自己、抑制其他所有神经元。为简化,定义一个直接完成递归竞争层功能的传输函数(16.8、16.9):
16.4 竞争学习(Competitive Learning)(PDF p.622–624)
可把 \(\mathbf{W}\) 的行设为期望原型来设计分类器;但希望在不知道原型时也能学习。用 instar 规则(16.12)\({}_i\mathbf{w}(q)={}_i\mathbf{w}(q-1)+\alpha a_i(q)(\mathbf{p}(q)-{}_i\mathbf{w}(q-1))\)。竞争网络中只有获胜者 \(i^*\) 的 \(a_i\ne0\),所以等价于 Kohonen 规则(16.13、16.14):
例:六个归一化二维向量(16.15)\(\mathbf{p}_1=[-0.1961;0.9806]\)、\(\mathbf{p}_2=[0.1961;0.9806]\)、\(\mathbf{p}_3=[0.9806;0.1961]\)、\(\mathbf{p}_4=[0.9806;-0.1961]\)、\(\mathbf{p}_5=[-0.5812;-0.8137]\)、\(\mathbf{p}_6=[-0.8137;-0.5812]\),构成三簇。三神经元,"随机"归一化初始权值(16.16)\({}_1\mathbf{w}=[0.7071;-0.7071]\)、\({}_2\mathbf{w}=[0.7071;0.7071]\)、\({}_3\mathbf{w}=[-1;0]\)。输入 \(\mathbf{p}_2\)(16.17):\(\mathbf{W}\mathbf{p}_2=[-0.5547;0.8321;-0.1961]\),\(\mathbf{a}=[0;1;0]\),神经元 2 获胜。\(\alpha=0.5\)(16.18):\({}_2\mathbf{w}^{new}=[0.7071;0.7071]+0.5([0.1961;0.9806]-[0.7071;0.7071])=[0.4516;0.8438]\)。随机反复呈现后,每个权值向量指向一个不同的簇,成为该簇原型(图 16.5);之后对新向量按最近原型分类,各神经元负责的区域如页边阴影图所示。演示 nnd14cl。
16.5 竞争层的问题(PDF p.624–625)
- 学习率的权衡:\(\alpha\approx0\) 学得慢但到达簇中心后稳定;\(\alpha\approx1\) 学得快但到达簇后会随簇内不同向量来回振荡。可先大后小地退火学习率,但若网络需要持续适应输入分布的新变化,此法失效。
- 簇靠得近时的不稳定:某簇的原型可能"侵入"另一权值向量的领地,打乱现有分类(图 16.6:反复呈现两个输入使中、右两簇的权值右移,右簇的一个向量被中间权值重新归类;继续右移后中间权值又"丢掉"部分向量给左边权值)。
- 死神经元(dead neuron):初始权值离所有输入太远,永远赢不了、永远不学习。解决:给每个神经元的净输入加负偏置,每赢一次就让偏置更负,使常胜者更难赢——称为**良心(conscience)**机制(见 E16.4)。
- 类别数恒等于神经元数,簇数未知时不适用;每个类是输入空间的凸区域,无法形成非凸类或不连通区域的并。 部分问题由 SOFM、LVQ(本章)和 ART(第 19 章)解决。
16.6 生物中的竞争层(PDF p.625–627)
- 生物神经元通常排成二维层,通过侧向反馈密集互连(页边 25 个神经元的 5×5 网格)。权值常随神经元间距离变化。Hamming 第 2 层权值可写成按下标(16.19)\(w_{ij}=1\)(\(i=j\))、\(-\varepsilon\)(\(i\ne j\)),或按距离(16.20)\(w_{ij}=1\)(\(d_{ij}=0\))、\(-\varepsilon\)(\(d_{ij}>0\))。
- 中心兴奋/周边抑制(on-center/off-surround):自我加强(中心),抑制所有其他神经元(周边)。这是生物竞争层的粗略近似:生物中神经元不仅加强自己,也加强邻近神经元,兴奋到抑制随距离平滑过渡——近处兴奋且随距离减弱,超过一定距离变为抑制且随距离增强,形状称为墨西哥帽函数(Mexican-hat function)(图 16.7)。
- 生物竞争也比胜者全得弱:通常不是单个获胜者,而是以最活跃神经元为中心的活动泡(bubbles of activity),部分源于中心-周边连接模式,部分源于非线性反馈(见第 18 章对比度增强)。
16.7 自组织特征图 SOFM(PDF p.627–631)
为在不实现非线性中心-周边反馈的情况下模拟活动泡,Kohonen 的简化:先按竞争层方法确定获胜神经元 \(i^*\),再用 Kohonen 规则更新获胜者邻域内所有神经元的权值(16.21):
例(图 16.8,5×5 网格,编号 1–25):\(N_{13}(1)=\{8,12,13,14,18\}\)(16.23);\(N_{13}(2)=\{3,7,8,9,11,12,13,14,15,17,18,19,23\}\)(16.24)。神经元排列也可以是一维(半径 1 内只有两个邻居,端点只有一个)或三维以上;距离也可有不同定义,Kohonen 建议矩形和六边形邻域以便高效实现;网络性能对邻域的确切形状不敏感。
演示(图 16.9):25 个神经元的二维拓扑,权值 3 维且归一化(落在球面上),相邻神经元的点用线连接以显示网络拓扑在输入空间中的排布。在球面上的一个正方形区域随机取向量呈现,邻域半径 1。权值有两种倾向:①随呈现增多在输入空间铺开;②向邻居的权值靠拢。两者共同作用,使层内神经元重排、均匀地划分输入空间。图 16.10(每幅 250 次迭代)显示 25 个神经元的权值铺满活跃输入区并组织成与其拓扑匹配的形状;输入在区域内等概率产生,因此各神经元划分大致相等的面积。图 16.11 给出其他输入区域的结果。
扭结(twist)(图 16.12):网的两部分分别拟合输入空间的不同部分,中间形成扭转;两端已形成稳定分类,扭结几乎不可能消除。
改进特征图(PDF p.630–631):
- 邻域逐渐缩小:初始 \(d\) 大,训练中逐渐缩小到只含获胜者。加快自组织并使扭结极不可能出现。
- 学习率随时间递减:初始为 1 以快速学习,渐近减到 0 以稳定。
- 获胜者用比邻居更大的学习率。
- 用距离代替内积计算净输入,输入向量就无需归一化(见 LVQ 一节)。
- 第 26 章有批量版 SOFM 及聚类案例。演示 nnd14fm1、nnd14fm2。
16.8 学习向量量化 LVQ(PDF p.631–636)
结构(图 16.13):混合网络,结合无监督与有监督学习。第一层是竞争层,每个神经元被指派给一个类(常有多个神经元属于同一类);第二层是线性层,每个类对应一个第二层神经元。故第一层神经元数 \(S^1\ge S^2\),通常更大。
第一层用距离而非内积(不需归一化;向量归一化时两者结果相同)(16.25–16.27):
LVQ 学习(PDF p.633–634):有监督,需要样本 \(\{\mathbf{p}_1,\mathbf{t}_1\},\dots,\{\mathbf{p}_Q,\mathbf{t}_Q\}\),目标向量为 one-hot,1 所在行表示类别。例:把某三维向量 \(\mathbf{p}_1=[\sqrt{1/2};0;\sqrt{1/2}]\) 归入四类中的第 2 类,\(\mathbf{t}_1=[0;1;0;0]\)(16.29)。学习前先指定每个隐层神经元属于哪个输出神经元,得到 \(\mathbf{W}^2\)(16.30);通常每类分配同样多的隐层神经元,使每类由同样多的凸区域组成。\(\mathbf{W}^2\) 定义后不再改变;隐层权值 \(\mathbf{W}^1\) 用 Kohonen 规则的变体训练:每次输入 \(\mathbf{p}\),计算到各原型的距离,隐层神经元竞争,\(i^*\) 获胜,\(\mathbf{a}^1\) 第 \(i^*\) 个元素为 1,\(\mathbf{a}^2=\mathbf{W}^2\mathbf{a}^1\) 只有第 \(k^*\) 个元素非零,表示 \(\mathbf{p}\) 被归入类 \(k^*\)。
- 分类正确(\(a^2_{k^*}=t_{k^*}=1\)):获胜者向输入移动(16.31)\({}_{i^*}\mathbf{w}^1(q)={}_{i^*}\mathbf{w}^1(q-1)+\alpha(\mathbf{p}(q)-{}_{i^*}\mathbf{w}^1(q-1))\)。
- 分类错误(\(a^2_{k^*}=1\ne t_{k^*}=0\)):获胜者远离输入(16.32)\({}_{i^*}\mathbf{w}^1(q)={}_{i^*}\mathbf{w}^1(q-1)-\alpha(\mathbf{p}(q)-{}_{i^*}\mathbf{w}^1(q-1))\)。 结果:每个隐层神经元向其所属类的向量靠拢,远离其他类的向量。
例(XOR 型问题)(16.33–16.37):类 1:\(\mathbf{p}_1=[-1;-1]\)、\(\mathbf{p}_2=[1;1]\);类 2:\(\mathbf{p}_3=[1;-1]\)、\(\mathbf{p}_4=[-1;1]\);目标 \(\mathbf{t}_1=\mathbf{t}_2=[1;0]\),\(\mathbf{t}_3=\mathbf{t}_4=[0;1]\)。每类两个子类,共 4 个隐层神经元,\(\mathbf{W}^2=\begin{bmatrix}1&1&0&0\\0&0&1&1\end{bmatrix}\)(隐层 1、2 → 类 1,3、4 → 类 2;每类由两个凸区域组成)。随机初始 \({}_1\mathbf{w}^1=[-0.543;0.840]\)、\({}_2\mathbf{w}^1=[-0.969;-0.249]\)、\({}_3\mathbf{w}^1=[0.997;0.094]\)、\({}_4\mathbf{w}^1=[0.456;0.954]\)。呈现 \(\mathbf{p}_3\)(16.38):\(\mathbf{n}^1=[-2.40;-2.11;-1.09;-2.03]\),\(\mathbf{a}^1=[0;0;1;0]\);\(\mathbf{a}^2=\mathbf{W}^2\mathbf{a}^1=[0;1]\)(16.39),类 2,正确;\(\alpha=0.5\):\({}_3\mathbf{w}^1(1)=[0.997;0.094]+0.5([1;-1]-[0.997;0.094])=[0.998;-0.453]\)(16.40)。收敛后(图 16.14 右)四个原型分别靠近四个输入点,类 1 区域(灰)和类 2 区域(蓝)呈 XOR 式分布——单个竞争层或感知机做不到。
16.9 改进 LVQ:LVQ2(PDF p.636)
LVQ 的两个局限:①与竞争层一样可能出现死神经元,用良心机制解决(E16.4);②初始权值布局不利时,某神经元的权值可能要穿过它不代表的类的区域才能到达所代表的区域,途中被该区域的向量排斥而过不去,永远无法正确分类目标区域。修正:若获胜者分类错误,照旧让它远离输入,同时找出离输入最近且能正确分类的那个神经元,把它向输入移动。分类正确时只移动一个神经元;分类错误时移动两个(一个远离、一个靠近)。这就是 LVQ2。演示 nnd14lv1、nnd14lv2。
16.10 结果汇总(PDF p.637–638)
竞争层 \(\mathbf{a}=\mathrm{compet}(\mathbf{W}\mathbf{p})\) 与 Kohonen 规则(仅获胜者更新);SOFM 结构(25 个神经元,3 维输入)与邻域版 Kohonen 规则 \(i\in N_{i^*}(d)\),\(N_i(d)=\{j:d_{ij}\le d\}\);LVQ 结构(\(n^1_i=-\|{}_i\mathbf{w}^1-\mathbf{p}\|\),\(\mathbf{a}^1=\mathrm{compet}(\mathbf{n}^1)\),\(\mathbf{a}^2=\mathbf{W}^2\mathbf{a}^1\),\(w^2_{ki}=1\) 表示子类 \(i\) 属于类 \(k\))及正确时靠近、错误时远离的学习规则。
16.11 例题(PDF p.639–651)
- P16.1 对图 P16.1 中四簇归一化向量设计最少神经元的竞争层:四类需四个神经元,每个原型取簇中心方向并归一化。类 1–3 中心大致在 45° 的倍数方向:\({}_1\mathbf{w}=[-1/\sqrt2;1/\sqrt2]\)、\({}_2\mathbf{w}=[1/\sqrt2;1/\sqrt2]\)、\({}_3\mathbf{w}=[1/\sqrt2;-1/\sqrt2]\);第 4 簇中心到纵轴距离约为到横轴的两倍:\({}_4\mathbf{w}=[-2/\sqrt5;-1/\sqrt5]\)。\(\mathbf{W}\) 为这些向量转置后堆叠。决策边界为相邻权值向量之间圆弧的角平分线(图 P16.3)。
- P16.2 输入 \(\mathbf{p}_1=[-1;0]\)、\(\mathbf{p}_2=[0;1]\)、\(\mathbf{p}_3=[1/\sqrt2;1/\sqrt2]\);初始 \({}_1\mathbf{w}=[0;-1]\)、\({}_2\mathbf{w}=[-2/\sqrt5;1/\sqrt5]\)、\({}_3\mathbf{w}=[-1/\sqrt5;2/\sqrt5]\);\(\alpha=0.5\),顺序 \(\mathbf{p}_1,\mathbf{p}_2,\mathbf{p}_3,\mathbf{p}_1,\mathbf{p}_2,\mathbf{p}_3\)。
- \(\mathbf{p}_1\):\(\mathbf{W}\mathbf{p}_1=[0;0.894;0.447]\),神经元 2 胜,\({}_2\mathbf{w}=[-0.947;0.224]\)。
- \(\mathbf{p}_2\):\(\mathbf{W}\mathbf{p}_2=[-1;0.224;0.894]\),神经元 3 胜,\({}_3\mathbf{w}=[-0.224;0.947]\)。
- \(\mathbf{p}_3\):\(\mathbf{W}\mathbf{p}_3=[-0.707;-0.512;0.512]\),神经元 3 胜,\({}_3\mathbf{w}=[0.2417;0.8272]\)。
- 再来一轮:神经元 2 胜一次、神经元 3 胜两次。最终 \({}_1\mathbf{w}=[0;-1]\)、\({}_2\mathbf{w}=[-0.974;0.118]\)、\({}_3\mathbf{w}=[0.414;0.8103]\)。\({}_2\mathbf{w}\) 几乎学会 \(\mathbf{p}_1\);\({}_3\mathbf{w}\) 落在 \(\mathbf{p}_2\) 和 \(\mathbf{p}_3\) 之间;\({}_1\mathbf{w}\) 从未更新——死神经元。
- P16.3 图解训练(两个神经元、四个输入,\(\alpha=0.5\)):\(\mathbf{p}_1\)、\(\mathbf{p}_2\) 时神经元 1 获胜并各走一半;\(\mathbf{p}_3\)、\(\mathbf{p}_4\) 时神经元 2 获胜。继续训练则神经元 1 负责 \(\mathbf{p}_1,\mathbf{p}_2\),神经元 2 负责 \(\mathbf{p}_3,\mathbf{p}_4\)。留问:换呈现顺序,最终分类会不同吗?(竞争学习结果依赖顺序。)
- P16.4 一维 9 神经元特征图,三维归一化权值(第 1、3、7、9 个形如 \([\pm0.41;\pm0.41;0.82]\),第 2、4、6、8 个形如 \([\pm0.45;0;0.89]\) 或 \([0;\pm0.45;0.89]\),第 5 个 \([0;0;1]\))。输入 \(\mathbf{p}=[0.67;0.07;0.74]\):\(\mathbf{W}\mathbf{p}=[0.91,0.96,0.85,0.70,0.74,0.63,0.36,0.36,0.3]^T\),神经元 2 胜;半径 1 邻域含 1、3;\(\alpha=0.1\) 更新:\({}_1\mathbf{w}=[0.43;0.37;0.81]\),\({}_2\mathbf{w}=[0.47;0.01;0.88]\),\({}_3\mathbf{w}=[0.43;-0.36;0.81]\)(图 P16.8→P16.9)。
- P16.5 给定 LVQ 的 \(\mathbf{W}^1\)(5 个二维原型)与 \(\mathbf{W}^2\)(3×5),画类区域:按 \(\mathbf{W}^2\) 各列非零元素的行号给每个原型标类,再在每对原型之间作中垂线得各凸区域,按最近原型着色(图 P16.11–P16.12)。
- P16.6 为图 P16.13 的三色点(白=类 1,黑=类 2,蓝=类 3,共 9 个簇、未归一化)设计 LVQ:3 个输出神经元、9 个隐层神经元(图 P16.14)。\(\mathbf{W}^1\) 每行取一个簇中心(各簇中心在 \(\{-1,0,1\}^2\) 网格上),\(\mathbf{W}^2\) 按"子类 \(i\) 属于类 \(k\) 则 \(w^2_{ki}=1\)"设定(如第 1 子类在左上、为白色,故 \(w^2_{1,1}=1\))。测试 \(\mathbf{p}=[1;0]\):第一层第 6 子类获胜,第二层输出类 1,正确。类区域与边界见图 P16.15。LVQ 直接算距离,所以能处理未归一化向量。
- P16.7 竞争层/特征图要求输入归一化,若数据未归一化:①直接归一化,但丢失幅度信息(可能重要);②像 LVQ 那样用距离 \(n_i=-\|{}_i\mathbf{w}-\mathbf{p}\|\) 替代内积,保留幅度;③先给每个输入追加常数 1 再归一化,追加元素的变化保留幅度信息。例:\(\mathbf{p}_1=[1;1]\to[1;1;1]/\sqrt3\),\(\mathbf{p}_2=[0;1]\to[0;1;1]/\sqrt2\),\(\mathbf{p}_3=[0;0]\to[0;0;1]\);第三个元素等于扩展向量长度的倒数,携带幅度信息。
16.12 结语与延伸阅读(PDF p.652–653)
- 结语:instar 规则 + 类 Hamming 竞争网络 = 自组织网络,每个学到的原型(权值矩阵的行)代表一类输入,网络把输入空间划分为不同类。三种网络都出自 Kohonen:标准竞争层简单实用;SOFM 更接近生物中心-周边网络,既学分类又学输入空间拓扑;LVQ 结合无监督与有监督学习,用第二层把多个凸区域组合成任意形状的类,甚至由多个不连通区域构成的类。第 18 章细究侧抑制与中心-周边网络;第 19 章 ART 解决本章的权值稳定性问题;第 22 章给出训练竞争网络的实用技巧;第 26 章是 SOFM 聚类案例。
- 延伸阅读:[FrSk91] Freeman & Skapura(附算法代码片段);[Koho87] Kohonen;[Hech90] Hecht-Nielsen《Neurocomputing》(竞争学习的历史与数学);[RuMc86] Rumelhart & McClelland《Parallel Distributed Processing》第 1 卷(竞争层如何学习检测特征)。
16.13 习题概览(PDF p.654–663)
E16.1 Hamming 第 2 层若 \(\varepsilon=3/4>1/(S-1)=1/2\),构造使其失效的第一层输出。E16.2 图解训练三簇竞争网络并画边界(并列时下标小者胜)。E16.3 Kohonen 规则训练 \(\mathbf{p}=[1;-1],[1;1],[-1;-1]\),\(\mathbf{W}=[2\ 0;0\ 2]\),\(\alpha=0.5\) 与 \(0.25\) 对比,讨论顺序依赖。E16.4 良心机制:带偏置竞争层 \(\mathbf{a}=\mathrm{compet}(\mathbf{W}\mathbf{p}+\mathbf{b})\),偏置规则 \(b_i^{new}=0.9b_i^{old}\)(\(i\ne i^*\))、\(b_i^{new}=b_i^{old}-0.2\)(\(i=i^*\)),计算死神经元多少次后获胜。E16.5、E16.6 用负距离净输入训练非归一化向量的两神经元竞争层。E16.7 负距离竞争网络四步训练、收敛位置与决策边界。E16.8 证明输入归一化时距离版与内积版竞争层结果相同。E16.9 MATLAB:[0,1] 均匀数平方后训练 5 神经元竞争层,观察权值分布与输入密度的关系(考查竞争学习对密度的适应)。E16.10 正方形区域 200 个点,分别用竞争层和 4×4 特征图分 16 类,比较学习率和邻域大小。E16.11、E16.12 一维/二维特征图(距离净输入)单步更新并作图。E16.13、E16.17、E16.18 给定 LVQ 权值,判断类/子类数、画子类边界、标类并做一步 LVQ 更新。E16.14、E16.15 设计 LVQ(E16.15 先判断感知机能否解决——不可线性分),用 Kohonen 规则从零权值训练。E16.16 四步 LVQ 学习并画区域。
本章要点
- Hamming 网络 = instar 相关层 + 侧抑制递归竞争层(\(0<\varepsilon<1/(S-1)\)),实现胜者全得;用 compet 传输函数可直接替代递归层。
- 竞争学习 = compet + Kohonen 规则,只有获胜者向输入移动;权值行成为簇原型。归一化输入下内积等价于夹角,未归一化时用负距离。
- 竞争层的问题:学习率快慢与稳定的权衡、近簇不稳定、死神经元(良心机制)、类数固定、只能凸区域。
- SOFM:获胜者及其拓扑邻域一起更新,学到输入空间的拓扑(相邻神经元对应相似输入),邻域和学习率随训练递减以避免扭结、加快收敛。
- LVQ:竞争层产生子类,固定的线性层把子类合并成类,可形成非凸、不连通的类;正确时拉近、错误时推远;LVQ2 在错误时还拉近最近的正确子类。
与量化交易的关联
- 市场状态(regime)识别与聚类:竞争学习/在线 k-means 可把收益、波动、成交量、相关性等特征向量聚成若干市场状态;SOFM 进一步给出状态之间的拓扑关系(相邻节点 = 相似状态),可用于可视化状态迁移路径。第 26 章即 SOFM 聚类案例。
- 股票聚类与组合构建:用收益序列或因子暴露向量做 SOFM/竞争学习聚类,得到行业之外的"数据驱动板块",用于分散化、配对交易候选筛选、风险分组。P16.7 关于归一化与保留幅度信息的讨论直接对应特征标准化的取舍(例如按波动率标准化会丢掉波动水平信息)。
- 在线自适应原型:Kohonen 规则即对原型做 EMA;学习率大小对应对新行情的适应速度与稳定性的权衡,在非平稳市场中需要折中,书中"退火学习率在需持续适应时失效"的告诫很实际。
- LVQ 作分类器:可用于涨跌方向或信号类别分类,原型可解释性好(每个原型是一个典型市场形态);但在高噪声金融数据上通常不如正则化的线性模型或树模型稳健,需严格样本外检验。
- 死神经元/聚类不稳定:提示聚类结果依赖初值和数据顺序,用于回测时要固定随机种子并检查稳定性,避免用全样本聚类引入前视偏差。
推荐习题
- P16.2、E16.3:手算竞争学习,理解死神经元与顺序依赖。
- E16.4:实现良心机制,解决死神经元问题。
- E16.8:证明归一化时距离与内积等价。
- E16.9、E16.10:MATLAB/Python 实现竞争层与 SOFM,观察权值分布如何反映输入密度。
- E16.15:LVQ 设计与训练,理解非凸类的构造。
- P16.7:输入归一化与幅度信息保留。
第 17 章 径向基网络(Radial Basis Networks)(PDF p.664–706)
17.0 目标(PDF p.664)
第 11 章表明:隐层用 sigmoid、输出层用线性的多层网络是通用函数逼近器。本章介绍另一种通用逼近网络——径向基函数(radial basis function, RBF)网络,可用于与多层网络相同的许多应用。结构仿照第 11 章:先直观展示其逼近能力,再讲三类训练方法——①与第 11、12 章相同的梯度法(导数用反传的变形计算);②两阶段法,先独立确定第一层权值,再算第二层;③增量法,一次加一个神经元。
17.1 背景(PDF p.665)
- RBF 原始工作是 1980 年代 Powell 等人的精确插值[Powe87]:插值函数必须精确穿过所有训练目标。这仍是重要研究方向。
- 本书不讨论精确插值:神经网络常用于含噪数据,精确插值在含噪数据上常导致过拟合(第 13 章)。关注点是基于有限、含噪测量,对未知函数做稳健逼近。Broomhead 与 Lowe [BrLo88] 首先提出 RBF 神经网络模型,产生平滑插值函数,不强求精确匹配目标,强调泛化。
17.2 径向基网络(PDF p.665–667)
两层网络,与两层感知机有两处主要区别:①第一层不做权值与输入的内积,而是计算输入与权值矩阵各行之间的距离(类似图 16.13 的 LVQ);②偏置不是加上去,而是乘上去。第一层净输入(17.1):
第一层传输函数常用高斯函数(17.2,图 17.1):
第二层是标准线性层(17.3):\(\mathbf{a}^2=\mathbf{W}^2\mathbf{a}^1+\mathbf{b}^2\)。完整网络(图 17.2):\(a^1_i=\mathrm{radbas}(\|{}_i\mathbf{w}^1-\mathbf{p}\|b^1_i)\),\(\mathbf{a}^2=\mathbf{W}^2\mathbf{a}^1+\mathbf{b}^2\)。
17.3 函数逼近(PDF p.667–669)
RBF 网络是通用逼近器 [PaSa93]。示例 1-2-1 网络,默认参数:\(w^1_{1,1}=-1\)、\(w^1_{2,1}=1\)、\(b^1_1=b^1_2=2\)、\(w^2_{1,1}=w^2_{1,2}=1\)、\(b^2=0\)。在 \(-2\le p\le2\) 上响应(图 17.3)是两个小山包,每个高斯神经元一个(可与图 11.5 的 MLP 响应对比)。
逐个改变参数(17.4):\(0\le w^2_{1,1}\le2\)、\(-1\le w^1_{1,1}\le1\)、\(0.5\le b^1_2\le8\)、\(-1\le b^2\le1\)(图 17.4):
- (a) 第一层偏置控制山包宽度:偏置越大,山越窄。
- (b) 第一层权值决定山包位置:每个第一层权值处有一个山包(多维时每行一个),因此每行常被称为对应神经元的中心。这与 MLP(图 11.6)截然不同:MLP 中 sigmoid 形成台阶,权值改变台阶斜率,偏置改变台阶位置。
- (c) 第二层权值缩放山包高度;(d) 第二层偏置整体上下平移。第二层与 MLP 的线性层作用相同:对第一层输出加权求和。
神经元足够多时 RBF 能逼近几乎任何函数 [PaSa93]。但逼近方式与 MLP 不同:每个传输函数只在输入空间一小块区域活跃,响应是局部的。设计含义:中心必须充分分布于整个输入范围;偏置的选择要使所有基函数显著重叠。演示 nnd17nf。
17.4 模式分类(PDF p.669–672)
XOR 问题:类别 1:\(\mathbf{p}_2=[-1;1]\)、\(\mathbf{p}_3=[1;-1]\);类别 2:\(\mathbf{p}_1=[-1;-1]\)、\(\mathbf{p}_4=[1;1]\)。线性不可分,单层网络无法解决。RBF 有多种解,书中给一个简单示范(不适合复杂问题):让输入在 \(\mathbf{p}_2\) 或 \(\mathbf{p}_3\) 附近时输出 \(>0\),其余 \(<0\)。
- 两输入一输出,第一层两个神经元,中心取 \(\mathbf{p}_2\)、\(\mathbf{p}_3\)(17.5):\(\mathbf{W}^1=\begin{bmatrix}\mathbf{p}_2^T\\\mathbf{p}_3^T\end{bmatrix}=\begin{bmatrix}-1&1\\1&-1\end{bmatrix}\)。
- 偏置:希望在 \(\mathbf{p}_2\)、\(\mathbf{p}_3\) 处有两个分明的峰,基函数不宜重叠太多。中心到原点距离 \(\sqrt2\),取偏置 1,则原点处 \(a=e^{-(1\cdot\sqrt2)^2}=e^{-2}=0.1353\)(17.6),峰值 1。取 \(\mathbf{b}^1=[1;1]\)(17.7)。
- 基函数输出在 0–1 之间;要让远离两点处输出为负,第二层偏置取 \(-1\),第二层权值取 2 把峰拉回 1(17.8):\(\mathbf{W}^2=[2\ \ 2]\),\(b^2=-1\)。
- 响应曲面(图 17.5)与 \(a^2=0\) 平面相交处即决策边界:近似围绕 \(\mathbf{p}_2\)、\(\mathbf{p}_3\) 的圆(图 17.6 蓝色区域输出 \(>0\))。分类正确,但不是最好的解:它不总把输入归到最近的原型(不像图 11.2 的 MLP 解)。
- 直观:单层感知机的边界是直线,MLP 把直线拼成任意区域;RBF 的基本边界是圆,把圆拼成任意区域。本题直线更高效。神经元多且中心靠近时,RBF 边界不再是纯圆、MLP 边界也不再是纯直线,但这种联想有助理解。演示 nnd17pc。
17.5 全局与局部(Global vs. Local)(PDF p.672–673)
- MLP 形成分布式表示:所有传输函数活动相互重叠,任一输入处许多 sigmoid 都有显著输出,需在第二层相加或抵消。RBF 中任一输入只有少数基函数活跃。
- 全局法通常隐层神经元更少(每个神经元影响大片输入空间)。RBF 的中心必须铺满输入范围,引出维数灾难(curse of dimensionality);神经元和参数越多越易过拟合。
- 局部法通常训练更快(尤其两阶段算法);适合自适应(在线增量)训练,如非线性自适应滤波器或控制器:若一段时间内训练数据只出现在输入空间某区域,全局表示会在该区域变准而牺牲其他区域;局部表示受影响小得多,因为输入落在神经元活跃区之外时它的权值不会被调整。
17.6 训练 RBF 网络概述(PDF p.673–674)
- 可用梯度法,但由于传输函数的局部性和第一层权值/偏置的作用方式,RBF 误差曲面上不理想的局部极小比 MLP 多得多,梯度法往往不适合完整训练,常只用于其他方法初训后的微调。
- 最常用的是两阶段算法:分别处理两层,区别主要在第一层权值和偏置怎么选;第一层定好后,第二层用线性最小二乘一步算出。
- 最简单:中心在输入范围上网格排列,取常数偏置使基函数有一定重叠。不最优:函数复杂处应放更多基函数;实际输入常不占满全范围,浪费基函数。网格法受维数灾难:所需基函数数随输入维数几何增长(1 维 10 个 → 2 维 \(10^2=100\) 个)。
- 从训练输入中随机选子集作中心:中心落在有用区域,但随机性使其非最优。
- 用第 16 章的 Kohonen 竞争层或特征图聚类,以簇中心作基函数中心。
- 正交最小二乘(OLS):基于线性模型的子集选择(subset selection),从大量候选中心(通常是所有训练输入)开始,每步选一个使误差平方和下降最多的中心加入,直到满足(通常以泛化能力为目标的)准则。
17.7 线性最小二乘(Linear Least Squares)(PDF p.674–681)
假设第一层权值和偏置已固定(网格、随机选取或聚类)。中心随机选取时,所有偏置可按 [Lowe89] 取(17.9):
第二层训练等价于训练线性网络(第 10 章)。训练集 \(\{\mathbf{p}_q,\mathbf{t}_q\}\)(17.10);第一层输出 \(n^1_{i,q}=\|\mathbf{p}_q-{}_i\mathbf{w}^1\|b^1_i\),\(\mathbf{a}^1_q=\mathrm{radbas}(\mathbf{n}^1_q)\)(17.11–17.12);第二层训练集变为 \(\{\mathbf{a}^1_q,\mathbf{t}_q\}\)(17.13);第二层线性响应 \(\mathbf{a}^2=\mathbf{W}^2\mathbf{a}^1+\mathbf{b}^2\)(17.14);性能指标 \(F=\sum_q(\mathbf{t}_q-\mathbf{a}^2_q)^T(\mathbf{t}_q-\mathbf{a}^2_q)\)(17.15)。
推导(仿照式 10.6,标量目标):把参数并为 \(\mathbf{x}=\begin{bmatrix}{}_1\mathbf{w}^2\\b^2\end{bmatrix}\)(17.16),输入并入常数 1:\(\mathbf{z}_q=\begin{bmatrix}\mathbf{a}^1_q\\1\end{bmatrix}\)(17.17),则 \(a_q=\mathbf{x}^T\mathbf{z}_q\)(17.18–17.19)。定义(17.21)
例:三神经元 RBF 逼近 \(g(p)=1+\sin(\frac{\pi}{4}p)\),\(-2\le p\le2\)(17.32)。六个训练点 \(p=\{-2,-1.2,-0.4,0.4,1.2,2\}\)(17.33),目标 \(t=\{0,0.19,0.69,1.3,1.8,2\}\)(17.34)。中心等距取 \(-2,0,2\),偏置取间距的倒数 0.5(17.35):\(\mathbf{W}^1=[-2;0;2]\),\(\mathbf{b}^1=[0.5;0.5;0.5]\)。第一层输出(17.38)作为 \(\mathbf{U}\) 的列(17.39):
对中心和偏置敏感:若用六个基函数、六个数据点、偏置取 8(而非 0.5),基函数宽度随偏置倒数缩小,重叠不足:每个数据点精确命中,但数据点之间的逼近很差(图 17.8)。演示 nnd17lls。
17.8 正交最小二乘(Orthogonal Least Squares, OLS)(PDF p.681–686)
思路:有一批候选中心(全部训练输入、网格点或其他方法得到),一次选一个,逐个神经元构建网络,直到性能满意。
子集选择背景[Mill90]:从 \(Q\) 个自变量中选最小子集以最有效地预测因变量。穷举搜索最优但不现实,子集个数(17.43)\(\sum_{q=1}^{Q}\frac{Q!}{q!(Q-q)!}=2^Q-1\):\(Q=10\) 时 1023,\(Q=20\) 时超过一百万。次优方法:前向选择(forward selection)——从空模型起每次加入使平方误差下降最多的变量,性能足够时停止;后向剔除(backward elimination)——从全模型起每次去掉使误差增加最少的变量,直到性能不足;以及两者结合(每步可增可删)。OLS [ChCo91] 是前向选择的一种,特点是能高效算出每个候选中心带来的误差下降。
推导:把 (17.22) 写成标准线性回归形式(17.44)\(\mathbf{t}=\mathbf{U}\mathbf{x}+\mathbf{e}\)。\(\mathbf{U}=[\mathbf{u}_1\ \mathbf{u}_2\ \cdots\ \mathbf{u}_n]\)(17.45),每行是一个训练输入的第一层输出,每列对应一个基函数(加一列偏置),\(n=S^1+1\);若全部训练输入作候选中心,则 \(n=Q+1\)。\(\mathbf{U}\) 称回归矩阵(regression matrix),列称回归向量(regressor vectors)。各列通常相关,难以单独衡量每列的贡献,所以先正交化(17.46):
误差分解(17.56–17.59):\(\mathbf{t}^T\mathbf{t}=\mathbf{h}^T\mathbf{M}^T\mathbf{M}\mathbf{h}+\mathbf{e}^T\mathbf{M}\mathbf{h}+\mathbf{h}^T\mathbf{M}^T\mathbf{e}+\mathbf{e}^T\mathbf{e}\);在最优 \(\mathbf{h}\) 下交叉项 \(\mathbf{e}^T\mathbf{M}\mathbf{h}=\mathbf{t}^T\mathbf{M}\mathbf{h}-\mathbf{t}^T\mathbf{M}\mathbf{V}^{-1}\mathbf{M}^T\mathbf{M}\mathbf{h}=0\),故
OLS 算法(PDF p.685–686):开始时把所有候选基函数放入 \(\mathbf{U}\)(全部训练输入作候选时为 \(Q\times(Q+1)\)),网络中尚无基函数。
- 第 1 步,对 \(i=1,\dots,Q\):\(\mathbf{m}_1^{(i)}=\mathbf{u}_i\);\(h_1^{(i)}=\dfrac{\mathbf{m}_1^{(i)T}\mathbf{t}}{\mathbf{m}_1^{(i)T}\mathbf{m}_1^{(i)}}\);\(o_1^{(i)}=\dfrac{(h_1^{(i)})^2\mathbf{m}_1^{(i)T}\mathbf{m}_1^{(i)}}{\mathbf{t}^T\mathbf{t}}\)(17.62–17.64)。选 \(o_1=o_1^{(i_1)}=\max_i o_1^{(i)}\),\(\mathbf{m}_1=\mathbf{m}_1^{(i_1)}=\mathbf{u}_{i_1}\)(17.65–17.66)。
- 第 \(k\) 步,对 \(i=1,\dots,Q\),\(i\ne i_1,\dots,i_{k-1}\):\(r_{jk}^{(i)}=\dfrac{\mathbf{m}_j^T\mathbf{u}_i}{\mathbf{m}_j^T\mathbf{m}_j}\)(\(j=1..k-1\));\(\mathbf{m}_k^{(i)}=\mathbf{u}_i-\sum_{j=1}^{k-1}r_{jk}^{(i)}\mathbf{m}_j\);算 \(h_k^{(i)}\)、\(o_k^{(i)}\)(17.67–17.70)。选 \(o_k=o_k^{(i_k)}=\max_i o_k^{(i)}\),\(r_{jk}=r_{jk}^{(i_k)}\),\(\mathbf{m}_k=\mathbf{m}_k^{(i_k)}\)(17.71–17.73)。
- 停止准则(17.74):\(1-\sum_{j=1}^{k}o_j<\delta\)。\(\delta\) 太小会过拟合(网络过复杂);也可用验证集,在验证误差上升时停止(第 13 章)。
- 收敛后由 \(\mathbf{h}\) 回代求原权值(17.75):\(x_n=h_n\),\(x_k=h_k-\sum_{j=k+1}^{n}r_{k,j}x_j\),\(n\) 为第二层可调参数总数。演示 nnd17ols。
17.9 聚类法(Clustering)(PDF p.686–688)
[MoDa89] 用第 16 章的竞争网络(Kohonen 竞争层、SOFM)对训练输入聚类,训练后的原型(簇中心)作为 RBF 中心,并用各簇方差确定对应偏置。对 \(\{\mathbf{p}_1,\dots,\mathbf{p}_Q\}\) 用 Kohonen 规则(17.78)\({}_{i}\mathbf{w}^1(q)={}_{i}\mathbf{w}^1(q-1)+\alpha(\mathbf{p}(q)-{}_{i}\mathbf{w}^1(q-1))\)(\({}_{i}\mathbf{w}^1\) 为离 \(\mathbf{p}(q)\) 最近者)反复训练到收敛(也可用 SOFM 或 [MoDa89] 建议的 k-means)。这保证基函数位于输入最可能出现的区域。
偏置:对每个中心找离它最近的 \(n_c\) 个训练输入,算平均距离(17.79)
17.10 非线性优化(Nonlinear Optimization)(PDF p.688–689)
也可像 MLP 那样同时调整所有参数,但因局部极小多,一般不用于完整训练,而用于两阶段法之后的微调。梯度推导与第 11 章相同(从式 11.9 开始),只有式 (11.20) 那一步不同。第一层净输入(17.81)
17.11 其他训练技术(PDF p.689)
OLS 扩展到多输出 [ChCo92]、正则化性能指标 [ChCh96];与遗传算法结合选偏置和正则化参数 [ChCo99];用 EM 算法优化中心 [Bish91];用回归树选中心 [OrHa00];聚类初始化 + 非线性优化微调的各种组合。RBF 结构适合多种训练方法。
17.12 结果汇总(PDF p.690–692)
RBF 网络结构;线性最小二乘(\(\mathbf{x}\)、\(\mathbf{z}_q\)、\(\mathbf{U}\)、\(\mathbf{t}\)、\(\mathbf{e}\)、\(F\)、正规方程);OLS 第 1 步与第 \(k\) 步公式;聚类(Kohonen 训练权值、\(\mathrm{dist}_i\) 与 \(b^1_i=1/(\sqrt2\mathrm{dist}_i)\));非线性优化(以 17.84–17.85 替换 11.46–11.47)。
17.13 例题(PDF p.693–697)
- P17.1 用 OLS 逼近 \(g(p)=\cos(\pi p)\),\(-1\le p\le1\);五个点 \(p=\{-1,-0.5,0,0.5,1\}\),\(t=\{-1,0,1,0,-1\}\);候选中心为全部训练输入,偏置全取 1。第一层输出矩阵为对称阵,对角 1.000,次对角 0.779,再外 0.368、0.105、0.018;\(\mathbf{U}\) 再加一列全 1(偏置)。第一步:\(h_1^{(i)}=\{-0.371,-0.045,0.106,-0.045,-0.371,-0.200\}\),\(o_1^{(i)}=\{0.0804,0.0016,0.0094,0.0016,0.0804,0.0667\}\)。第 1、5 个中心都能减少 8.04% 误差,取下标小的第 1 个。若此时停止:\(w^2_{1,1}=x_1=h_1=-0.371\),\(b^2=0\)(偏置中心 \(\mathbf{m}_1^{(6)}\) 未入选)。继续加神经元时第一个权值会变(式 17.75 只在所有 \(h\) 求出后使用;只有 \(x_n=h_n\))。若继续:删去已选列,其余列对 \(\mathbf{m}_1\) 正交化;各步误差下降依次为 0.0804、0.3526、0.5074、0.0448、0.0147、0,入选顺序为中心 1、2、5、3、4、6。后面的下降反而更大,因为最佳逼近需要基函数的组合——这说明前向选择不保证最优组合(穷举才能保证);偏置最后入选且不带来下降。
- P17.2 设计 RBF 分类器:类 I(深色)由两个子区域组成,线性不可分。两输入一输出,两个基函数,中心放在两子区域中心:\(\mathbf{W}^1=\begin{bmatrix}1&1\\2.5&2.5\end{bmatrix}\)。第一个基函数应更宽(边界半径约 1),第二个更窄(半径约 1/2),故偏置 \(\mathbf{b}^1=[1;2]\):两者在各自半径处都降到 \(e^{-1}=0.3679\)。第二层 \(\mathbf{W}^2=[2\ \ 2]\),\(b^2=-1\)。决策区域见图 P17.2(\(a^2=0\) 等高线)。
- P17.3 1-1-1 RBF 网络一步最速下降:\(w^1(0)=0\),\(b^1(0)=1\),\(w^2(0)=-2\),\(b^2(0)=1\);\(p=-1\),\(t=1\),\(\alpha=1\)。
- 前向:\(n^1=|{-1}-0|\cdot1=1\),\(a^1=e^{-1}=0.3679\);\(n^2=-2(0.3679)+1=0.2642=a^2\);\(e=1-0.2642=0.7358\)。
- 敏感度:\(s^2=-2(1)(0.7358)=-1.4716\);\(s^1=\dot f^1(n^1)w^2s^2=(-2n^1e^{-(n^1)^2})(-2)(-1.4716)=-2.1655\)。
- 更新:\(w^2(1)=-2-(-1.4716)(0.3679)=-1.4586\);\(b^2(1)=1-(-1.4716)=2.4716\);\(w^1(1)=0-(-2.1655)(1)\frac{0-(-1)}{|-1-0|}=2.1655\);\(b^1(1)=1-(-2.1655)|-1-0|=3.1655\)。(直观:\(w^2<0\) 而输出偏低,需减小 \(a^1\),故中心远离 \(p\)、偏置增大使基函数变窄。)
17.14 结语与延伸阅读(PDF p.698–700)
- 结语:RBF 是 MLP 之外做函数逼近和模式识别的另一选择。与 MLP 不同,RBF 训练通常分两阶段:先定第一层权值和偏置,再(通常用线性最小二乘)算第二层。
- 延伸阅读:[Bish91] 首次用 EM 优化 RBF 中心;[BrLo88] 首次在神经网络中使用径向基函数;[ChCo91] 首次用子集选择(OLS)选中心;[ChCo92] 多输出 OLS;[ChCh96] 正则化 OLS;[ChCo99] 遗传算法 + 正则化 OLS;[Lowe89] 梯度法训练全部参数及随机中心时的宽度公式;[Mill90]《Subset Selection in Regression》;[MoDa89] 首次用聚类求中心和方差;[OrHa00] 用 DELVE 比较多种 RBF 训练方法(含带正则化的前向选择、回归树);[PaSa93] 通用逼近证明;[Powe87] 精确插值综述。
17.15 习题概览(PDF p.701–706)
E17.1 设计 RBF 使阴影区输出为正。E17.2 两隐层神经元的网络穿过给定点。E17.3 1-2-1 网络(\(\mathbf{W}^1=[-1;1]\),\(\mathbf{b}^1=[0.5;0.5]\),\(b^2=0\)),三个训练对,用线性最小二乘求第二层(\(\rho=0\) 与 \(\rho=4\)),画(正则化)误差等高线。E17.4 证明 Hessian \(2(\mathbf{U}^T\mathbf{U}+\rho\mathbf{I})\) 在 \(\rho\ge0\) 时半正定、\(\rho>0\) 时正定。E17.5 如何把第 10 章 LMS 改为学习第二层。E17.6 第一层换成线性传输函数:是否等价于单层网络?是否仍是通用逼近器?E17.7、E17.8 无第二层偏置的网络:最小二乘求两权值,再用 OLS 判断先选哪个中心、权值和误差下降,比较两者关系。E17.9 一种第一层为线性距离函数的变体网络的最小二乘解与响应草图。E17.10 编程:\(g(p)=1+\sin(\pi p/8)\),10 个随机点、4 个等距中心、按 (17.9) 设偏置,比较偏置加倍与减半的误差。E17.11 10 个隐层神经元,比较正则化 \(\rho=0.2\) 与否,并加 \([-0.1,0.1]\) 均匀噪声比较(考查正则化抑制过拟合)。E17.12 编程实现 OLS,只用前 4 个入选中心,与 E17.10 比较。E17.13 编程实现 RBF 最速下降,比较随机初始化与"网格中心 + 最小二乘"初始化。E17.14 RBF 层放在多层网络中间层时反传方程如何修改。E17.15 用 4×4 与 2×2 特征图聚类得到中心、按 (17.79)(17.80) 设偏置,再用最小二乘逼近 \(t=\sin(2\pi p_1)\cos(2\pi p_2)\)。
本章要点
- RBF 网络:第一层 \(a^1_i=\exp(-(\|\mathbf{p}-{}_i\mathbf{w}^1\|b^1_i)^2)\),权值行是中心、偏置控制宽度(\(b=1/(\sigma\sqrt2)\));第二层线性。是通用逼近器。
- 局部 vs 全局:RBF 局部响应、训练快、适合在线自适应,但需中心铺满输入空间,受维数灾难影响;MLP 分布式表示、神经元少。RBF 分类边界的基本单元是圆,MLP 是直线。
- 两阶段训练:先定中心与宽度(网格/随机/聚类/OLS),再用(正则化)线性最小二乘 \((\mathbf{U}^T\mathbf{U}+\rho\mathbf{I})\mathbf{x}=\mathbf{U}^T\mathbf{t}\) 一步求第二层。
- OLS = 正交化后的前向逐步回归,误差下降贡献 \(o_i=h_i^2\mathbf{m}_i^T\mathbf{m}_i/\mathbf{t}^T\mathbf{t}\),用阈值或验证集停止;前向选择不保证全局最优。
- 宽度选择很关键:太窄则数据点之间逼近差(过拟合),太宽则失去局部性;梯度法因局部极小多,只宜微调。
与量化交易的关联
- 核回归/非线性因子模型:固定中心后的 RBF 就是"径向基特征 + 岭回归",可用于刻画收益与因子之间的非线性关系(如估值或动量因子的非单调效应)、波动率曲面插值、期权隐含波动率平滑。式 (17.30) 正是岭回归正规方程,正则化参数的选择与因子模型收缩估计同理。
- OLS 前向选择 ↔ 因子/特征筛选:OLS 算法就是正交化的逐步回归,可直接借用来从大量候选因子中逐个挑选增量解释力最大的因子(正交化后的贡献度 \(o_i\) 类似"增量 \(R^2\)")。P17.1 的结论(后入选的因子贡献可能更大、贪心不保证最优、需用验证集而非样本内误差停止)对因子挖掘中的过拟合防范非常重要。
- 维数灾难与局部性:高维因子空间中网格或局部基函数难以覆盖,提醒在多因子场景下优先降维或用全局模型。局部表示适合在线更新(某一市场状态的新数据不会破坏其他状态的拟合),对 regime 相关的自适应模型有启发。
- 聚类定中心:先用 k-means/SOFM 对市场状态聚类,再在各状态中心放基函数,相当于"状态加权的局部线性/常数模型";但聚类只看输入分布、不看目标,可能在收益结构复杂但样本少的极端行情处分辨率不足。
- 宽度选择 = 带宽选择:偏置过大导致数据点间预测失真(图 17.8),对应核方法中带宽过小的过拟合,回测中需用时间序列交叉验证调参。
推荐习题
- E17.4:证明 Hessian 半正定/正定,理解正则化的作用。
- E17.3、E17.10、E17.11:线性最小二乘、偏置(宽度)与正则化对拟合和噪声的影响。
- P17.1 与 E17.12:手算/编程实现 OLS,理解正交化逐步回归。
- P17.3、E17.13:RBF 梯度推导与两种初始化比较。
- E17.15:聚类 + 最小二乘的完整两阶段流程。
- E17.6:线性第一层是否仍为通用逼近器(考查非线性的必要性)。
第 18 章 Grossberg 网络(Grossberg Network)(PDF p.707–754)
注:本章(以及第 15、16 章)正文的交叉引用和演示程序编号多处沿用第一版章号(如"第 13 章的 instar 规则"实指第 15 章,"第 14 章 Kohonen 网络"实指第 16 章,"第 16 章 ART"实指第 19 章,"第 17 章稳定性"实指第 20 章;演示程序 nnd15xx 对应本章)。编写教材时应按第二版章号改正。
18.0 目标(PDF p.707)
本章延续第 15、16 章的联想与竞争学习。Grossberg 网络是自组织的连续时间竞争网络,也是本书第一次讨论连续时间递归网络(相关概念在第 20、21 章深入),并且是第 19 章自适应共振理论(ART)网络的基础。Grossberg 的网络深受生物学影响,所以先简述其生物动机——人类视觉系统。生物学是人工神经网络最初的灵感来源,仍应继续从中汲取灵感。
18.1 背景(PDF p.708)
1960 年代末到 1970 年代神经网络研究者锐减,仍坚持工作的有 Kohonen、Anderson、福岛邦彦(Fukushima)、甘利俊一(Amari)等,其中最多产的是 Stephen Grossberg。他自 1960 年代初持续活跃,用非线性数学为心智和大脑的具体功能建模,题目从竞争网络如何在视觉中实现对比度增强,到人类记忆的统一理论。其工作以难懂著称:每篇新论文都建立在 30 年的成果之上,术语自洽但不通用,数学和神经生理学门槛高;受 Helmholtz、Maxwell、Mach 跨学科研究的启发,处在数学、心理学、神经生理学的交叉点。本章的路线:视觉系统的生物动机 → 许多 Grossberg 网络的数学基本单元分流模型(shunting model) → 用它构建自适应模式识别网络 → 第 19 章 ART。教训:应融合生物、数学、心理等学科。
18.2 生物动机:视觉(PDF p.709–715)
视觉通路结构(图 18.1–18.2):光经角膜和晶状体聚焦到视网膜。视网膜实际上是大脑的一部分(胚胎发育中分离,经视神经相连),分三层神经细胞:
- 外层:感光细胞——视杆(rods,暗光视觉)和视锥(cones,细节与颜色)。奇怪的是光必须先穿过另两层才能到达它们,这种遮挡需要神经处理来补偿。
- 中层:双极细胞(bipolar,接收感受器输入传到第三层)、水平细胞(horizontal,连接感受器与双极细胞)、无长突细胞(amacrine,连接双极细胞与神经节细胞)。
- 内层:神经节细胞(ganglion),其轴突汇成视神经。每只眼约 1.25 亿个感受器,只有约 100 万个神经节细胞——视网膜内做了大量数据压缩。 视神经连到外侧膝状体(lateral geniculate nucleus),再扇形投射到大脑后部的初级视皮层(多层细胞)。各层之间的映射高度有序:视网膜某部分→外侧膝状体特定部分→视皮层特定部分,这种拓扑映射是自组织特征图的灵感来源之一。两半视神经纤维交叉,每个视野的左半部分进入右脑、右半部分进入左脑。
错觉(Illusions)(PDF p.710–713):弥补视网膜采集缺陷的机制必然产生错觉。Grossberg 等利用大量已知错觉探测自适应感知机制 [GrMi89]:若数学模型能产生与生物系统相同的错觉,它可能描述了大脑这部分的工作方式。视网膜采集的缺陷(图 18.3 眼底图):
- 视盘(optic disk):视神经离开、血管进出处,没有感光细胞,形成盲点(图 18.4 可自测,约 9 英寸距离时右侧圆点消失);我们并不看到黑洞,大脑会补全。
- 中央凹(fovea):直径约半毫米、只有视锥,其他层移到一侧、视锥位于最前,提供最佳细节视觉。
- 血管从感光细胞前方穿过造成遮挡;光要穿过两层细胞。我们看不到血管,是因为视觉通路对稳定图像(stabilized images)不响应——眼球不停做扫视运动(saccadic movements),静止物体相对眼睛也在动,而血管相对眼球固定,于是从视觉中消失。
- 图 18.5:视网膜上的一条边被盲点和血管截断。Grossberg 提出两类补偿处理 [GrMi89]:**涌现分割(emergent segmentation)**补全缺失边界;**特征填充(featural filling-in)**在边界内填充颜色和亮度(图 18.6)。补全难免出错,错觉就是证据:页边图中看到并不存在的白色三角形、白色圆(主观轮廓);霓虹色扩散(neon color spreading)[vanT75](图 18.7)中看到并不存在的浅蓝菱形或圆环——这种颜色不在视网膜上,只存在于大脑中。
视觉归一化(Vision Normalization)(PDF p.714–715):
- 亮度恒常(brightness constancy)(图 18.8):被试看暗灰圆环内的灰色小圆盘,在不同照明强度下选择亮度匹配的圆盘,结果总选同一个——即使进入眼睛的总光量增加 10–100 倍,只有相对亮度被感知。
- 亮度对比(brightness contrast):两个灰度相同的小圆盘,周围环较暗的那个看起来更亮。视觉系统对相对强度敏感,似乎整幅图像的总活动保持恒定。
- 这对识别至关重要:若不能补偿场景的绝对强度,在不同光照下就无法学会识别物体。Grossberg 称这种归一化为**"扣除照明(discounting the illuminant)"**。
18.3 基本非线性模型(Basic Nonlinear Model)(PDF p.715–718)
泄漏积分器(leaky integrator)(图 18.9)(18.1):
分流模型(shunting model)(图 18.11)(18.4):
- \(-n(t)\):线性衰减项(同泄漏积分器)。
- \((b^+-n(t))p^+\):非线性增益控制,\(n<b^+\) 时为正,\(n=b^+\) 时为零,于是 \(n\) 的上限为 \(b^+\)。
- \(-(n(t)+b^-)p^-\):同样是非线性增益控制,下限为 \(-b^-\)。 图 18.12:\(b^+=1\)、\(b^-=0\)、\(\varepsilon=1\),\(p^-=0\);\(p^+=1\) 与 \(p^+=5\) 对比,兴奋输入增大 5 倍,稳态响应增加不到 2 倍(稳态 \(n=b^+p^+/(1+p^+)\),分别为 0.5 与 0.83),继续增大输入,响应增加但始终小于 \(b^+\);施加抑制输入则稳态下降,但始终大于 \(-b^-\)。总结:若 \(n(0)\in[-b^-,b^+]\),则 \(n(t)\) 永远在此区间内。这种非线性增益控制将用于归一化输入模式,并在很大的总强度范围内保持相对强度。演示 nnd15sn。
18.4 两层竞争网络(Two-Layer Competitive Network)(PDF p.718–726)
受哺乳动物视觉系统启发(Grossberg 受 von der Malsburg [vond73] 影响,后者受 Hubel 与 Wiesel 获诺奖的实验 [HuWi62] 影响)。三部分(图 18.13):第 1 层(粗略模拟视网膜,做归一化)、第 2 层(模拟视皮层,做对比度增强)、自适应权值。网络含短时记忆(short-term memory, STM)(第 2 层的神经元活动)和长时记忆(long-term memory, LTM)(自适应权值),完成适应、滤波、归一化和对比度增强。可与上一章 Kohonen 竞争网络对照。
第 1 层(PDF p.719–722)
接收外部输入并归一化强度(Kohonen 网络在输入归一化时效果最好;Grossberg 网络由第一层自动完成)。基于分流模型,兴奋与抑制输入由输入向量算出(图 18.14)(18.5):
取 \({}^-\mathbf{b}^1=\mathbf{0}\)(下限为 0),\({}^+b^1_i={}^+b^1\) 对所有 \(i\) 相同(18.8)。神经元 \(i\)(18.9):
例(18.15–18.16):两个神经元,\({}^+b^1=1\),\(\varepsilon=0.1\): \(0.1\,\dot n^1_1=-n^1_1+(1-n^1_1)p_1-n^1_1p_2\),\(0.1\,\dot n^1_2=-n^1_2+(1-n^1_2)p_2-n^1_2p_1\)。输入 \(\mathbf{p}_1=[2;8]\) 与 \(\mathbf{p}_2=[10;40]\):两者第二元素都是第一元素的 4 倍,总强度相差 5 倍(10 对 50)。响应(图 18.15)保持 1:4 的相对强度,同时限制总响应(\(n^1_1+n^1_2<1\)):稳态分别约为 \([0.18;0.73]\) 与 \([0.20;0.78]\)。演示 nnd15gl1。
第 2 层(PDF p.723–726)
第 2 层是一层连续时间 instar,功能:①像第 1 层一样归一化总活动;②对比度增强(contrast enhancement),使输入最大的神经元主导响应(与 Hamming、Kohonen 的胜者全得密切相关);③作为短时记忆存储增强后的模式。与第 1 层的主要区别是有反馈连接:反馈使网络在输入撤去后仍能存储模式,并实现产生对比度增强的竞争。方程(图 18.16)(18.17):
例(18.18–18.21):两神经元,\(\varepsilon=0.1\),\({}^+\mathbf{b}^2=[1;1]\),\({}^-\mathbf{b}^2=\mathbf{0}\),\(\mathbf{W}^2=\begin{bmatrix}0.9&0.45\\0.45&0.9\end{bmatrix}\),传输函数 \(f^2(n)=\dfrac{10n^2}{1+n^2}\):
输入 \(\mathbf{a}^1=[0.2;0.8]\)(第 1 层例子的稳态结果)作用 0.25 秒后撤去(图 18.17):
- 撤去前已有对比度增强:输入 \({}_1\mathbf{w}^{2T}\mathbf{a}^1=0.54\)、\({}_2\mathbf{w}^{2T}\mathbf{a}^1=0.81\)(18.22–18.23),比值 1.5;0.25 秒后输出比值达 6.34,对比大幅增加。
- 撤去后网络进一步增强对比并存储模式:神经元 1 衰减到 0,神经元 2 稳定在 0.79 并保持(Grossberg 称之为回响(reverberation)[Gros76])。非线性反馈使网络能存储模式,中心-周边连接(\({}^+\mathbf{W}^2\)、\({}^-\mathbf{W}^2\))产生对比度增强。
题外:定向感受野(oriented receptive field)[GrMi89]:两层都用了中心-周边结构,但其他应用可用别的连接模式。为实现涌现分割,提出定向感受野:兴奋连接来自视野一侧,抑制来自另一侧。与边缘对齐时神经元激活,否则不激活;这解释了为何会在没有边的地方感知到边(图 18.18 最右的感受野)。[GrMi89] 给出前注意视觉的完整架构(含特征填充机制)。
传输函数的选择(PDF p.726–728)
第 2 层行为很大程度取决于 \(f^2\)。设输入作用一段时间后输出稳定于某模式,撤去输入后不同 \(f^2\) 的稳态(图 18.19,[Gross82]):
- 线性:完美存储任何模式,但噪声也被同等放大并存储(P18.6)。
- 慢于线性(如 \(f^2(n)=1-e^{-n}\)):稳态与初值无关,所有初值非零的神经元趋于同一水平——对比被消除,噪声被放大。
- 快于线性(如 \(f^2(n)=n^2\)):胜者全得,只存储初值最大的神经元,其余归零;最大限度抑制噪声,但把响应量化为全或无(如 Hamming、Kohonen 网络)。
- sigmoid:小信号时快于线性,中等信号近似线性,大信号慢于线性。用于第 2 层时对模式做对比度增强:大值放大、小值衰减;低于某水平(Grossberg 称淬灭阈值(quenching threshold)[Gros76])的初始输出衰减到零。兼具快于线性的噪声抑制和线性的完美存储,且不量化。 演示 nnd15gl2。
学习律(Learning Law)(PDF p.728–730)
自适应权值 \(\mathbf{W}^2\) 称为长时记忆(LTM):其行代表已存储、可被识别的模式;与输入最接近的存储模式在第 2 层产生最大输出。一种学习律(18.24):
例(18.27–18.32):每层两个神经元,\(\alpha=1\);两个输入模式交替呈现,每次 0.2 秒;假设第 1、2 层收敛远快于权值,在 0.2 秒内输出近似常数。模式 1:\(\mathbf{n}^1=[0.9;0.45]\),\(\mathbf{n}^2=[1;0]\);模式 2:\(\mathbf{n}^1=[0.45;0.9]\),\(\mathbf{n}^2=[0;1]\)(模式 1 由第 2 层神经元 1 编码,模式 2 由神经元 2 编码)。从全零权值开始(图 18.20):第一行 \(w^2_{1,1},w^2_{1,2}\) 只在 \(n^2_1\ne0\) 时调整,收敛到模式 1(0.9、0.45);第二行只在 \(n^2_2\ne0\) 时调整,收敛到模式 2(0.45、0.9)。演示 nnd15aw。
18.5 与 Kohonen 规则的关系(PDF p.730–731)
把 (18.25) 的导数近似为差分 \(\frac{d}{dt}{}_i\mathbf{w}^2\approx\frac{{}_i\mathbf{w}^2(t+\Delta t)-{}_i\mathbf{w}^2(t)}{\Delta t}\)(18.34),得(18.35–18.36)
与基本 Kohonen 竞争网络的三点主要区别:①Grossberg 网络是连续时间的(满足一组非线性微分方程);②第 1 层自动归一化输入;③第 2 层可做**"软"竞争而非胜者全得,使多于一个神经元学习,因而网络像特征图**一样运作。
18.6 结果汇总(PDF p.732–735)
泄漏积分器与分流模型方程;两层竞争网络结构;第 1 层方程、\({}^+\mathbf{W}^1=\mathbf{I}\)(中心)、\({}^-\mathbf{W}^1=\mathbf{1}-\mathbf{I}\)(周边)、稳态 \(n^1_i=\frac{{}^+b^1P}{1+P}\bar p_i\);第 2 层方程;传输函数选择表(线性:完美存储但放大噪声;慢于线性:放大噪声、降低对比;快于线性:胜者全得、抑制噪声、量化总活动;sigmoid:抑制噪声、增强对比、不量化);学习律(连续时间 instar)。
18.7 例题(PDF p.736–747)
- P18.1 时间常数的影响:\(p=1\)、\(n(0)=0\) 时 \(n(t)=e^{-t/\varepsilon}(n(0)-1)+1=1-e^{-t/\varepsilon}\)。\(\varepsilon=1,0.5,0.25,0.125\)(图 P18.2):稳态都是 1,只有速度变化,\(\varepsilon\) 越小越快。
- P18.2 泄漏积分器(\(\varepsilon=1\))的差分近似:\(\frac{n(t+\Delta t)-n(t)}{\Delta t}=-n(t)+p(t)\),即 \(n(t+\Delta t)=(1-\Delta t)n(t)+\Delta t\,p(t)\)。\(\Delta t=0.1\):\(n(t+0.1)=0.9n(t)+0.1p(t)\)。\(p=1\)、\(n(0)=0\) 时 \(n(0.1..1.0)=0.1,0.19,0.271,0.3439,0.4095,0.4686,0.5217,0.5695,0.6126,0.6513\),与精确解 \(1-e^{-t}\) 很接近(图 P18.3),\(\Delta t\) 越小越接近。展开:
\[n(k\cdot0.1)=0.1\big[(0.9)^{k-1}p(0)+(0.9)^{k-2}p(0.1)+\cdots+p((k-1)0.1)\big]\]即过去输入的加权平均,近期输入权重更大(指数加权)。
- P18.3 分流网络 \(b^+=1\)、\(b^-=1\)、\(p^+=0\)、\(p^-=10\)、\(n(0)=0.5\)、\(\varepsilon=1\):\(\dot n=-n-(n+1)10=-11n-10\),解 \(n(t)=e^{-11t}0.5-\frac{10}{11}(1-e^{-11t})\)(图 P18.5)。响应永远不低于 \(-b^-=-1\);抑制增大则稳态下降但不低于 \(-1\)。第二个特点:输入越大响应越快——\(p^-=100\) 时 \(n(t)=e^{-101t}0.5-\frac{100}{101}(1-e^{-101t})\),\(e^{-101t}\) 比 \(e^{-11t}\) 衰减快。
- P18.4 第 1 层两神经元,\({}^+b^1=1\),\({}^-b^1=0\),\(\varepsilon=1\),\(\mathbf{p}=[c;2c]\):\(\dot n^1_1=-(1+3c)n^1_1+c\),\(\dot n^1_2=-(1+3c)n^1_2+2c\);零初值解 \(n^1_1=\frac{c}{1+3c}(1-e^{-(1+3c)t})\),\(n^1_2=\frac{2c}{1+3c}(1-e^{-(1+3c)t})\)。神经元 2 始终是神经元 1 的两倍(符合 18.13),总和不超过 \({}^+b^1=1\)(符合 18.14)。\(c\) 增大:稳态略增,响应变快。
- P18.5 第 2 层输入撤去后(\(\mathbf{W}^2\mathbf{a}^1=0\),\({}^-\mathbf{b}^2=0\),\({}^+b^2_i={}^+b^2\),取 \(\varepsilon=1\)):
- 单个神经元:\(\dot n^2_i=-n^2_i+({}^+b^2-n^2_i)f^2(n^2_i)-n^2_i\sum_{k\ne i}f^2(n^2_k)\),整理为 \(\dot n^2_i=-(1+F^2)n^2_i+{}^+b^2f^2(n^2_i)\),其中 \(F^2(t)=\sum_kf^2(n^2_k(t))\)。
- 总活动 \(N^2=\sum_kn^2_k\):\(\dfrac{dN^2}{dt}=-(1+F^2)N^2+{}^+b^2F^2\)。
- 相对活动 \(\bar n^2_i=n^2_i/N^2\):\(\dfrac{d\bar n^2_i}{dt}=\dfrac{{}^+b^2F^2}{N^2}\Big[\dfrac{f^2(n^2_i)}{F^2}-\dfrac{n^2_i}{N^2}\Big]\),再令 \(g^2(n)=f^2(n)/n\),得
\[\frac{d\bar n^2_i}{dt}={}^+b^2\,\bar n^2_i\sum_{k=1}^{S^2}\bar n^2_k\,\big[g^2(n^2_i)-g^2(n^2_k)\big]\]这一形式揭示第 2 层特性:\(g^2\) 递增(快于线性)时较大者相对份额增长 → 胜者全得;\(g^2\) 常数(线性)时相对份额不变;\(g^2\) 递减(慢于线性)时趋于均等。
- P18.6 线性 \(f^2(n)=cn\):①\(g^2=c\) 为常数,代入得 \(d\bar n^2_i/dt=0\),相对输出不变(完美存储)。②\(F^2=cN^2\),\(\dfrac{dN^2}{dt}=\big((\,{}^+b^2c-1)-cN^2\big)N^2\),平衡点 \(N^2=0\) 或 \(N^2=({}^+b^2c-1)/c\)。若 \(1\ge{}^+b^2c\),导数恒负,总输出衰减到 0;若 \(1<{}^+b^2c\),无论 \(N^2(0)\) 在平衡点上方还是下方都收敛到 \(({}^+b^2c-1)/c\)。例:\({}^+b^2=1.5\)、\(c=1\)、\(\varepsilon=1\),\(N^2\to0.5\);初值 \([0.75;0.5]\) 与 \([0.15;0.1]\) 相对值相同,都收敛到同一输出(\([0.3;0.2]\))(图 P18.6)。
- P18.7 证明连续时间带衰减 Hebb 规则 (18.24) 等价于离散版 (15.18):差分近似得 \(w^2_{i,j}(t+\Delta t)=(1-\alpha\Delta t)w^2_{i,j}(t)+\alpha\Delta t\,n^2_i(t)n^1_j(t)\),向量形式 \(\mathbf{W}^2(t+\Delta t)=(1-\alpha\Delta t)\mathbf{W}^2(t)+\alpha\Delta t\,\mathbf{n}^2(t)(\mathbf{n}^1(t))^T\),与 \(\mathbf{W}(q)=(1-\gamma)\mathbf{W}(q-1)+\alpha\mathbf{a}(q)\mathbf{p}^T(q)\) 形式相同。
18.8 结语与延伸阅读(PDF p.748–750)
- 结语:Grossberg 网络受高等脊椎动物视觉系统启发,是两层连续时间竞争网络,结构和运行与 Kohonen 竞争网络很相似。第 1 层展示视觉系统如何用中心-周边连接和分流模型实现自动增益控制、归一化总活动;第 2 层用非线性反馈和中心-周边连接做竞争、增强对比并存入 STM,传输函数和反馈模式决定竞争程度(胜者全得、温和增强或不变);自适应权值用 instar 规则把原型存入 LTM,第 2 层胜者全得时等价于 Kohonen 规则。关键问题之一是学习稳定性:输入不断到来时权值可能永不收敛,第 19 章的 ART 网络(本章网络的直系后代)专为解决此问题而设计;另一问题是实现网络的非线性反馈微分方程的稳定性,第 20 章系统讨论。
- 延伸阅读:[GrMi89] Grossberg, Mingolla, Todorovic 前注意视觉网络(边界轮廓系统 + 特征轮廓系统);[Gros76] 自适应模式分类与通用重编码(连续时间竞争网络,为后续重要网络奠基);[Gros82]《Studies of Mind and Brain》;[Hube88] Hubel《Eye, Brain, and Vision》;[vanT75] 霓虹色扩散错觉的原始发现;[vond73] von der Malsburg 视皮层方向敏感细胞的自组织(最早的自组织特征图之一,影响了 Kohonen 和 Grossberg)。
18.9 习题概览(PDF p.751–754)
E18.1 泄漏积分器三组参数(\(\varepsilon=1,n(0)=1,p=0.5\);\(\varepsilon=1,p=2\);\(\varepsilon=4,p=2\))求解析解并用 ode45 仿真。E18.2 分流网络七组参数(含只有抑制、只有兴奋、两者同时,不同 \(\varepsilon\)、\(b^\pm\)),求解并验证上下界性质,比较泄漏积分器与分流网络。E18.3、E18.4 第 1 层两神经元(\({}^+b^1=0.5\),\(\varepsilon=0.5\)),输入 \([2;1]\) 与 \([20;10]\):用 (18.13) 求稳态、解微分方程、仿真(考查相对强度保持与总量饱和)。E18.5 第 1 层(\({}^+b^1=2\),\({}^-b^1=0\),\(\varepsilon=2\),\(\mathbf{p}=[4;1]\))求输出曲线。E18.6 用 P18.5 的方法推导第 1 层总输出 \(N^1\) 的微分方程。E18.7 第 2 层线性 \(f^2(n)=2n\),求撤去输入后的稳态总输出(\({}^+b^2=1\) 与 \(0.25\) 两种情况),并仿真两组初值。E18.8 \(f^2(n)=c\,n^2\):证明撤去输入后除最大初值者外相对输出都衰减到零(胜者全得);求 \(c\) 为何值时总输出有非零稳定点、稳态值及其是否依赖初值;仿真 \(c=4\)、\(N^2(0)=3\)。E18.9 仿真自适应权值(\(\alpha=1\),两模式交替 0.2 秒:\(\mathbf{n}^1=[0.8;0.2],\mathbf{n}^2=[1;0]\);\(\mathbf{n}^1=[0.5;0.5],\mathbf{n}^2=[0;1]\))。E18.10 改用带衰减 Hebb 规则 (18.24) 重做 E18.9,解释差异(非门控时不活跃行也会遗忘)。
本章要点
- 泄漏积分器 \(\varepsilon\dot n=-n+p\) 是一阶低通滤波器,离散化后即过去输入的指数加权平均;\(\varepsilon\) 只影响速度不影响稳态。
- 分流模型 \(\varepsilon\dot n=-n+(b^+-n)p^+-(n+b^-)p^-\) 通过非线性增益控制把响应限制在 \([-b^-,b^+]\),输入越大响应越快但饱和。
- 第 1 层(中心-周边 + 分流)稳态 \(n^1_i=\frac{b^+P}{1+P}\bar p_i\):编码相对强度、总量有界,对应视觉的亮度恒常/对比与"扣除照明"。
- 第 2 层(反馈 + 中心-周边)实现对比度增强和 STM;传输函数决定行为:线性完美存储但放大噪声,慢于线性抹平对比,快于线性胜者全得,sigmoid 兼顾(淬灭阈值)。分析工具:总活动方程与相对活动方程(\(g=f/n\) 的单调性决定竞争类型)。
- LTM 学习律 \(\dot{\mathbf{w}}_i=\alpha n^2_i(-\mathbf{w}_i+\mathbf{n}^1)\) 是连续时间 instar,离散化 + 胜者全得即 Kohonen 规则;软竞争使其类似特征图。学习稳定性问题留给 ART。
与量化交易的关联
本章以生物视觉建模为主,与量化交易没有直接的标准工具对应,以下是概念层面的有限联系:
- 泄漏积分器 = EMA:P18.2 显示离散化后的泄漏积分器就是指数移动平均,\(\varepsilon\)(或 \(\Delta t/\varepsilon\))对应平滑系数/半衰期;时间常数只影响速度不影响稳态,这与 EMA 平滑参数的直观完全一致,可作为 EMA、一阶低通滤波器的连续时间解释。
- 第 1 层归一化 ↔ 横截面归一化:\(n_i\propto p_i/(1+\sum p_j)\) 只保留相对强度、压缩总量,类似对一组资产信号做横截面归一化或把信号转为权重(相对强弱/占比),同时用饱和函数限制总暴露——可类比"总杠杆有上限、按相对信号强度分配仓位"。
- 对比度增强 ↔ 信号集中化:第 2 层的传输函数选择(线性保持比例、快于线性趋向胜者全得、sigmoid 设淬灭阈值)可类比组合构建中从比例配置到"只买最强者"的集中程度选择,以及用阈值过滤弱信号以抑制噪声。
- 实务中极少直接使用 Grossberg 网络或 ART 做交易模型。
推荐习题
- P18.2 与 E18.1:泄漏积分器的差分化与指数加权平均解释。
- P18.3、E18.2:分流模型的上下界与响应速度。
- P18.4、E18.3、E18.4:第 1 层的相对强度保持与总量饱和。
- P18.5、P18.6、E18.8:用总活动/相对活动方程分析第 2 层,理解线性与快于线性传输函数的差别(最能体现本章数学方法)。
- E18.9、E18.10:门控 instar 学习与带衰减 Hebb 学习的对比。
(本块结束于 PDF p.754,即第 18 章习题末页;第 19 章自适应共振理论见下一块。)