量化交易中文教材

第 18 章 Grossberg 网络

本章对应原书第 18 章(Grossberg Network)。Grossberg 网络是一种受视觉系统启发的连续时间自组织竞争网络,也是第 19 章自适应共振理论(ART)的基础。它与量化交易没有直接对应的常用工具,本章压缩讲解:保留分流模型、两层网络的稳态分析、传递函数如何决定竞争方式、连续时间 instar 学习律,以及它们与 Kohonen 规则的关系。值得量化读者带走的有两点:泄漏积分器离散化后就是 EMA;第 1 层"只保留相对强度、总量有界"的归一化机制,可以类比截面信号到持仓权重的映射。

原书本章正文的交叉引用和演示程序编号多处沿用第一版章号(如"第 13 章的 instar 规则"实为第 15 章,"第 14 章的 Kohonen 网络"实为第 16 章,"第 16 章 ART"实为第 19 章,"第 17 章稳定性"实为第 20 章)。本书按第二版章号改正,并按本册的章节合并方式引用:联想学习与竞争网络见本册第 15 章。

学习目标

读完本章,你应当能够:

  1. 写出泄漏积分器和分流模型的微分方程,说明分流模型如何把响应限制在 \([-b^-,b^+]\) 之内。
  2. 推导第 1 层(中心兴奋/周边抑制 + 分流)的稳态 \(n^1_i=\frac{{}^+b^1P}{1+P}\,\bar p_i\),解释"只编码相对强度、总活动有界"的含义。
  3. 说明第 2 层的反馈如何实现对比度增强和短时记忆,并能根据 \(g(n)=f(n)/n\) 的单调性判断线性、慢于线性、快于线性和 sigmoid 传递函数各自产生什么行为。
  4. 写出连续时间 instar 学习律,并说明它在离散化和胜者全得条件下如何退化为 Kohonen 规则。
  5. 用 scipy.integrate.solve_ivp 仿真第 1、2 层,复现原书数值。

读前导读

本章是选读章。 它是神经科学味道很重的一章,与量化几乎没有直接对应的工具。第一次读本册时可以只看本导读、18.2.1(泄漏积分器 = EMA)和 18.4 节的"类比"部分,其余等你对 ART(第 19 章)有兴趣时再读。

这一章在解决什么问题。 前几章的网络都是"一步算完"的:输入进来,乘权值、过激活函数,输出。本章的网络是连续时间的:每个神经元的状态 \(n(t)\) 随时间演化,由一个微分方程描述,我们关心的是它最终停在哪里(稳态)。你可以把它想成一个不断对新信息做平滑、同时彼此抑制的系统。值得带走的只有两点:泄漏积分器离散化后就是 EMA;第 1 层"只保留相对强度、总量有上限"的机制,像是把一组截面信号变成持仓权重时"按相对强弱分配、总杠杆封顶"。

需要先想起来的数学。

  • 微分方程与稳态:\(\varepsilon\,dn/dt=-n+p\) 说的是"\(n\) 的变化速度正比于它离目标 \(p\) 的差距"。差距大就变得快,差距为零就停下。求稳态不必解方程,只需令 \(dn/dt=0\),解出 \(n=p\)。这和你用"新旧权值相等"求带衰减规则的上限是同一招。见 第 00 册第 02 章 导数与泰勒展开。
  • 指数衰减与连续复利:解 \(n(t)=p(1-e^{-t/\varepsilon})\) 中的 \(e^{-t/\varepsilon}\) 与连续复利贴现因子 \(e^{-rt}\) 完全同形,\(1/\varepsilon\) 相当于"利率",决定收敛速度。见 第 00 册第 03 章 积分。
  • 差分近似:把 \(dn/dt\) 换成 \(\big(n(t+\Delta t)-n(t)\big)/\Delta t\),微分方程就变成递推式,这正是 18.2.1 节得到 EMA 的方法。

怎么读这一章。 18.1 生物背景可以跳过;18.2 读完;18.3.1 第 1 层的稳态公式值得看懂;18.3.2–18.3.3 看结论表格即可;18.3.5 说明它和第 15 章 Kohonen 规则是同一件事的连续版本。


18.1 背景与生物动机

