第 07 章 有监督 Hebb 学习
对应原书第 7 章。Hebb 规则是最早的神经网络学习律之一,1949 年作为大脑突触修改的可能机制提出。本章用第 05 章的线性代数说明它为什么有效、何时失效,再引出它的改进版——伪逆规则。对量化读者来说,本章有一个特别重要的结论:Hebb 规则就是"用相关系数加权",伪逆规则就是最小二乘回归,两者的差别正是因子共线时"串扰"带来的偏差。
学习目标
读完本章,你应当能够:
- 复述 Hebb 假设,写出线性联想器和有监督 Hebb 规则 \(\mathbf{W}=\mathbf{T}\mathbf{P}^T\)。
- 证明输入原型标准正交时 Hebb 规则能精确回忆,并写出非正交时的串扰误差项。
- 写出伪逆规则 \(\mathbf{W}=\mathbf{T}\mathbf{P}^+\) 及 Moore–Penrose 伪逆的两种显式公式,正确区分 \(R>Q\) 与 \(R<Q\) 两种情形,并把后者对应到 OLS 回归。
- 用 Hebb 或伪逆规则设计自联想记忆和带偏置的感知机,掌握"增广 1 引入偏置"和二值/双极表示之间的换算。
- 说出 Hebb 规则的四种变体(学习率、衰减、delta 规则、无监督 Hebb),并把衰减规则对应到 EWMA 估计、把 delta 规则对应到在线回归。
- 分析正交原型下 Hebb 权值矩阵的特征结构。
读前导读
这一章在解决什么问题
结论先说:本章的两个学习规则,你在 CFA 里都见过,只是换了名字。设想用 \(R\) 个因子预测一只股票的收益,单个线性神经元 \(a=\mathbf{w}^T\mathbf{p}\) 就是一个无截距的多元回归。怎么定权值 \(\mathbf{w}\)?
- Hebb 规则的做法是"每个因子的权值 = 它与收益的协方差(交叉矩)",各因子各算各的,不管彼此是否相关。这就是"按 IC 加权":哪个因子和收益相关性高,就给哪个大权重。
- 伪逆规则的做法是"解一个最小二乘问题",在 \(R<Q\)(样本多于因子)时就是 OLS:\(\hat{\boldsymbol\beta}=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y}\)。
两者的差别是 \((\mathbf{X}^T\mathbf{X})^{-1}\) 这一项:它负责扣除因子之间的相关性。因子两两不相关、方差为 1 时,这一项是单位矩阵,两种方法一样;因子相关时,Hebb 规则会把有效因子的功劳"分"给与之相关的无效因子,这就是本章说的"串扰"。用回归的语言讲,这和"一元回归的斜率在遗漏相关变量时有偏"是同一个现象:IC 是一元的,回归系数是多元的。
本章还讲了 Hebb 规则的几个变体,它们都能在量化里找到对应:带衰减的 Hebb 规则就是 EWMA 协方差(RiskMetrics),delta 规则就是逐期更新的在线回归。
需要先想起来的数学
- 外积与"外积之和 = 矩阵乘积"。\(\sum_q\mathbf{t}_q\mathbf{p}_q^T=\mathbf{T}\mathbf{P}^T\),其中 \(\mathbf{T}\)、\(\mathbf{P}\) 的第 \(q\) 列分别是 \(\mathbf{t}_q\)、\(\mathbf{p}_q\)。在回归记号下就是 \(\mathbf{X}^T\mathbf{y}=\sum_q\mathbf{x}_qy_q\)。见 第 00 册第 06 章 线性代数速成。
- 标准正交。一组向量两两内积为 0、各自长度为 1。写成矩阵:\(\mathbf{P}^T\mathbf{P}=\mathbf{I}\)。例:\([0.5,-0.5,0.5,-0.5]^T\) 与 \([0.5,0.5,-0.5,-0.5]^T\) 内积 \(0.25-0.25-0.25+0.25=0\),各自长度平方 \(4\times0.25=1\)。
- 矩阵求逆与转置的规则。\((\mathbf{A}\mathbf{B})^T=\mathbf{B}^T\mathbf{A}^T\);对称矩阵 \(\mathbf{A}^T=\mathbf{A}\);\(\mathbf{P}^T\mathbf{P}\) 和 \(\mathbf{P}\mathbf{P}^T\) 永远对称。
- 多元函数求最小值:梯度为零。\(F(\mathbf{w})=\sum_q(t_q-\mathbf{w}^T\mathbf{p}_q)^2\) 对每个 \(w_j\) 求偏导令其为 0,就得到 OLS 的正规方程。偏导就是"其他变量不动、只对一个变量求导"。见 第 00 册第 05 章 多元微积分与优化。
- 几何级数与指数加权。\((1-\gamma)^k\) 随 \(k\) 指数衰减;半衰期 \(h\) 满足 \((1-\gamma)^h=0.5\)。见 第 00 册第 04 章 级数与收敛。
怎么读这一章
核心必读是 7.2 节(Hebb 规则 \(\mathbf{W}=\mathbf{T}\mathbf{P}^T\))、7.3 节(串扰公式 7.14)、7.4 节(伪逆规则,尤其 7.4.2 两种情形的区分)和 7.8.1 节(量化对应关系)。7.1 节历史可浏览。7.4.1 节 Moore–Penrose 的四个条件第一次只需知道"伪逆是逆矩阵的推广、pinv 能直接算"。7.5 节自联想记忆和 7.6 节偏置与二值表示属于应用,可以先看结论;7.5 节末尾的特征结构建议读,它连接了第 05 章。7.7 节变体请读,后面第 10、15 章都从这里出发。
7.1 Hebb 假设
Donald Hebb 原想当小说家,后来为理解人性转向心理学,研究过巴甫洛夫条件反射、早期经验对视觉的影响、脑手术患者的智力变化。1949 年他在《The Organization of Behavior》中提出:行为可以用神经元的活动来解释。这与当时主张"只研究刺激–反应、排斥生理假设"的行为主义针锋相对。书中最著名的一段话被称为 Hebb 假设(Hebb's postulate):
当细胞 A 的轴突足够接近并能激发细胞 B,且反复或持续地参与使 B 放电时,一个或两个细胞中会发生某种生长过程或代谢变化,使 A 作为激发 B 的细胞之一的效率提高。
它第一次为"细胞层面的学习"提供了一个物理机制,后来的研究也确实发现某些细胞表现出 Hebb 式学习。这个思想有先驱:William James 1890 年就提出过联想原理——两个脑过程同时或紧接着活跃,其中一个再次出现时,倾向于把兴奋传给另一个。
7.2 线性联想器与 Hebb 规则
7.2.1 线性联想器
为了专注于学习律本身,本章用最简单的结构:线性联想器(linear associator,Anderson 与 Kohonen 1972 年各自提出)。它是一个无偏置的线性层:
它是一种联想记忆(associative memory):学习 \(Q\) 对原型输入/输出 \(\{\mathbf{p}_1,\mathbf{t}_1\},\dots,\{\mathbf{p}_Q,\mathbf{t}_Q\}\)。输入 \(\mathbf{p}=\mathbf{p}_q\) 时应输出 \(\mathbf{t}_q\);输入略有偏差(\(\mathbf{p}_q+\boldsymbol\delta\))时,输出也只应略有偏差(\(\mathbf{t}_q+\boldsymbol\varepsilon\))。
7.2.2 Hebb 规则
把 Hebb 假设改述为:突触两侧的神经元同时激活时,突触强度增加。由式(7.2),连接输入 \(p_j\) 与输出 \(a_i\) 的突触就是 \(w_{ij}\)。一种数学表达是
权值变化与突触两侧活动的乘积成正比,\(\alpha>0\) 是学习率(learning rate)。本章取最简单的形式
它比 Hebb 的原意走得更远:两侧同为负时权值也增加,异号时权值减小。
式(7.5)用的是实际输出,不需要目标,是无监督规则。本章关注有监督 Hebb 规则:把实际输出换成目标输出——告诉算法网络"应该做什么",而不是"正在做什么"——并取 \(\alpha=1\):
权值从零开始、每对样本用一次,得到
其中 \(\mathbf{T}=[\mathbf{t}_1\ \cdots\ \mathbf{t}_Q]\)(\(S\times Q\)),\(\mathbf{P}=[\mathbf{p}_1\ \cdots\ \mathbf{p}_Q]\)(\(R\times Q\))。这就是外积规则(outer product rule),也叫相关矩阵记忆。注意它和第 04 章感知机规则 \(\mathbf{W}^{new}=\mathbf{W}^{old}+\mathbf{e}\mathbf{p}^T\) 的形式几乎一样,区别是这里乘的是目标 \(\mathbf{t}\),而不是误差 \(\mathbf{e}\)。
推导拆解:式 (7.9) 的第二个等号是"按块相乘"。把 \(\mathbf{T}\) 看成一行 \(Q\) 个列块 \([\mathbf{t}_1\cdots\mathbf{t}_Q]\),把 \(\mathbf{P}^T\) 看成一列 \(Q\) 个行块 \(\mathbf{p}_1^T,\dots,\mathbf{p}_Q^T\),按"行乘列"的规则,结果是对应块相乘再加总:\(\mathbf{t}_1\mathbf{p}_1^T+\cdots+\mathbf{t}_Q\mathbf{p}_Q^T\)。逐元素看,\(\mathbf{W}\) 的第 \((i,j)\) 元是 \(\sum_qt_{iq}p_{jq}\),即"第 \(i\) 个目标与第 \(j\) 个输入在所有样本上的乘积之和"。若输入、目标都已去均值,除以 \(Q\) 就是样本协方差。所以 Hebb 权值矩阵就是"目标–输入的交叉协方差矩阵"(差一个常数倍)。
7.3 性能分析:正交与串扰
7.3.1 标准正交原型:精确回忆
输入 \(\mathbf{p}_k\):
若原型标准正交(orthonormal),\(\mathbf{p}_q^T\mathbf{p}_k\) 在 \(q=k\) 时为 1、否则为 0,于是 \(\mathbf{a}=\mathbf{t}_k\)。输入原型标准正交时,Hebb 规则对每个原型都给出正确输出。
7.3.2 非正交原型:串扰误差
原型只是单位长度、但不正交时:
误差的大小取决于原型之间的相关程度(内积)。这个误差项通常叫串扰(crosstalk):其他记忆"漏"进了当前回忆。
推导拆解:式 (7.11)、(7.14) 只用了一个技巧——矩阵乘法的结合律。\((\mathbf{t}_q\mathbf{p}_q^T)\mathbf{p}_k=\mathbf{t}_q(\mathbf{p}_q^T\mathbf{p}_k)\),括号里是一个数(内积),所以每一项都是"目标向量 \(\mathbf{t}_q\) 乘以一个相似度系数"。输出因此是所有目标的加权和,权重是"当前输入与各原型的相似度"。正交时只有自己那一项的权重非零(且为 1),就精确回忆;不正交时,相似的原型也分到权重,它们的目标就"漏"了进来。
金融直觉:把它类比为"按与历史情景的相似度加权预测"。分析师说"今天的市场像 2008 年,也有点像 2020 年",于是把两段历史的后续走势按相似度加权当作预测。如果各历史情景本身彼此相似(不正交),同一个信息会被重复计入,预测就偏了。伪逆规则的作用就是先把历史情景之间的重叠扣掉。
例(正交情形,原书 7.15–7.18)
两者标准正交。
\(\mathbf{W}\mathbf{p}_1=[1,-1]^T\),\(\mathbf{W}\mathbf{p}_2=[1,1]^T\),完全正确。
例(苹果/橙子,原书 7.19–7.23) 原型 \([1,-1,-1]^T\) 与 \([1,1,-1]^T\) 不正交(内积为 1)。先归一化,目标取 −1(橙子)和 1(苹果):
接近但不等于目标。误差来自归一化原型的内积 \(1/3\):\(\mathbf{W}\mathbf{p}_1=t_1+t_2\cdot\frac13=-1+\frac13=-\frac23\),与式(7.14)一致。
7.4 伪逆规则
7.4.1 把"记住"写成最小化问题
我们真正想要的是 \(\mathbf{W}\mathbf{p}_q=\mathbf{t}_q\),\(q=1,\dots,Q\)。不能精确满足时,就让它尽量满足:最小化
这里矩阵范数是所有元素平方和(Frobenius 范数)。原型标准正交时 Hebb 规则使 \(F=0\);不正交时 Hebb 规则的 \(F>0\),而且一般不是最小值。
若 \(\mathbf{P}\) 是可逆方阵,\(\mathbf{W}=\mathbf{T}\mathbf{P}^{-1}\) 使 \(F=0\)。但这很少见:\(\mathbf{P}\) 是 \(R\times Q\),通常不是方阵。Albert(1972)证明,使 \(F\) 最小的权值由伪逆规则给出:
\(\mathbf{P}^+\) 是 Moore–Penrose 伪逆,即同时满足以下四条的唯一矩阵:
(四条依次是:广义逆、自反、\(\mathbf{P}^+\mathbf{P}\) 对称、\(\mathbf{P}\mathbf{P}^+\) 对称。)
白话解释:普通的逆矩阵只对可逆方阵存在。伪逆是它的推广:对任何形状的矩阵都存在且唯一,矩阵可逆时就等于普通的逆。四个条件不必背,它们共同刻画了"\(\mathbf{P}\mathbf{P}^+\) 和 \(\mathbf{P}^+\mathbf{P}\) 是两个正交投影"——前者把向量投影到 \(\mathbf{P}\) 的列空间,后者投影到 \(\mathbf{P}\) 的行空间。回到回归:\(\mathbf{X}\mathbf{X}^+=\mathbf{X}(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\) 正是回归里的"帽子矩阵" \(\mathbf{H}\),它把 \(\mathbf{y}\) 映射成拟合值 \(\hat{\mathbf{y}}\)。实际计算一律用
np.linalg.pinv(基于奇异值分解),它在因子完全共线、\(\mathbf{X}^T\mathbf{X}\) 不可逆时也能给出答案。
7.4.2 两种显式公式,以及它们分别对应什么
伪逆有两种常用的显式公式,适用的情形不同,务必分清:
情形一:\(R>Q\)(输入维数多于样本数),\(\mathbf{P}\) 列满秩。这是原书本章的主要情形——少量原型、每个原型维数很高。
此时 \(\mathbf{P}^+\mathbf{P}=\mathbf{I}\),\(\mathbf{W}\mathbf{P}=\mathbf{T}\) 精确成立,\(F=0\)。方程 \(\mathbf{W}\mathbf{P}=\mathbf{T}\) 的未知数多于方程,有无穷多个精确解,\(\mathbf{T}\mathbf{P}^+\) 是其中 Frobenius 范数最小的那个(最小范数解)。
情形二:\(R<Q\)(样本数多于输入维数),\(\mathbf{P}\) 行满秩(原书 E7.7)。
此时一般不能精确满足,\(\mathbf{W}=\mathbf{T}\mathbf{P}^T(\mathbf{P}\mathbf{P}^T)^{-1}\) 是最小二乘解。换成回归记号:令 \(\mathbf{X}=\mathbf{P}^T\)(\(Q\times R\),每行一个样本),\(\mathbf{y}=\mathbf{T}^T\),则
正是 OLS 的正规方程解。量化里"样本(股票×期数)多、因子少"的标准回归属于这一情形。
推导拆解:情形二的公式从哪来?取单个输出神经元(\(S=1\)),权值行向量 \(\mathbf{w}^T\),\(F(\mathbf{w})=\sum_q(t_q-\mathbf{w}^T\mathbf{p}_q)^2\)。对 \(\mathbf{w}\) 的每个分量求偏导并令其为 0(这里用了链式法则:外层平方求导得 \(2(\cdot)\),内层对 \(w_j\) 求导得 \(-p_{jq}\)),得 \(\sum_q(t_q-\mathbf{w}^T\mathbf{p}_q)p_{jq}=0\),\(j=1,\dots,R\)。写成矩阵:\(\mathbf{T}\mathbf{P}^T=\mathbf{w}^T\mathbf{P}\mathbf{P}^T\),即"残差与每个输入正交"(第 05 章投影的最优性)。\(\mathbf{P}\mathbf{P}^T\) 是 \(R\times R\),行满秩时可逆,右乘它的逆就得到 \(\mathbf{w}^T=\mathbf{T}\mathbf{P}^T(\mathbf{P}\mathbf{P}^T)^{-1}\)。对照 Hebb 的 \(\mathbf{T}\mathbf{P}^T\),伪逆只多了一个"\(\times(\mathbf{P}\mathbf{P}^T)^{-1}\)"——这就是扣除因子间相关性的那一步。
情形一为什么叫"最小范数解"?\(R>Q\) 时方程比未知数少,好比用 10 个因子去精确拟合 3 只股票,能完全拟合的系数有无穷多组。伪逆从中挑出系数平方和最小的那一组,相当于"在完全拟合的前提下,系数尽量小",这和岭回归惩罚大系数的思路相通,可以减轻对噪声的过度拟合。
更正说明:精读笔记的量化注释把两种情形写反了,称"\(R>Q\)(特征多于样本)时用 \(\mathbf{P}^T(\mathbf{P}\mathbf{P}^T)^{-1}\) 给出最小范数解",并把 \((\mathbf{P}^T\mathbf{P})^{-1}\mathbf{P}^T\) 直接等同于正规方程。按原书记号(\(\mathbf{P}\) 的列是样本),正确的对应是:\(R>Q\) 用 \((\mathbf{P}^T\mathbf{P})^{-1}\mathbf{P}^T\),得到精确拟合的最小范数解;\(R<Q\) 用 \(\mathbf{P}^T(\mathbf{P}\mathbf{P}^T)^{-1}\),得到最小二乘解,才与 OLS 正规方程同构。数值计算中不必区分,直接用基于 SVD 的
np.linalg.pinv,它对秩亏的情形也成立。
7.4.3 例:苹果/橙子
伪逆规则不需要把输入归一化。\(\mathbf{p}_1=[1,-1,-1]^T\),\(t_1=-1\);\(\mathbf{p}_2=[1,1,-1]^T\),\(t_2=1\)。\(R=3>Q=2\),用式(7.34):
\(\mathbf{W}\mathbf{p}_1=-1\),\(\mathbf{W}\mathbf{p}_2=1\),精确匹配目标,而 Hebb 规则只能给出 ±0.6668。巧合的是,这正是第 03 章画图设计出的感知机权值。
7.4.4 例:正交但未归一化(原书 P7.1)
\(\mathbf{p}_1=[1,-1,1,-1]^T\),\(\mathbf{t}_1=[1,-1]^T\);\(\mathbf{p}_2=[1,1,-1,-1]^T\),\(\mathbf{t}_2=[1,1]^T\)。
- Hebb:\(\mathbf{W}^h=\mathbf{T}\mathbf{P}^T=\begin{bmatrix}2&0&0&-2\\0&2&-2&0\end{bmatrix}\),\(\mathbf{W}^h\mathbf{p}_1=[4,-4]^T\ne\mathbf{t}_1\)。
- 伪逆:\(\mathbf{P}^T\mathbf{P}=4\mathbf{I}\),\(\mathbf{P}^+=\frac14\mathbf{P}^T\),\(\mathbf{W}^p=\begin{bmatrix}1/2&0&0&-1/2\\0&1/2&-1/2&0\end{bmatrix}\),\(\mathbf{W}^p\mathbf{p}_1=\mathbf{t}_1\)。
原因:原型正交但长度为 2,Hebb 输出是 \(\mathbf{t}_1(\mathbf{p}_1^T\mathbf{p}_1)=4\mathbf{t}_1\)。伪逆规则相当于自动做了"除以 \(\mathbf{P}^T\mathbf{P}\)"的校正。这个例子清楚地显示了两者的关系:当 \(\mathbf{P}^T\mathbf{P}=\mathbf{I}\) 时 \(\mathbf{P}^+=\mathbf{P}^T\),伪逆规则退化为 Hebb 规则;伪逆规则就是"去掉原型之间相关性(和长度)影响之后"的 Hebb 规则。
7.5 应用:自联想记忆
自联想记忆(autoassociative memory)的目标输出等于输入,\(\mathbf{t}_q=\mathbf{p}_q\),用来存储模式并在输入受损时把它回忆出来。
原书存储数字 0、1、2,每个是 \(6\times5\) 的像素网格(30 像素),白格 −1、黑格 1,按列扫描成 30 维向量。Hebb 规则给出
元素只取 ±1,所以把线性传递函数换成对称硬限幅:\(\mathbf{a}=\mathrm{hardlims}(\mathbf{W}\mathbf{p})\)。原书的测试结果:
- 下半部 50% 被遮挡(置白):三个数字都正确恢复;
- 下部 2/3 被遮挡:只有"1"正确恢复,另两个输出不对应任何原型——这叫伪模式(spurious patterns),是联想记忆的常见问题;
- 每个数字随机翻转 7 个像素:全部正确恢复。
(原书此处说伪模式问题"将在第 18 章循环联想记忆中再谈",按第二版目录,Hopfield 网络的设计在原书第 21 章,即本册第 19 章。)
为什么非线性很重要(原书 P7.2)。两个 6 像素原型 \(\mathbf{p}_1=[1,1,-1,1,-1,-1]^T\)、\(\mathbf{p}_2=[-1,1,1,1,1,-1]^T\) 正交但未归一化(长度平方 6)。测试 \(\mathbf{p}_t=[1,1,1,1,1,-1]^T\):
正确(\(\mathbf{p}_t\) 与 \(\mathbf{p}_2\) 的 Hamming 距离为 1,与 \(\mathbf{p}_1\) 为 2)。P7.1 里困扰线性联想器的"长度没归一化"问题在这里消失了,因为 hardlims 把输出强制到 ±1。原书由此总结:神经网络大多数有趣、有用的性质来自非线性。
原型不正交时(原书 P7.3)。三个 7 维原型不正交,测试向量与 \(\mathbf{p}_3\) 的距离为 1、与另两个为 2。Hebb 自联想器给出一个不是任何原型的输出;伪逆自联想器正确回忆出 \(\mathbf{p}_3\)。
正交原型下 Hebb 矩阵的特征结构(原书 P7.5)。设 \(Q\) 个长度为 \(R\)、元素为 ±1 的正交原型,\(\mathbf{W}=\mathbf{P}\mathbf{P}^T\):
- \(\mathbf{W}\mathbf{p}_k=\sum_q\mathbf{p}_q(\mathbf{p}_q^T\mathbf{p}_k)=R\,\mathbf{p}_k\),每个原型都是特征向量,特征值为 \(R\);原型张成的 \(Q\) 维子空间是特征值 \(R\) 的特征空间。
- 与原型正交的 \((R-Q)\) 维子空间中任一向量 \(\mathbf{z}\):\(\mathbf{W}\mathbf{z}=\mathbf{0}\),特征值为 0。
推导拆解:第二条的理由:若 \(\mathbf{z}\) 与每个原型都正交,则 \(\mathbf{W}\mathbf{z}=\sum_q\mathbf{p}_q(\mathbf{p}_q^T\mathbf{z})=\sum_q\mathbf{p}_q\cdot0=\mathbf{0}\)。第一条中 \(\mathbf{p}_k^T\mathbf{p}_k=R\) 是因为 \(R\) 个元素都是 \(\pm1\),平方后都是 1。任一输入都能拆成"原型子空间里的部分"加"与之正交的部分",\(\mathbf{W}\) 对前者乘 \(R\)、对后者乘 0。这就是第 05 章 \(\mathbf{W}^t\mathbf{a}(0)=\sum c_i\lambda_i^t\mathbf{z}_i\) 只算一步(\(t=1\))的情形。类比 PCA 降噪:只保留前几个主成分方向上的分量,其余方向当噪声丢掉。
所以 Hebb 自联想器做的事是:把输入投影到原型子空间并放大 \(R\) 倍,正交于原型的分量(噪声)全部丢掉。这正是第 05 章"特征值决定迭代命运"在联想记忆中的体现,第 19 章(原书第 21 章)设计 Hopfield 网络时还会用到。
7.6 偏置与二值表示
7.6.1 用增广输入引入偏置(原书 P7.6)
感知机要分开 \(\mathbf{p}_1=[1,1]^T\)(\(t_1=1\))与 \(\mathbf{p}_2=[2,2]^T\)(\(t_2=-1\))。
- 为什么必须有偏置:无偏置时边界 \(\mathbf{W}\mathbf{p}=0\) 过原点,而两点在过原点的同一条射线上,任何过原点的直线都分不开它们。
- 做法:把偏置看成输入恒为 1 的权值,增广 \(\mathbf{p}'_1=[1,1,1]^T\),\(\mathbf{p}'_2=[2,2,1]^T\),
即 \(\mathbf{W}=[-1\ -1]\),\(b=3\),边界 \(p_1+p_2=3\) 正好分开两点。这和回归中"加一列 1 作为截距"是同一件事。
7.6.2 二值与双极表示(原书 P7.7)
若用 \(\{0,1\}\) 的二值(binary)表示代替 \(\{-1,1\}\) 的双极(bipolar)表示,Hebb 规则怎样修改?两者关系为 \(\mathbf{p}'=\frac12\mathbf{p}+\frac12\mathbf{1}\)。二值网络用 hardlim,并且需要偏置——二值向量都落在第一象限,过原点的边界不一定能分开它们。要求两种网络的净输入相同:\(\mathbf{W}'\mathbf{p}'+\mathbf{b}=\mathbf{W}\mathbf{p}\),代入得 \(\frac12\mathbf{W}'\mathbf{p}+\frac12\mathbf{W}'\mathbf{1}+\mathbf{b}=\mathbf{W}\mathbf{p}\),所以
其中 \(\mathbf{W}\) 是双极表示下的 Hebb 权值矩阵。量化里把哑变量(0/1)换成 ±1 编码、或反过来,模型的截距和斜率按同样的规律变化。
7.7 Hebb 学习的变体
原型很多时,基本规则 \(\mathbf{W}^{new}=\mathbf{W}^{old}+\mathbf{t}_q\mathbf{p}_q^T\) 的权值会越来越大。后文很多学习律都可以看成它的变体:
-
加学习率 \(\alpha<1\):\(\mathbf{W}^{new}=\mathbf{W}^{old}+\alpha\mathbf{t}_q\mathbf{p}_q^T\),限制增长速度。
-
加衰减项(decay):
\[\mathbf{W}^{new}=\mathbf{W}^{old}+\alpha\mathbf{t}_q\mathbf{p}_q^T-\gamma\mathbf{W}^{old}=(1-\gamma)\mathbf{W}^{old}+\alpha\mathbf{t}_q\mathbf{p}_q^T,\qquad 0<\gamma<1.\tag{7.45}\]它像一个平滑滤波器,更清楚地记住最近的输入。\(\gamma\to0\) 退化为标准规则;\(\gamma\to1\) 迅速遗忘、只记住最近的模式。衰减项还防止了权值无界增长。展开递推可见 \(\mathbf{W}\) 是历史外积的指数加权和,权重按 \((1-\gamma)^k\) 衰减。推导拆解:从 \(\mathbf{W}_0=\mathbf{0}\) 出发逐步代入。\(\mathbf{W}_1=\alpha\mathbf{t}_1\mathbf{p}_1^T\);\(\mathbf{W}_2=(1-\gamma)\alpha\mathbf{t}_1\mathbf{p}_1^T+\alpha\mathbf{t}_2\mathbf{p}_2^T\);\(\mathbf{W}_3=(1-\gamma)^2\alpha\mathbf{t}_1\mathbf{p}_1^T+(1-\gamma)\alpha\mathbf{t}_2\mathbf{p}_2^T+\alpha\mathbf{t}_3\mathbf{p}_3^T\)。规律是:\(k\) 期前的样本被乘了 \(k\) 次 \((1-\gamma)\)。若一直输入同一个外积 \(\mathbf{M}\),\(\mathbf{W}_t\) 趋于 \(\alpha\mathbf{M}\sum_{k\ge0}(1-\gamma)^k=\frac{\alpha}{\gamma}\mathbf{M}\)(几何级数求和),所以不会无界增长;取 \(\alpha=\gamma\) 时恰好收敛到 \(\mathbf{M}\) 本身,各权重之和为 1,这就是 EWMA。这和 RiskMetrics 的 \(\sigma_t^2=\lambda\sigma_{t-1}^2+(1-\lambda)r_t^2\) 完全同构,\(\lambda=1-\gamma\)。
-
delta 规则:把目标换成"目标与实际输出之差":
\[\mathbf{W}^{new}=\mathbf{W}^{old}+\alpha(\mathbf{t}_q-\mathbf{a}_q)\mathbf{p}_q^T .\tag{7.46}\]它也叫 Widrow–Hoff 算法,调整权值以最小化均方误差(第 10 章),因此与最小化误差平方和的伪逆规则殊途同归。它的优点是每来一个新样本就能更新,而伪逆规则要等全部样本到齐才能一次算出;顺序更新使 delta 规则能适应变化的环境。白话解释:Hebb 与 delta 只差"\(\mathbf{t}\) 换成 \(\mathbf{t}-\mathbf{a}\)",含义却完全不同。Hebb 是"不管预测得怎样,每来一个样本都按目标加一点",所以权值会一直累加;delta 是"只按预测误差修正",预测对了(\(\mathbf{t}=\mathbf{a}\))就不动,类似分析师只在业绩超预期或低于预期时才调整盈利预测。单样本误差平方 \(\frac12(t-\mathbf{w}^T\mathbf{p})^2\) 对 \(\mathbf{w}\) 的梯度是 \(-(t-a)\mathbf{p}\),所以 delta 规则就是"沿负梯度走一小步",这是第 09、10 章的主线。因子相关时,delta 规则会自动把多算的部分减回来,最终收敛到回归解而不是 IC 加权解。
-
无监督 Hebb 规则:用实际输出代替目标,
\[\mathbf{W}^{new}=\mathbf{W}^{old}+\alpha\,\mathbf{a}_q\mathbf{p}_q^T .\tag{7.47}\]它比本章的有监督形式更直接地体现了 Hebb 假设。原书此处写"见第 13 章",按本版目录应为第 15 章(联想学习)。
滤波式的权值更新和可调学习率的思想会在第 10、12、15、16、18、19 章反复出现。
7.8 量化实战:Hebb 是 IC 加权,伪逆是回归
7.8.1 三组对应关系
伪逆规则 = OLS。截面因子收益回归、多因子模型中估计因子收益、Fama–MacBeth 每期回归,都是 \(\mathbf{W}=\mathbf{T}\mathbf{P}^+\),其中 \(\mathbf{P}\) 的列是样本(股票)、行是因子,属于 \(R<Q\) 的情形。P7.6 的增广 1 就是回归里的截距列。
Hebb 规则 = 交叉矩 / 相关系数加权。\(\mathbf{T}\mathbf{P}^T/Q\) 是输出与输入的样本交叉矩;因子标准化后,它与"每个因子与收益的相关系数"(IC)成正比。所以"按各因子 IC 加权合成"本质上是 Hebb 规则。它只在 \(\mathbf{P}\mathbf{P}^T/Q=\mathbf{I}\)(因子两两不相关、方差为 1)时与回归一致;因子相关时,式(7.14)的串扰项让一个本身无效、但与有效因子相关的因子也拿到权重。这就是为什么因子合成前要正交化(第 05 章),或者干脆用回归。
一个容易混淆的地方:联想记忆里 Hebb 规则精确的条件是原型(\(\mathbf{P}\) 的列)标准正交,\(\mathbf{P}^T\mathbf{P}=\mathbf{I}\);回归里 Hebb 等于 OLS 的条件是因子(\(\mathbf{P}\) 的行)标准正交,\(\mathbf{P}\mathbf{P}^T=\mathbf{I}\)。前者对应 \(R>Q\),后者对应 \(R<Q\),正好是伪逆的两种显式公式。
衰减 Hebb 规则 = EWMA;delta 规则 = 在线回归。\((1-\gamma)\mathbf{W}^{old}+\alpha\mathbf{t}\mathbf{p}^T\) 在 \(\alpha=\gamma\) 时就是指数加权移动平均的递推。自联想形式 \(\mathbf{W}\leftarrow(1-\gamma)\mathbf{W}+\gamma\mathbf{p}\mathbf{p}^T\) 正是 RiskMetrics 的 EWMA 协方差(日频常取 \(1-\gamma=0.94\))。\(\gamma\) 越大,对新信息反应越快,但估计噪声越大。delta 规则则是逐期更新的在线回归,能跟踪随时间变化的因子暴露。
7.8.2 代码
import numpy as np
np.set_printoptions(precision=4, suppress=True)
hardlims = lambda n: np.where(n >= 0, 1.0, -1.0)
# ---------- 原书 7.4–7.5 节 ----------
P = np.array([[0.5, 0.5], [-0.5, 0.5], [0.5, -0.5], [-0.5, -0.5]]); T = np.array([[1, 1], [-1, 1]])
W = T @ P.T
print("(7.16) W =\n", W, "\n W P =\n", W @ P)
P = np.array([[1, 1], [-1, 1], [-1, -1]], float); T = np.array([[-1, 1]], float)
Pn = P / np.linalg.norm(P, axis=0)
Wh = T @ Pn.T
print("(7.21) Hebb W =", Wh, " W p =", Wh @ Pn)
Wp = T @ np.linalg.pinv(P)
print("(7.38) pinv W =", Wp, " W p =", Wp @ P)
# ---------- 自联想记忆:6x5 数字(图案为本书自绘,仿照原书 7.6 节) ----------
digits = {
"0": [".XXX.", "X...X", "X...X", "X...X", "X...X", ".XXX."],
"1": [".XX..", "..X..", "..X..", "..X..", "..X..", ".XXX."],
"2": ["XXXX.", "....X", "..XX.", ".X...", "X....", "XXXXX"]}
to_vec = lambda rows: np.array([[1.0 if c == "X" else -1.0 for c in r] for r in rows]).T.ravel() # 按列扫描
Pd = np.column_stack([to_vec(v) for v in digits.values()]) # 30 x 3
print("prototype inner products:\n", Pd.T @ Pd)
W_hebb = Pd @ Pd.T
W_pinv = Pd @ np.linalg.pinv(Pd) # T = P 的伪逆规则
def recall(W, p):
return hardlims(W @ p)
def occlude(p, keep_rows):
img = p.reshape(5, 6).T.copy(); img[keep_rows:, :] = -1.0; return img.T.ravel()
rng = np.random.default_rng(3)
for name, W in [("Hebb", W_hebb), ("pinv", W_pinv)]:
res = []
for k in range(3):
p = Pd[:, k]
ok50 = np.array_equal(recall(W, occlude(p, 3)), p)
ok67 = np.array_equal(recall(W, occlude(p, 2)), p)
noisy_ok = 0
for _ in range(100):
q = p.copy(); idx = rng.choice(30, 7, replace=False); q[idx] *= -1
noisy_ok += np.array_equal(recall(W, q), p)
res.append((ok50, ok67, noisy_ok))
print(name, "(50%遮挡, 67%遮挡, 7像素噪声100次成功数):", res)
# ========== 量化 1:Hebb = 交叉矩(IC 加权),伪逆 = OLS ==========
Q, R = 2000, 3
C = np.array([[1, .7, 0], [.7, 1, 0], [0, 0, 1]])
X = rng.multivariate_normal(np.zeros(R), C, size=Q) # 行=股票(回归记号)
beta = np.array([1.0, 0.0, 0.5])
y = X @ beta + rng.standard_normal(Q) * 2.0
P, T = X.T, y[None, :] # 原书记号:P 为 R x Q
w_hebb = (T @ P.T / Q).ravel() # = 样本交叉矩 X^T y / Q
w_pinv = (T @ np.linalg.pinv(P)).ravel() # R<Q:P^+ = P^T (P P^T)^{-1}
w_ols = np.linalg.lstsq(X, y, rcond=None)[0]
print("true beta:", beta, "\nHebb w :", w_hebb, "\npinv w :", w_pinv, "\nOLS w :", w_ols)
Xo = rng.multivariate_normal(np.zeros(R), C, size=Q); yo = Xo @ beta + rng.standard_normal(Q) * 2.0
for nm, w in [("Hebb", w_hebb), ("pinv", w_pinv)]:
print("out-of-sample corr(pred, y) %s: %.4f" % (nm, np.corrcoef(Xo @ w, yo)[0, 1]))
# ========== 量化 2:带衰减的 Hebb 规则 = EWMA;delta 规则 = 在线回归 ==========
n = 1000
f = rng.standard_normal(n)
beta_t = np.where(np.arange(n) < 500, 1.0, -0.5) # 第 500 期结构突变
r = beta_t * f + rng.standard_normal(n) * 0.5
gamma = alpha = 0.03
S_ff = S_rf = 0.0; w_delta = 0.0; lr = 0.03
path = []
for t in range(n):
S_ff = (1 - gamma) * S_ff + alpha * f[t] * f[t] # 衰减 Hebb(自联想):EWMA 方差
S_rf = (1 - gamma) * S_rf + alpha * r[t] * f[t] # 衰减 Hebb(有监督):EWMA 协方差
e = r[t] - w_delta * f[t]
w_delta += lr * e * f[t] # delta / Widrow-Hoff 规则
path.append((S_rf / S_ff, w_delta))
path = np.array(path)
full = np.linalg.lstsq(f[:, None], r, rcond=None)[0][0]
for t in [450, 520, 560, 650, 999]:
print(f"t={t}: true={beta_t[t]:+.2f} EWMA-Hebb ratio={path[t,0]:+.3f} delta rule={path[t,1]:+.3f} full-sample OLS={full:+.3f}")
运行输出:
(7.16) W =
[[ 1. 0. 0. -1.]
[ 0. 1. -1. 0.]]
W P =
[[ 1. 1.]
[-1. 1.]]
(7.21) Hebb W = [[0. 1.1547 0. ]] W p = [[-0.6667 0.6667]]
(7.38) pinv W = [[ 0. 1. -0.]] W p = [[-1. 1.]]
prototype inner products:
[[30. 4. 6.]
[ 4. 30. 8.]
[ 6. 8. 30.]]
Hebb (50%遮挡, 67%遮挡, 7像素噪声100次成功数): [(True, False, 91), (True, True, 82), (True, False, 87)]
pinv (50%遮挡, 67%遮挡, 7像素噪声100次成功数): [(True, False, 92), (True, True, 96), (True, False, 98)]
true beta: [1. 0. 0.5]
Hebb w : [0.9339 0.5995 0.5177]
pinv w : [ 0.9696 -0.0868 0.5497]
OLS w : [ 0.9696 -0.0868 0.5497]
out-of-sample corr(pred, y) Hebb: 0.4550
out-of-sample corr(pred, y) pinv: 0.4740
t=450: true=+1.00 EWMA-Hebb ratio=+0.964 delta rule=+0.976 full-sample OLS=+0.296
t=520: true=-0.50 EWMA-Hebb ratio=+0.211 delta rule=+0.179 full-sample OLS=+0.296
t=560: true=-0.50 EWMA-Hebb ratio=-0.119 delta rule=-0.115 full-sample OLS=+0.296
t=650: true=-0.50 EWMA-Hebb ratio=-0.496 delta rule=-0.486 full-sample OLS=+0.296
t=999: true=-0.50 EWMA-Hebb ratio=-0.503 delta rule=-0.508 full-sample OLS=+0.296
解读:
- 原书数字全部复现:(7.16)的精确回忆,(7.21)Hebb 的 ±0.6667,(7.38)伪逆的精确匹配。
- 数字自联想(图案为本书自绘,与原书图案不同):50% 遮挡三个数字都能恢复;67% 遮挡只有"1"能恢复——与原书的定性结论一致。随机翻转 7 个像素时,Hebb 的成功率为 82%–91%,伪逆为 92%–98%。三个原型的内积为 4、6、8(不正交),Hebb 受串扰影响,伪逆去掉了相关性的影响,所以更稳。
- 因子合成:真实模型中第二个因子无效(\(\beta_2=0\)),但它与第一个因子相关 0.7。Hebb(交叉矩/IC 加权)给了它约 0.60 的权重,几乎等于 \(0.7\times\beta_1\)——这就是串扰项;伪逆与 OLS 结果完全相同,第二个因子的权重接近 0。样本外,伪逆预测与真实收益的相关系数更高(0.474 对 0.455)。
- 结构突变:前 500 期暴露为 +1,之后为 −0.5。全样本 OLS 给出一个两段混合的 +0.296,哪个时期都不对;衰减 Hebb(EWMA 协方差/EWMA 方差)和 delta 规则在突变后约 150 期内跟上了新值(\(\gamma=0.03\) 对应半衰期约 23 期,完全"忘掉"旧状态需要几个半衰期)。\(\gamma\) 和学习率的选择是"反应速度"与"估计噪声"的权衡,与第 06 册第 07a 章 RiskMetrics(EWMA 波动率)的衰减因子选择是同一个问题。
本章小结
有监督 Hebb 规则 \(\mathbf{W}=\mathbf{T}\mathbf{P}^T=\sum\mathbf{t}_q\mathbf{p}_q^T\) 把每对样本的外积累加起来。原型标准正交时它精确回忆,否则产生与原型间内积成正比的串扰误差。伪逆规则 \(\mathbf{W}=\mathbf{T}\mathbf{P}^+\) 最小化 \(\sum\|\mathbf{t}_q-\mathbf{W}\mathbf{p}_q\|^2\),不需要归一化:\(R>Q\) 时用 \((\mathbf{P}^T\mathbf{P})^{-1}\mathbf{P}^T\),精确拟合且范数最小;\(R<Q\) 时用 \(\mathbf{P}^T(\mathbf{P}\mathbf{P}^T)^{-1}\),给出最小二乘解,即 OLS。\(\mathbf{P}^T\mathbf{P}=\mathbf{I}\) 时伪逆规则退化为 Hebb 规则。自联想记忆配合 hardlims 能从遮挡和噪声中恢复模式,但会出现伪模式;正交原型下 Hebb 矩阵在原型子空间的特征值为 \(R\)、正交补上为 0。偏置可以通过增广输入纳入,二值与双极表示可以互换。Hebb 规则的变体——学习率、衰减、delta 规则、无监督 Hebb——分别对应量化中的步长控制、EWMA 估计、在线回归和无监督学习。
| 概念 | 公式 / 要点 |
|---|---|
| 线性联想器 | \(\mathbf{a}=\mathbf{W}\mathbf{p}\) |
| 有监督 Hebb 规则 | \(\mathbf{W}^{new}=\mathbf{W}^{old}+\mathbf{t}_q\mathbf{p}_q^T\),\(\mathbf{W}=\mathbf{T}\mathbf{P}^T\) |
| 串扰 | \(\mathbf{W}\mathbf{p}_k=\mathbf{t}_k+\sum_{q\ne k}\mathbf{t}_q(\mathbf{p}_q^T\mathbf{p}_k)\) |
| 伪逆规则 | \(\mathbf{W}=\mathbf{T}\mathbf{P}^+\),最小化 \(|\mathbf{T}-\mathbf{W}\mathbf{P}|^2\) |
| \(R>Q\),列满秩 | \(\mathbf{P}^+=(\mathbf{P}^T\mathbf{P})^{-1}\mathbf{P}^T\),精确拟合、最小范数 |
| \(R<Q\),行满秩 | \(\mathbf{P}^+=\mathbf{P}^T(\mathbf{P}\mathbf{P}^T)^{-1}\),最小二乘,等价 OLS |
| 自联想 Hebb 特征结构 | 原型方向特征值 \(R\),正交补方向特征值 0 |
| 二值/双极换算 | \(\mathbf{W}'=2\mathbf{W}\),\(\mathbf{b}=-\mathbf{W}\mathbf{1}\) |
| 衰减规则 | \(\mathbf{W}^{new}=(1-\gamma)\mathbf{W}^{old}+\alpha\mathbf{t}_q\mathbf{p}_q^T\)(EWMA) |
| delta 规则 | \(\mathbf{W}^{new}=\mathbf{W}^{old}+\alpha(\mathbf{t}_q-\mathbf{a}_q)\mathbf{p}_q^T\) |
| 无监督 Hebb | \(\mathbf{W}^{new}=\mathbf{W}^{old}+\alpha\mathbf{a}_q\mathbf{p}_q^T\) |
练习
基础
- 用 Hebb 规则和伪逆规则分别为原书 P7.1 设计线性联想器,验证 \(\mathbf{W}^h\mathbf{p}_1=4\mathbf{t}_1\)、\(\mathbf{W}^p\mathbf{p}_1=\mathbf{t}_1\),并解释差异。
- 用 Hebb 规则设计无偏置、hardlims、4 输入 2 输出的感知机,识别 \(\mathbf{p}_1=[1,-1,1,1]^T\)、\(\mathbf{p}_2=[1,1,-1,1]^T\)、\(\mathbf{p}_3=[-1,-1,-1,1]^T\),目标取 \(\mathbf{t}_1=[-1,-1]^T\)、\(\mathbf{t}_2=[-1,1]^T\)、\(\mathbf{t}_3=[1,-1]^T\)。测试 \(\mathbf{p}_t=[1,-1,1,-1]^T\)。(原书 P7.4) 答案要点:\(\mathbf{W}=\begin{bmatrix}-3&-1&-1&-1\\1&3&-1&-1\end{bmatrix}\),\(\mathbf{a}=\mathrm{hardlims}([-2,-2]^T)=[-1,-1]^T=\mathbf{t}_1\),正确(\(\mathbf{p}_t\) 与 \(\mathbf{p}_1\) 的 Hamming 距离为 1,与另两者为 3)。
- \(\{[1,1]^T,1\}\)、\(\{[1,-1]^T,-1\}\):分别用 Hebb 和伪逆规则设计感知机,两者的判决有区别吗?(原书 E7.10) 答案要点:两个输入正交、长度相同,\(\mathbf{P}^T\mathbf{P}=2\mathbf{I}\),伪逆权值是 Hebb 权值的 \(1/2\),hardlims 输出完全相同。
- 证明:把 Hebb 自联想矩阵的对角线清零,\(\mathbf{W}=\mathbf{P}\mathbf{P}^T-Q\mathbf{I}\)(\(\pm1\) 正交原型),原型仍是特征向量,特征值变为 \(R-Q\)。(原书 E7.5) 提示:\(\mathbf{P}\mathbf{P}^T\) 的对角元都等于 \(Q\)(每个 \(p_{jq}^2=1\));\((\mathbf{P}\mathbf{P}^T-Q\mathbf{I})\mathbf{p}_k=R\mathbf{p}_k-Q\mathbf{p}_k\)。
- 按 P7.7 的公式,把练习 2 的网络改写成 \(\{0,1\}\) 二值输入、hardlim 输出的等价网络,写出 \(\mathbf{W}'\) 与 \(\mathbf{b}\)。 提示:\(\mathbf{W}'=2\mathbf{W}\),\(\mathbf{b}=-\mathbf{W}\mathbf{1}=[6,-2]^T\);输出端同样需要从 ±1 换成 0/1。
进阶
- 训练集 \(\{[2,4]^T,26\},\{[4,2]^T,26\},\{[-2,-2]^T,-26\}\),用线性联想器。(a) 用 Hebb 规则求权值;(b) 这里 \(R=2<Q=3\),用 \(\mathbf{P}^+=\mathbf{P}^T(\mathbf{P}\mathbf{P}^T)^{-1}\) 求伪逆权值;(c) 比较两者对训练点的拟合。(原书 E7.7) 答案要点:Hebb 权值 \(\mathbf{W}^h=\mathbf{T}\mathbf{P}^T=[208\ \ 208]\)。\(\mathbf{P}\mathbf{P}^T=\begin{bmatrix}24&20\\20&24\end{bmatrix}\),\(\mathbf{P}\mathbf{T}^T=[208,208]^T\),伪逆权值 \(\mathbf{W}^p=[52/11\ \ 52/11]\approx[4.73\ \ 4.73]\),对三个训练点输出 28.4、28.4、−18.9,是最小二乘意义下的最佳折中,不能精确拟合(三个方程、两个未知数)。Hebb 输出的量级完全不对(\([2,4]^T\) 处为 1248),但两者方向相同,若接 hardlims,决策边界都是 \(p_1+p_2=0\)。
- \(\{[1,0]^T,1\},\{[1,1]^T,-1\},\{[0,1]^T,1\}\):证明无偏置的感知机无法解决,再用增广输入和伪逆规则设计带偏置的网络,并检验是否全部分对。(原书 E7.6) 提示:增广后 \(\mathbf{P}\) 是 \(3\times3\) 可逆矩阵,伪逆即逆矩阵,线性联想器能精确输出目标,hardlims 后自然全部分对。
- 证明衰减规则 \(\mathbf{W}_t=(1-\gamma)\mathbf{W}_{t-1}+\gamma\mathbf{p}_t\mathbf{p}_t^T\)(\(\mathbf{W}_0=\mathbf{0}\))展开为 \(\mathbf{W}_t=\gamma\sum_{k=0}^{t-1}(1-\gamma)^k\mathbf{p}_{t-k}\mathbf{p}_{t-k}^T\),并求权重的半衰期。 答案要点:半衰期 \(h=\ln0.5/\ln(1-\gamma)\);\(1-\gamma=0.94\) 时约 11.2 期。
- 容量实验:仿照原书 E7.11,从"0""1"开始逐个增加存储的数字(可自绘到"6"),每次随机翻转 2、4、6 个像素各测若干次,画出错误率随存储数量变化的曲线,比较 Hebb 与伪逆。 提示:存储越多、原型越相关,Hebb 的串扰越严重;伪逆规则在原型线性无关时始终能精确存储,但抗噪声能力也会下降。
- 量化思考:你有 50 个高度相关的技术因子,打算按各自 IC 加权合成一个信号。根据本章的分析,这样做会出现什么问题?给出至少两种改进方案。 答案要点:串扰会把权重分给"沾了有效因子的光"的冗余因子,且相关因子组被重复计权;可先正交化或做 PCA 再加权,或用带正则化的回归(岭回归)求权重。
原书推荐习题:P7.1、P7.6(Hebb 与伪逆对比、增广偏置);P7.5、E7.5、E7.8(Hebb 矩阵的特征结构);E7.7、E7.9(两种伪逆情形下的边界比较);E7.11(联想记忆容量实验)。
原书对照
| 本章内容 | 原书章节 | PDF 页码 |
|---|---|---|
| 7.1 Hebb 假设 | Objectives、Theory: Hebb 生平与假设 | p.194–196 |
| 7.2 线性联想器与 Hebb 规则 | Linear Associator、The Hebb Rule | p.196–198 |
| 7.3 性能分析 | Performance Analysis | p.198–200 |
| 7.4 伪逆规则 | Pseudoinverse Rule | p.200–203 |
| 7.5 自联想记忆 | Application | p.203–205 |
| 7.7 变体 | Variations of Hebbian Learning | p.205–206 |
| 结果汇总 | Summary of Results | p.207–208 |
| 7.4.4、7.5、7.6 中的例题 | Solved Problems P7.1–P7.7 | p.209–221 |
| 结语、延伸阅读 | Epilogue、Further Reading | p.222–223 |
| 练习 | Exercises E7.1–E7.11 | p.224–227 |
原书配套演示:nnd7sh(Hebb 自联想记忆)。伪逆理论的主要参考是 Albert《Regression and the Moore-Penrose Pseudoinverse》。