1960 年代末到 1970 年代神经网络研究低潮期,仍坚持工作的少数人中最多产的是 Stephen Grossberg。他用非线性微分方程为大脑的具体功能建模,以难读著称:术语自成体系,数学和神经生理学门槛都高。原书本章的路线是:视觉系统的生物动机 → 分流模型 → 两层竞争网络 → 第 19 章 ART。

视觉通路:视网膜(实际上是大脑的一部分)有三层细胞。最外层是感光细胞(视杆负责暗光,视锥负责细节与颜色),光要先穿过另两层才能到达它们;中层是双极细胞、水平细胞和无长突细胞;内层是神经节细胞,其轴突汇成视神经。每只眼约 1.25 亿个感受器,只有约 100 万个神经节细胞,视网膜内部做了大量压缩。视神经经外侧膝状体投射到初级视皮层,各层之间是高度有序的拓扑映射,这也是自组织特征图的灵感来源之一。

视网膜的缺陷与错觉:视盘处没有感光细胞,形成盲点;血管从感光细胞前方穿过。我们看不到盲点和血管,因为大脑会补全,而且视觉通路对相对眼球静止的稳定图像不响应(眼球不停做扫视运动)。Grossberg 提出两类补偿机制:涌现分割(emergent segmentation)补全缺失的边界,特征填充(featural filling-in)在边界内填充颜色与亮度。主观轮廓、霓虹色扩散等错觉就是这些机制"补错了"的证据。

视觉归一化:亮度恒常(照明强度变化 10–100 倍,我们感知的只是相对亮度)和亮度对比(同样灰度的圆盘,周围越暗看起来越亮)说明视觉系统对相对强度敏感,整幅图像的总活动似乎保持恒定。Grossberg 称之为"扣除照明"(discounting the illuminant)。没有这种归一化,就无法在不同光照下识别同一物体。下面的第 1 层就是这种归一化的数学模型。


18.2 基本非线性模型

18.2.1 泄漏积分器

\[ \varepsilon\frac{dn(t)}{dt}=-n(t)+p(t) \tag{18.1} \]

\(\varepsilon\) 为时间常数。解为

\[ n(t)=e^{-t/\varepsilon}n(0)+\frac{1}{\varepsilon}\int_0^t e^{-(t-\tau)/\varepsilon}p(\tau)\,d\tau \tag{18.2} \]

常数输入、零初值时 \(n(t)=p\,(1-e^{-t/\varepsilon})\)。两点性质:方程线性,输入放大几倍响应就放大几倍;\(\varepsilon\) 只影响响应速度,不影响稳态(原书 P18.1:\(\varepsilon=1,0.5,0.25,0.125\) 稳态都是 1)。

原书 P18.2 给出差分近似(\(\varepsilon=1\)):\(n(t+\Delta t)=(1-\Delta t)\,n(t)+\Delta t\,p(t)\)。取 \(\Delta t=0.1\)、\(p=1\),\(n\) 依次为 \(0.1,0.19,0.271,0.3439,\dots,0.6513\),与精确解 \(1-e^{-t}\) 很接近。展开得

\[ n(k\Delta t)=\Delta t\big[(1-\Delta t)^{k-1}p(0)+(1-\Delta t)^{k-2}p(\Delta t)+\cdots+p((k-1)\Delta t)\big] \]

即过去输入的指数加权平均,近期权重大。这就是 EMA,平滑系数为 \(\Delta t/\varepsilon\)。

18.2.2 分流模型

\[ \varepsilon\frac{dn(t)}{dt}=-n(t)+\big(b^+-n(t)\big)\,p^+-\big(n(t)+b^-\big)\,p^- \tag{18.4} \]

\(p^+\ge0\) 为兴奋性输入,\(p^-\ge0\) 为抑制性输入,\(b^+,b^-\ge0\) 决定上下限。三项含义:

  • \(-n\):线性衰减(同泄漏积分器);
  • \((b^+-n)p^+\):非线性增益控制,\(n\) 越接近 \(b^+\),兴奋作用越弱,\(n=b^+\) 时为零,所以 \(n\) 不会超过 \(b^+\);
  • \(-(n+b^-)p^-\):同理,\(n\) 不会低于 \(-b^-\)。

结论:若 \(n(0)\in[-b^-,b^+]\),则 \(n(t)\) 永远在这个区间内。只有兴奋输入时稳态为 \(n=b^+p^+/(1+p^+)\):\(b^+=1\) 时 \(p^+=1\) 得 0.5,\(p^+=5\) 得 0.83,输入放大 5 倍而响应增加不到 2 倍。原书 P18.3 还指出:输入越大响应越快(\(p^-=10\) 时按 \(e^{-11t}\) 收敛,\(p^-=100\) 时按 \(e^{-101t}\))。


18.3 两层竞争网络

网络由三部分组成:第 1 层(模拟视网膜,做归一化)、第 2 层(模拟视皮层,做对比度增强)和自适应权值。第 2 层的神经元活动称为短时记忆(short-term memory, STM),自适应权值称为长时记忆(long-term memory, LTM)。可以与第 15 章的 Kohonen 竞争网络逐一对照。

18.3.1 第 1 层:归一化

\[ \varepsilon\frac{d\mathbf{n}^1}{dt}=-\mathbf{n}^1+({}^+\mathbf{b}^1-\mathbf{n}^1)\,[{}^+\mathbf{W}^1]\,\mathbf{p}-(\mathbf{n}^1+{}^-\mathbf{b}^1)\,[{}^-\mathbf{W}^1]\,\mathbf{p} \tag{18.5} \]

\({}^+\mathbf{W}^1=\mathbf{I}\)(神经元 \(i\) 的兴奋输入就是 \(p_i\)),\({}^-\mathbf{W}^1\) 对角为 0、其余为 1(抑制输入是其他所有输入之和)。这就是中心兴奋/周边抑制(on-center/off-surround)连接。取 \({}^-\mathbf{b}^1=\mathbf{0}\)、\({}^+b^1_i={}^+b^1\),单个神经元为

\[ \varepsilon\frac{dn^1_i}{dt}=-n^1_i+({}^+b^1-n^1_i)\,p_i-n^1_i\sum_{j\ne i}p_j \tag{18.9} \]

令导数为零,解得稳态

\[ n^1_i=\frac{{}^+b^1\,p_i}{1+\sum_jp_j}=\Big(\frac{{}^+b^1P}{1+P}\Big)\bar p_i,\qquad \bar p_i=\frac{p_i}{P},\quad P=\sum_jp_j \tag{18.11–18.13} \]
\[ \sum_jn^1_j=\frac{{}^+b^1P}{1+P}\le{}^+b^1 \tag{18.14} \]

推导拆解:从 (18.9) 到 (18.11)。令 \(dn^1_i/dt=0\):\(0=-n^1_i+{}^+b^1p_i-n^1_ip_i-n^1_i\sum_{j\ne i}p_j\)。把含 \(n^1_i\) 的三项合并:\(-n^1_i\big(1+p_i+\sum_{j\ne i}p_j\big)=-n^1_i(1+P)\),因为 \(p_i\) 加上其余所有 \(p_j\) 正好是总和 \(P\)。于是 \(n^1_i(1+P)={}^+b^1p_i\),得 \(n^1_i={}^+b^1p_i/(1+P)\)。再把 \(p_i\) 写成 \(P\bar p_i\) 就是 (18.13);对 \(i\) 求和并用 \(\sum_i\bar p_i=1\) 得 (18.14)。关键在于:周边抑制项和自身的分流项合在一起,分母恰好是总输入,归一化就是这么"自动"出来的。

稳态活动正比于相对强度 \(\bar p_i\),比例因子随总输入 \(P\) 增大而饱和于 \({}^+b^1\);总活动有界。 这正是亮度恒常与亮度对比的机制,由中心-周边连接与分流模型的非线性增益控制共同产生。生理实验也发现视网膜神经节细胞的感受野呈中心-周边结构。第 15 章的竞争网络要求输入事先归一化,Grossberg 网络由第 1 层自动完成。

例(\({}^+b^1=1\),\(\varepsilon=0.1\)):输入 \(\mathbf{p}_1=[2;8]\) 与 \(\mathbf{p}_2=[10;40]\),总强度相差 5 倍,相对强度都是 1:4。稳态分别为 \([0.18;0.73]\) 与 \([0.20;0.78]\),保持 1:4 且总和小于 1。

18.3.2 第 2 层:对比度增强与短时记忆

第 2 层是一层连续时间 instar,与第 1 层的主要区别是有反馈:

\[ \varepsilon\frac{d\mathbf{n}^2}{dt}=-\mathbf{n}^2+({}^+\mathbf{b}^2-\mathbf{n}^2)\big\{[{}^+\mathbf{W}^2]\mathbf{f}^2(\mathbf{n}^2)+\mathbf{W}^2\mathbf{a}^1\big\}-(\mathbf{n}^2+{}^-\mathbf{b}^2)\,[{}^-\mathbf{W}^2]\,\mathbf{f}^2(\mathbf{n}^2) \tag{18.17} \]

兴奋输入是自身反馈 \({}^+\mathbf{W}^2\mathbf{f}^2(\mathbf{n}^2)\)(\({}^+\mathbf{W}^2=\mathbf{I}\))加上自适应权值传来的 \(\mathbf{W}^2\mathbf{a}^1\);抑制输入是其他神经元的反馈。\(\mathbf{W}^2\) 的各行是存储的原型,\(\mathbf{W}^2\mathbf{a}^1\) 是原型与归一化输入的内积,最大者对应最近的原型;然后神经元通过反馈竞争。三项功能:归一化总活动、对比度增强(让输入最大的神经元主导)、作为短时记忆在输入撤去后保持模式。它的竞争通常比胜者全得温和,程度由传递函数决定。

例(\(\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]\) 作用 0.25 秒后撤去。第 2 层收到的输入为 \([0.54;0.81]\),比值 1.5;0.25 秒时输出比值已达 6.34;撤去输入后神经元 1 衰减到 0,神经元 2 稳定在约 0.79 并一直保持。Grossberg 称这种持续活动为回响(reverberation)。

18.3.3 传递函数决定竞争方式

撤去输入后第 2 层的行为几乎完全由 \(f^2\) 决定。原书 P18.5 给出分析工具(取 \(\varepsilon=1\),\({}^-\mathbf{b}^2=\mathbf{0}\)):定义总活动 \(N^2=\sum_kn^2_k\)、相对活动 \(\bar n^2_i=n^2_i/N^2\)、\(F^2=\sum_kf^2(n^2_k)\)、\(g^2(n)=f^2(n)/n\),可推得

\[ \frac{dN^2}{dt}=-(1+F^2)\,N^2+{}^+b^2F^2,\qquad \frac{d\bar n^2_i}{dt}={}^+b^2\,\bar n^2_i\sum_{k}\bar n^2_k\big[g^2(n^2_i)-g^2(n^2_k)\big] \]

第二个式子说明一切:相对份额的变化取决于 \(g^2=f^2/n\) 的单调性。

白话解释:\(g(n)=f(n)/n\) 可以理解为"每单位活动得到的反馈回报率"。相对份额方程说:一个神经元的份额会增长,当且仅当它的回报率高于其他神经元的(加权)平均回报率。若 \(g\) 递增(快于线性),越强的神经元回报率越高,份额越来越大,最后赢家通吃,就像"收益率随规模递增"的行业最终走向垄断;若 \(g\) 递减(慢于线性),弱者回报率反而更高,大家被拉平;若 \(g\) 为常数(线性),所有人回报率相同,份额保持不变。

传递函数 \(g^2(n)\) 撤去输入后的行为
线性 \(f=cn\) 常数 相对活动不变,完美存储任何模式,但噪声也被同样保存
慢于线性(如 \(1-e^{-n}\)) 递减 各神经元趋于同一水平,对比被抹平,噪声被放大
快于线性(如 \(n^2\)) 递增 胜者全得,只保留初值最大者,噪声被完全抑制,但输出被量化为全或无
sigmoid 先增后减 低于淬灭阈值(quenching threshold)的活动衰减到零,高于阈值的被增强并保存;兼有噪声抑制与存储,且不只剩一个赢家

线性情形的总活动(P18.6):\(F^2=cN^2\),\(\frac{dN^2}{dt}=\big(({}^+b^2c-1)-cN^2\big)N^2\)。若 \({}^+b^2c\le1\),总活动衰减到 0;若 \({}^+b^2c>1\),收敛到 \(({}^+b^2c-1)/c\)。例如 \({}^+b^2=1.5\)、\(c=1\) 时收敛到 0.5,初值 \([0.75;0.5]\) 与 \([0.15;0.1]\) 相对比例相同,都收敛到 \([0.3;0.2]\)。

18.3.4 学习律:连续时间 instar

自适应权值 \(\mathbf{W}^2\) 是长时记忆。最直接的学习律是连续时间的带衰减 Hebb 规则:

\[ \frac{dw^2_{i,j}}{dt}=\alpha\big\{-w^2_{i,j}(t)+n^2_i(t)\,n^1_j(t)\big\} \tag{18.24} \]

原书 P18.7 证明:用差分近似,它与第 15 章离散的带衰减 Hebb 规则 \(\mathbf{W}(q)=(1-\gamma)\mathbf{W}(q-1)+\alpha\mathbf{a}\mathbf{p}^T\) 形式相同。为了在 \(n^2_i\) 不活跃时关闭学习和遗忘,改为由 \(n^2_i\) 门控(gated):

\[ \frac{d\,{}_i\mathbf{w}^2(t)}{dt}=\alpha\,n^2_i(t)\big\{-{}_i\mathbf{w}^2(t)+\mathbf{n}^1(t)\big\} \tag{18.26} \]

这就是第 15 章 instar 规则的连续时间版本。

例:每层两个神经元,\(\alpha=1\),两个模式交替各呈现 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]\)。从零权值开始,第一行只在 \(n^2_1\ne0\) 时调整,收敛到 \([0.9,0.45]\);第二行只在 \(n^2_2\ne0\) 时调整,收敛到 \([0.45,0.9]\)。若改用不门控的 (18.24),不活跃的那一行也会持续衰减(原书 E18.10)。

18.3.5 与 Kohonen 规则的关系

把 (18.26) 用差分近似:

\[ {}_i\mathbf{w}^2(t+\Delta t)=\big\{1-\alpha\Delta t\,n^2_i(t)\big\}\,{}_i\mathbf{w}^2(t)+\alpha\Delta t\,n^2_i(t)\,\mathbf{n}^1(t) \tag{18.36} \]

若第 2 层用快于线性的传递函数,只有获胜者 \(i^*\) 非零:

\[ {}_{i^*}\mathbf{w}^2(t+\Delta t)=(1-\alpha')\,{}_{i^*}\mathbf{w}^2(t)+\alpha'\,\mathbf{n}^1(t),\qquad \alpha'=\alpha\Delta t\,n^2_{i^*}(t) \tag{18.37} \]

这几乎就是 Kohonen 规则:获胜者向当前输入的归一化版本移动。与基本 Kohonen 竞争网络相比有三点区别:Grossberg 网络是连续时间的;第 1 层自动归一化输入;第 2 层可以做"软"竞争,让多个神经元同时学习,因而行为更像特征图。

Grossberg 网络留下两个问题:输入不断到来时,权值可能永不收敛(学习稳定性),这由第 19 章 ART 解决;非线性反馈微分方程本身的稳定性,由原书第 20 章讨论(本册第 19 章 19.2 节)。


18.4 量化实战:仿真与类比

本章没有可以直接用于交易的模型,下面的代码只做两件事:复现原书数值,加深对分流归一化和传递函数作用的理解;验证泄漏积分器与 EMA 的等价。

import numpy as np
from scipy.integrate import solve_ivp

# 1) 第 1 层:中心兴奋/周边抑制的分流网络,eps=0.1,+b=1(式 18.15–18.16)
def layer1(t, n, p, b=1.0, eps=0.1):
    P = p.sum()
    return (-n + (b - n) * p - n * (P - p)) / eps
for p in (np.array([2.0, 8.0]), np.array([10.0, 40.0])):
    sol = solve_ivp(layer1, (0, 0.5), np.zeros(2), args=(p,), rtol=1e-8)
    n = sol.y[:, -1]
    print(f"输入 {p}: 稳态 {n.round(3)}, 比值 {n[1]/n[0]:.2f}, 总和 {n.sum():.3f}, "
          f"公式 b*p/(1+P) = {(p/(1+p.sum())).round(3)}")

# 2) 第 2 层:反馈 + 中心-周边,输入 a1=[0.2,0.8] 作用 0.25 秒后撤去(式 18.18–18.21)
W2 = np.array([[0.9, 0.45], [0.45, 0.9]])
a1 = np.array([0.2, 0.8])
def layer2(t, n, f, eps=0.1):
    inp = W2 @ a1 if t < 0.25 else np.zeros(2)
    fn = f(n)
    return (-n + (1 - n) * (fn + inp) - n * (fn.sum() - fn)) / eps
f_sig = lambda n: 10 * n ** 2 / (1 + n ** 2)
sol = solve_ivp(layer2, (0, 0.25), np.zeros(2), args=(f_sig,), rtol=1e-8, max_step=1e-3)
n_mid = sol.y[:, -1]
sol = solve_ivp(layer2, (0.25, 3.0), n_mid, args=(f_sig,), rtol=1e-8, max_step=1e-3)
print(f"第 2 层输入 W2·a1 = {W2 @ a1},比值 {(W2 @ a1)[1]/(W2 @ a1)[0]:.2f}")
print(f"t=0.25 输出 {n_mid.round(3)},比值 {n_mid[1]/n_mid[0]:.2f};撤去输入后 t=3 输出 {sol.y[:, -1].round(3)}")

# 3) 不同传递函数:撤去输入后从同一初值出发(eps=1,+b=1),看相对活动如何演变
fs = {"线性 2n": lambda n: 2 * n,
      "慢于线性 2(1-e^-n)": lambda n: 2 * (1 - np.exp(-n)),
      "快于线性 5n^2": lambda n: 5 * n ** 2,
      "sigmoid 3n^2/(0.1+n^2)": lambda n: 3 * n ** 2 / (0.1 + n ** 2)}
n0 = np.array([0.45, 0.50, 0.03])          # 两个强信号 + 一个弱"噪声"
def free(t, n, f, b=1.0):
    fn = f(n)
    return -n + (b - n) * fn - n * (fn.sum() - fn)
print("初值", n0, " 相对活动", (n0 / n0.sum()).round(3))
for name, f in fs.items():
    nT = solve_ivp(free, (0, 30), n0, args=(f,), rtol=1e-8).y[:, -1]
    print(f"{name:24s} 终值 {nT.round(3)}  相对活动 {(nT / nT.sum()).round(3)}")

# 4) 泄漏积分器的差分近似就是 EMA(P18.2):n(t+dt) = (1-dt/eps) n(t) + (dt/eps) p(t)
dt, eps = 0.1, 1.0
n = 0.0; path = []
for k in range(10):
    n = (1 - dt / eps) * n + dt / eps * 1.0; path.append(n)
print("差分解", np.round(path, 4))
print("精确解", np.round(1 - np.exp(-np.arange(1, 11) * dt / eps), 4))
print(f"对应 EMA 平滑系数 = {dt/eps},半衰期 = {np.log(0.5)/np.log(1-dt/eps):.2f} 步")

输出:

输入 [2. 8.]: 稳态 [0.182 0.727], 比值 4.00, 总和 0.909, 公式 b*p/(1+P) = [0.182 0.727]
输入 [10. 40.]: 稳态 [0.196 0.784], 比值 4.00, 总和 0.980, 公式 b*p/(1+P) = [0.196 0.784]
第 2 层输入 W2·a1 = [0.54 0.81],比值 1.50
t=0.25 输出 [0.126 0.801],比值 6.34;撤去输入后 t=3 输出 [0.    0.795]
初值 [0.45 0.5  0.03]  相对活动 [0.459 0.51  0.031]
线性 2n                    终值 [0.23  0.255 0.015]  相对活动 [0.459 0.51  0.031]
慢于线性 2(1-e^-n)           终值 [0.158 0.158 0.145]  相对活动 [0.342 0.342 0.316]
快于线性 5n^2                终值 [0.    0.724 0.   ]  相对活动 [0. 1. 0.]
sigmoid 3n^2/(0.1+n^2)   终值 [0.392 0.392 0.   ]  相对活动 [0.5 0.5 0. ]
差分解 [0.1    0.19   0.271  0.3439 0.4095 0.4686 0.5217 0.5695 0.6126 0.6513]
精确解 [0.0952 0.1813 0.2592 0.3297 0.3935 0.4512 0.5034 0.5507 0.5934 0.6321]
对应 EMA 平滑系数 = 0.1,半衰期 = 6.58 步

解读。

  • 第 1 层的仿真与公式 \(b\,p_i/(1+P)\) 完全一致,原书第 2 层的比值 6.34 和存储值约 0.79 也被复现。
  • 传递函数实验与 18.3.3 节的表格逐条对应:线性完美保存了包括弱噪声在内的相对比例(总活动收敛到 \((bc-1)/c=0.5\));慢于线性把弱噪声从 3% 抬到 32%;快于线性只剩一个赢家;sigmoid 把低于淬灭阈值的弱信号清零,同时保留了两个强信号。两个强信号最后被拉平,是因为它们都落在 sigmoid 的饱和段(那里 \(g\) 递减),这正是 sigmoid"小信号快于线性、大信号慢于线性"的体现。

类比(概念层面,不是标准做法)。

  • 泄漏积分器 = EMA:时间常数 \(\varepsilon\) 对应半衰期,只影响速度不影响稳态,这与 EMA 平滑参数的直观完全一致。
  • 第 1 层 ↔ 截面归一化与仓位分配:\(n_i\propto p_i/(1+\sum_jp_j)\) 只保留相对强度、总量有上限,可以类比"按信号相对强度分配仓位、总杠杆有上限"。总信号很弱时(\(P\) 小)总仓位自动变小,信号很强时饱和于上限。
  • 第 2 层传递函数 ↔ 组合集中度:线性对应按比例配置;快于线性对应"只买最强的一个";sigmoid 对应"过滤掉弱于阈值的信号,强信号保留"。这只是帮助记忆的类比,实务中极少直接用 Grossberg 网络或 ART 做交易模型。

本章小结

Grossberg 网络把视觉系统的归一化和竞争写成非线性微分方程。泄漏积分器 \(\varepsilon\dot n=-n+p\) 是一阶低通滤波器,离散化后就是指数加权平均。分流模型通过非线性增益控制把响应限制在 \([-b^-,b^+]\) 内。第 1 层用中心兴奋/周边抑制加分流,稳态只编码相对强度,总活动有界,对应亮度恒常和"扣除照明"。第 2 层用反馈加中心-周边连接实现对比度增强和短时记忆;撤去输入后的行为由 \(g=f/n\) 的单调性决定:线性完美存储、慢于线性抹平对比、快于线性胜者全得、sigmoid 带淬灭阈值地增强。自适应权值用门控的连续时间 instar 规则学习,离散化并在胜者全得时就是 Kohonen 规则。学习稳定性问题留给第 19 章 ART。

概念 公式 / 要点
泄漏积分器 \(\varepsilon\dot n=-n+p\);离散化 \(n\leftarrow(1-\Delta t/\varepsilon)n+(\Delta t/\varepsilon)p\)(EMA)
分流模型 \(\varepsilon\dot n=-n+(b^+-n)p^+-(n+b^-)p^-\),\(n\in[-b^-,b^+]\)
第 1 层稳态 \(n^1_i=\frac{{}^+b^1P}{1+P}\bar p_i\),\(\sum_jn^1_j\le{}^+b^1\)
第 2 层 \(\varepsilon\dot{\mathbf{n}}^2=-\mathbf{n}^2+({}^+\mathbf{b}^2-\mathbf{n}^2)\{\mathbf{f}^2(\mathbf{n}^2)+\mathbf{W}^2\mathbf{a}^1\}-\mathbf{n}^2\odot[{}^-\mathbf{W}^2]\mathbf{f}^2(\mathbf{n}^2)\)
相对活动方程 \(\dot{\bar n}^2_i={}^+b^2\bar n^2_i\sum_k\bar n^2_k[g^2(n^2_i)-g^2(n^2_k)]\),\(g=f/n\)
线性时总活动 \({}^+b^2c>1\) 时 \(N^2\to({}^+b^2c-1)/c\)
学习律 \(\dfrac{d\,{}_i\mathbf{w}^2}{dt}=\alpha\,n^2_i(-{}_i\mathbf{w}^2+\mathbf{n}^1)\)(门控 instar)
与 Kohonen 规则 \({}_{i^*}\mathbf{w}^2\leftarrow(1-\alpha'){}_{i^*}\mathbf{w}^2+\alpha'\mathbf{n}^1\),\(\alpha'=\alpha\Delta t\,n^2_{i^*}\)

练习

基础

  1. 泄漏积分器 \(\varepsilon=1\)、\(n(0)=1\)、\(p=0.5\),求解析解;再求 \(\varepsilon=4\)、\(n(0)=0\)、\(p=2\) 的解。(原书 E18.1) 答案要点:\(n(t)=0.5+0.5e^{-t}\);\(n(t)=2(1-e^{-t/4})\)。

  2. 分流模型 \(b^+=1\)、\(b^-=1\)、\(p^+=0\)、\(p^-=10\)、\(n(0)=0.5\)、\(\varepsilon=1\),求 \(n(t)\) 及稳态。(原书 P18.3) 答案要点:\(\dot n=-11n-10\),\(n(t)=0.5e^{-11t}-\frac{10}{11}(1-e^{-11t})\),稳态 \(-10/11\),不低于 \(-b^-=-1\)。

  3. 第 1 层两个神经元,\({}^+b^1=0.5\),输入 \([2;1]\) 与 \([20;10]\),用式 (18.13) 求稳态。(原书 E18.3) 答案要点:\([0.25;0.125]\) 与约 \([0.323;0.161]\),比例都是 2:1,总和分别为 0.375 与约 0.484,均小于 0.5。

  4. 用 P18.5 的方法,推导第 1 层总活动 \(N^1=\sum_in^1_i\) 满足的微分方程。(原书 E18.6) 提示:对式 (18.9) 求和,得 \(\varepsilon\dot N^1=-(1+P)N^1+{}^+b^1P\)。

进阶

  1. 第 2 层取 \(f^2(n)=cn^2\)。证明撤去输入后除初值最大者外,相对活动都衰减到零;并讨论 \(c\) 取何值时总活动有非零的稳定平衡点。(原书 E18.8) 提示:\(g^2(n)=cn\) 递增,代入相对活动方程;总活动方程在只剩一个神经元时为 \(\dot N=-N+(b-N)cN^2\)。

  2. 从相对活动方程出发,解释为什么慢于线性的传递函数会"放大噪声":一个初值很小的神经元为什么会被抬高到与其他神经元相近的水平? 提示:\(g\) 递减时,小 \(n\) 对应大 \(g\),其相对份额的导数为正。

  3. 把 18.4 节代码中的门控学习律 (18.26) 与不门控的 (18.24) 都实现出来,复现两模式交替的例子,比较权值曲线。(原书 E18.9、E18.10)

  4. 把第 1 层的稳态公式用在一组截面信号 \(p_i\ge0\) 上作为持仓权重,讨论 \({}^+b^1\) 和"1"这个常数项各自控制什么。若信号可以为负(做空),应如何修改? 提示:\({}^+b^1\) 是总仓位上限;常数 1 决定总信号多弱时仓位明显缩小;做空可把多空信号分别送入两组神经元。

原书推荐习题:P18.2 与 E18.1(离散化与指数加权平均);P18.3、E18.2(分流模型上下界与速度);P18.4、E18.3、E18.4(相对强度与总量饱和);P18.5、P18.6、E18.8(总活动与相对活动分析,本章最能体现数学方法的部分);E18.9、E18.10(门控与不门控学习律对比)。


原书对照

本章小节 原书内容 PDF 页码
18.1 Objectives、Theory and Examples、Biological Motivation: Vision(Illusions、Vision Normalization) p.707–715
18.2 Basic Nonlinear Model(泄漏积分器、分流模型) p.715–718
18.3.1 Two-Layer Competitive Network:Layer 1 p.718–722
18.3.2–18.3.3 Layer 2、Choice of Transfer Function p.723–728
18.3.4 Learning Law p.728–730
18.3.5 Relation to Kohonen Law p.730–731
小结 Summary of Results p.732–735
例题 Solved Problems P18.1–P18.7 p.736–747
延伸阅读 Epilogue、Further Reading(GrMi89、Gros76、Gros82、Hube88、vanT75、vond73) p.748–750
习题 Exercises E18.1–E18.10 p.751–754

原书演示程序(nnd15li、nnd15sn、nnd15gl1、nnd15gl2、nnd15aw 等)的编号沿用第一版章号,对应的都是本章内容。