量化交易中文教材

第 05 章 信号与权值向量空间、线性变换

合并原书第 5 章"信号与权值向量空间"和第 6 章"神经网络中的线性变换"。这两章是原书为自洽而插入的线性代数复习,与本套教材第 01 册(线性代数与矩阵分析)大量重叠,因此本章压缩通用理论,只保留定义、关键结论和原书例题,把篇幅留给神经网络视角:为什么权值矩阵的行是"原型"、为什么决策边界是子空间、为什么循环网络的命运由特征值决定。需要严格证明时请回查第 01 册第 00 章(向量空间、内积、Gram–Schmidt)以及第 01 册第 01 章(特征值与相似)、第 02b 章(谱定理)、第 04a 章(Hermitian 矩阵)。

学习目标

读完本章,你应当能够:

  1. 判断一个集合是否为向量空间,说明为什么"\(b=0\) 的感知机决策边界是向量空间、\(b\ne0\) 的不是"。
  2. 用内积、范数、夹角和正交解释网络中的运算:Hamming 网络的内积层、感知机边界与权值正交、Hebb 学习需要正交原型。
  3. 执行 Gram–Schmidt 正交化,并把它与因子中性化(回归取残差)联系起来。
  4. 用互逆基求非正交基下的展开系数,掌握换基公式 \(\mathbf{x}^v=\mathbf{B}^{-1}\mathbf{x}^s\) 与相似变换 \(\mathbf{A}'=\mathbf{B}_w^{-1}\mathbf{A}\mathbf{B}_t\)。
  5. 求矩阵的特征值与特征向量,用对角化解释 \(\mathbf{a}(t+1)=\mathbf{W}\mathbf{a}(t)\) 何时收敛、发散或振荡。
  6. 理解带偏置的网络层是仿射变换而非线性变换。

读前导读

这一章在解决什么问题

结论先说:这是一章线性代数,但每个工具都有明确的金融对应物,你其实大多用过,只是没用这套语言说过。内积是"没去均值的协方差",夹角余弦去均值后就是相关系数;Gram–Schmidt 正交化就是"对已有因子回归、取残差"做因子中性化;换基就是把组合从"资产权重"表示换成"因子暴露"表示;特征值分解就是对协方差矩阵做 PCA。本章用这些工具回答神经网络里的三个问题:权值矩阵的每一行为什么可以看作"原型"(内积 = 相似度);决策边界为什么是一个平面(子空间);循环网络反复乘同一个矩阵 \(\mathbf{W}\),为什么由特征值决定收敛还是发散(和 VAR 模型平稳性是同一个问题)。

本章最终要落到 5.7.3 节那一个公式:\(\mathbf{W}^t\mathbf{a}(0)=\sum_ic_i\lambda_i^t\mathbf{z}_i\)。前面的向量空间、基、换基、相似变换,都是为了让这个公式说得通。第 08 章分析性能曲面、第 09、10 章讨论学习率是否稳定,都要用它。

需要先想起来的数学

  • 行列式(2×2 与 3×3)。\(\det\begin{bmatrix}a&b\\c&d\end{bmatrix}=ad-bc\)。例:\(\det\begin{bmatrix}2&1\\1&2\end{bmatrix}=4-1=3\)。行列式为 0 表示矩阵把空间"压扁"了(列向量线性相关),这时矩阵不可逆。3×3 可以按第一行展开:\(a_{11}\) 乘去掉第 1 行第 1 列后的 2×2 行列式,减 \(a_{12}\) 乘对应的,加 \(a_{13}\) 乘对应的。见 第 00 册第 06 章 线性代数速成。
  • 2×2 矩阵求逆。\(\begin{bmatrix}a&b\\c&d\end{bmatrix}^{-1}=\frac{1}{ad-bc}\begin{bmatrix}d&-b\\-c&a\end{bmatrix}\):主对角线互换,副对角线变号,再除以行列式。例:\(\begin{bmatrix}2&1\\1&2\end{bmatrix}^{-1}=\frac13\begin{bmatrix}2&-1\\-1&2\end{bmatrix}\)。
  • 特征值与特征向量。\(\mathbf{A}\mathbf{z}=\lambda\mathbf{z}\):矩阵作用在 \(\mathbf{z}\) 上,只改变长度不改变方向。求法是解 \(\det(\mathbf{A}-\lambda\mathbf{I})=0\)。对 2×2 矩阵有捷径:特征多项式是 \(\lambda^2-(\text{迹})\lambda+\det\),迹是对角元之和。见 第 00 册第 06 章 线性代数速成。
  • 复数。\(j\) 是虚数单位,\(j^2=-1\)(工程书用 \(j\),数学书常用 \(i\))。复数 \(a+jb\) 的模是 \(\sqrt{a^2+b^2}\)。特征值为复数意味着矩阵带有"旋转"成分。
  • 积分作为函数的内积。\(\int_0^1x(t)y(t)dt\) 是把"逐点相乘再求和"推广到连续情形,与 \(\sum_ix_iy_i\) 同一个意思。见 第 00 册第 03 章 积分。

本章符号补充:\(\mathbb{R}^n\) 是全体 \(n\) 维实数列向量;\(\in\) 读作"属于";\(\delta_{ij}\)(小结表中)在 \(i=j\) 时为 1、否则为 0;\(\mathrm{diag}(\lambda_1,\dots,\lambda_n)\) 是对角线为这些数、其余为 0 的矩阵;\(\mathcal{A}\) 这类花体字母表示"变换"本身(一个规则),\(\mathbf{A}\) 是它在某组基下的矩阵。

怎么读这一章

核心必读是 5.3 节(内积与正交)、5.4 节最后一段(投影的最优性 = 最小二乘)、5.7 节(特征值与对角化,尤其 5.7.3)。5.2 节只需掌握"加法封闭、数乘封闭、含零向量"三条速判和线性无关的含义。5.5 节互逆基与 5.6.3 节相似变换第一次可以只看结论 \(\mathbf{x}^v=\mathbf{B}^{-1}\mathbf{x}^s\) 和 \(\mathbf{A}'=\mathbf{B}^{-1}\mathbf{A}\mathbf{B}\),知道"换基 = 乘逆矩阵"即可。函数空间的例子(多项式、\(C[0,1]\))可以跳过。5.8 节量化实战建议细读,它把每个抽象工具都落到了因子研究上。


5.1 为什么神经网络需要向量空间

第 03、04 章已经反复用到向量的几何:

  • Hamming 网络前馈层的权值行就是原型向量,作用是计算原型与输入的内积;
  • 感知机的决策边界总与权值行向量正交;
  • 感知机规则 \(\mathbf{w}\leftarrow\mathbf{w}\pm\mathbf{p}\) 是在向量空间里"把权值往输入方向推"。

原书的看法是:把网络的输入、输出、权值矩阵的每一行都看成向量空间中的元素,是理解"神经网络为何有效"的关键。下面只复习对分析网络最有用的部分。

记号:\(\mathbb{R}^n\) 中的向量写成粗体 \(\mathbf{x}=[x_1,\dots,x_n]^T\);一般向量空间(如函数空间)中的元素写成 \(x\)。


5.2 向量空间、线性无关与基

5.2.1 定义与例子

定义在标量域 \(F\) 上的线性向量空间 \(X\) 是满足十条公理的集合:加法封闭、交换律、结合律、存在唯一零向量、每个元素有唯一负元、数乘封闭、\(1x=x\)、\(a(bx)=(ab)x\)、\((a+b)x=ax+bx\)、\(a(x+y)=ax+ay\)(完整陈述见第 01 册第 00 章)。实际判断时最常用的是三条:加法封闭、数乘封闭、含零向量。

  • \(\mathbb{R}^2\) 是向量空间;\(\mathbb{R}^2\) 中的有界方框不是(两个框内向量之和可能出框)——任何有界集都不是向量空间。
  • 过原点的直线是 \(\mathbb{R}^2\) 的子空间;不过原点的直线不含零向量,不是。
  • \(P^2\)(次数不超过 2 的多项式)是向量空间;\(C[0,1]\)(\([0,1]\) 上全体连续函数)也是,而且是无穷维的。

神经网络视角(原书 P5.1):\(b=0\) 时感知机的决策边界 \(\{\mathbf{p}:\mathbf{W}\mathbf{p}=0\}\) 是向量空间。若 \(\mathbf{W}\mathbf{p}_1=0\)、\(\mathbf{W}\mathbf{p}_2=0\),则 \(\mathbf{W}(\mathbf{p}_1+\mathbf{p}_2)=0\),\(\mathbf{W}(a\mathbf{p}_1)=0\),且 \(\mathbf{W}\mathbf{0}=0\)。单神经元时它是 \(\mathbb{R}^R\) 中的 \(R-1\) 维子空间(超平面过原点)。\(b\ne0\) 时边界不过原点,不是向量空间(是一个仿射集)——这也是第 04 章把偏置并入增广向量的原因:在增广空间 \([\mathbf{p};1]\) 里,边界重新变成过原点的子空间。

5.2.2 线性无关、张成、基、维数

若存在不全为零的 \(a_1,\dots,a_n\) 使 \(a_1x_1+\cdots+a_nx_n=0\),则称 \(\{x_i\}\) 线性相关;否则线性无关。

例 橙子 \(\mathbf{p}_1=[1,-1,-1]^T\) 与苹果 \(\mathbf{p}_2=[1,1,-1]^T\):\(a_1\mathbf{p}_1+a_2\mathbf{p}_2=[a_1+a_2,\ -a_1+a_2,\ -(a_1+a_2)]^T=\mathbf{0}\) 只有零解,线性无关。

例 \(P^2\) 中 \(x_1=1+t+t^2\),\(x_2=2+2t+t^2\),\(x_3=1+t\):\(x_1-x_2+x_3=0\),线性相关。

能张成(span)\(X\) 的线性无关集叫基(basis),基中元素个数就是维数。基不唯一,但维数唯一。\(P^2\) 的一组基是 \(\{1,t,t^2\}\),另一组是 \(\{1,1+t,1+t+t^2\}\)。

判断相关性的实用工具(原书 P5.3):

  • \(n\) 个 \(\mathbb{R}^n\) 向量排成方阵,行列式为零 ⇔ 相关。例如 \(\{[1,1,1]^T,[1,0,1]^T,[1,2,1]^T\}\) 的行列式为 0,相关(\(2x_1-x_2-x_3=0\)),张成二维空间。
  • 向量个数少于维数时不能用行列式,改用 Gram 行列式(Gramian):以 \((x_i,x_j)\) 为元素的矩阵的行列式,为零 ⇔ 相关。\(\{[1,1,1,1]^T,[1,0,1,1]^T,[1,2,1,1]^T\}\) 的 Gramian 为 \(\det\begin{bmatrix}4&3&5\\3&3&3\\5&3&7\end{bmatrix}=0\),相关。
  • 数值计算中用矩阵的秩(np.linalg.matrix_rank)。

金融直觉:线性相关就是回归里的"完全多重共线性"。如果三个因子满足 \(2x_1-x_2-x_3=0\),其中任何一个都能由另两个精确表示,把三者同时放进回归,\(\mathbf{X}^T\mathbf{X}\) 的行列式为 0、不可逆,系数无法唯一确定。Gram 矩阵 \([(x_i,x_j)]\) 正是回归里的 \(\mathbf{X}^T\mathbf{X}\)(去均值后除以样本数就是协方差矩阵),所以"Gramian 为零 ⇔ 相关"就是"\(\mathbf{X}^T\mathbf{X}\) 奇异 ⇔ 完全共线"。维数则对应"真正独立的信息有几维":三个因子张成二维空间,说明只有两个独立因子。

线性可分与线性无关是两回事(原书 P5.4):\(\mathbf{p}_1=[0.5,0.5]^T\) 与 \(\mathbf{p}_2=[1.5,1.5]^T\) 线性相关(\(\mathbf{p}_2=3\mathbf{p}_1\)),却可以用 \(\mathbf{W}=[1\ 1]\)、\(b=-2\) 分开。


5.3 内积、范数、夹角与正交

满足对称性、线性性、正定性三条的标量函数 \((x,y)\) 都可以作内积(inner product)。\(\mathbb{R}^n\) 的标准内积是 \(\mathbf{x}^T\mathbf{y}\),但不是唯一选择;\(C[0,1]\) 上可取 \((x,y)=\int_0^1x(t)y(t)\,dt\)。

满足非负、正定、齐次、三角不等式四条的标量函数叫范数(norm)。由内积导出的范数 \(\|x\|=(x,x)^{1/2}\) 在 \(\mathbb{R}^n\) 中就是欧氏范数。高维空间中的夹角定义为

\[\cos\theta=\frac{(x,y)}{\|x\|\,\|y\|}.\tag{5.15}\]

\((x,y)=0\) 时称两者正交。

神经网络视角:

  • 内积 = 相似度。Hamming 网络和后面的竞争网络都用内积衡量输入与原型的相似程度。只有当所有原型长度相同时,"内积最大"才等价于"夹角最小",也等价于"欧氏距离最近",因为 \(\|\mathbf{p}-\mathbf{w}\|^2=\|\mathbf{p}\|^2-2\mathbf{w}^T\mathbf{p}+\|\mathbf{w}\|^2\)。这就是为什么神经网络中常把输入归一化到单位长度。
  • 正交 = 不串扰。第 07 章将证明:原型向量标准正交时,用 Hebb 规则训练的线性联想器能完美回忆每个模式;原型之间夹角越小(越相关),回忆误差越大。
  • 原书习题 E5.9:椭圆形橙子 \([-1,-1,-1]^T\) 与橙子原型的夹角余弦为 \(1/3\),与苹果原型为 \(-1/3\),前者更近,与直觉一致。

5.4 Gram–Schmidt 正交化

把 \(n\) 个线性无关向量 \(y_1,\dots,y_n\) 变成张成同一空间的正交向量 \(v_1,\dots,v_n\):

\[v_1=y_1,\qquad v_k=y_k-\sum_{i=1}^{k-1}\frac{(v_i,y_k)}{(v_i,v_i)}v_i .\tag{5.20}\]

每一步都减去 \(y_k\) 在已有正交向量上的投影(projection),剩下的部分自然与它们正交。各向量再除以自身范数,就得到标准正交(orthonormal)集。

例(原书 5.21–5.23) \(\mathbf{y}_1=[2,1]^T\),\(\mathbf{y}_2=[1,2]^T\)。\(\mathbf{v}_1=[2,1]^T\);\(\mathbf{v}_2=[1,2]^T-\frac45[2,1]^T=[-0.6,\ 1.2]^T\)。

例(原书 P5.5) \(\mathbf{y}_1=[1,1,1]^T\),\(\mathbf{y}_2=[1,0,0]^T\),\(\mathbf{y}_3=[0,1,0]^T\),得 \(\mathbf{v}_1=[1,1,1]^T\),\(\mathbf{v}_2=[2/3,-1/3,-1/3]^T\),\(\mathbf{v}_3=[0,1/2,-1/2]^T\)。

例(原书 P5.7,函数空间) \([-1,1]\) 上的多项式,内积 \(\int_{-1}^1x(t)y(t)dt\)。由 \(y_1=1+t\)、\(y_2=1-t\):\((v_1,y_2)=4/3\),\((v_1,v_1)=8/3\),\(v_2=(1-t)-\frac12(1+t)=\frac12-\frac32t\)。同一个算法在函数空间里照样成立。

投影的最优性(原书 E5.21):使 \(\|x-ay\|\) 最小的 \(a\) 是 \(a=(x,y)/(y,y)\),此时残差 \(x-ay\) 与 \(y\) 正交,且 \(\|x-ay\|^2+\|ay\|^2=\|x\|^2\)。这就是最小二乘的几何本质:最优拟合的残差与解释变量正交。第 07 章的伪逆规则和第 08 章的二次性能曲面都建立在这一点上。

推导拆解:用你熟悉的过原点一元回归来验证。把 \(\|x-ay\|^2\) 展开成 \(a\) 的二次函数:\(\|x\|^2-2a(x,y)+a^2(y,y)\)(这一步用了内积的线性性,和 \((u-v)^2\) 展开一样)。这是开口向上的抛物线,对 \(a\) 求导令其为 0:\(-2(x,y)+2a(y,y)=0\),得 \(a=(x,y)/(y,y)\)。换成数据语言:\(a=\sum x_iy_i/\sum y_i^2\),这正是无截距回归 \(x=ay+\varepsilon\) 的 OLS 斜率;若先去均值,就是 \(\mathrm{Cov}/\mathrm{Var}\),即 beta。残差正交:\((x-ay,y)=(x,y)-a(y,y)=0\),正是 OLS 的正规方程"残差与自变量不相关"。最后那个等式是勾股定理,对应回归的 \(\text{TSS}=\text{RSS}+\text{ESS}\)。所以 Gram–Schmidt 式 (5.20) 每一步都是"对已有的正交因子做一次回归、取残差"。


5.5 向量展开、互逆基与换基

5.5.1 一般向量的"列表示"

若 \(\{v_1,\dots,v_n\}\) 是 \(X\) 的基,任一 \(x\in X\) 有唯一展开 \(x=\sum_i x_iv_i\),于是 \(x\) 可以用一列数 \(\mathbf{x}=[x_1,\dots,x_n]^T\) 表示。列表示依赖于基:换基后数字变了,代表的对象不变。因此有限维空间在计算上都与 \(\mathbb{R}^n\) 等价,这也是我们能用矩阵处理多项式、函数等对象的原因。

正交基下系数直接由内积给出:

\[x_j=\frac{(v_j,x)}{(v_j,v_j)}.\tag{5.27}\]

5.5.2 互逆基

基不正交时,引入互逆基(reciprocal basis)\(\{r_i\}\),要求

\[(r_i,v_j)=\begin{cases}1,&i=j\\0,&i\ne j\end{cases}\tag{5.28}\]

于是 \(x_j=(r_j,x)\)。用标准内积时,令 \(\mathbf{B}=[\mathbf{v}_1\ \cdots\ \mathbf{v}_n]\)、\(\mathbf{R}=[\mathbf{r}_1\ \cdots\ \mathbf{r}_n]\),条件变成 \(\mathbf{R}^T\mathbf{B}=\mathbf{I}\),即

\[\mathbf{R}^T=\mathbf{B}^{-1},\qquad \mathbf{x}^v=\mathbf{B}^{-1}\mathbf{x}^s .\tag{5.33, 5.43}\]

互逆基向量就是 \(\mathbf{B}^{-1}\) 的行。式(5.43)叫换基(change of basis):\(\mathbf{x}^s\) 是相对标准基的表示,\(\mathbf{x}^v\) 是相对基 \(\{v_i\}\) 的表示。

例(原书 5.39–5.45) 基 \(\mathbf{v}_1=[2,1]^T\),\(\mathbf{v}_2=[1,2]^T\),\(\mathbf{x}^s=[0,\ 3/2]^T\)。

\[\mathbf{B}^{-1}=\begin{bmatrix}2/3&-1/3\\-1/3&2/3\end{bmatrix},\qquad \mathbf{x}^v=\mathbf{B}^{-1}\mathbf{x}^s=\begin{bmatrix}-1/2\\1\end{bmatrix},\]

即 \(x=0\cdot s_1+\tfrac32s_2=-\tfrac12v_1+v_2\)。

白话解释:为什么换基要乘逆矩阵?"\(\mathbf{x}\) 在基 \(\{\mathbf{v}_i\}\) 下的坐标是 \(\mathbf{x}^v\)"的意思是 \(\mathbf{x}^s=x^v_1\mathbf{v}_1+x^v_2\mathbf{v}_2\),写成矩阵就是 \(\mathbf{x}^s=\mathbf{B}\mathbf{x}^v\)(\(\mathbf{B}\) 的列是新基向量)。已知 \(\mathbf{x}^s\) 求 \(\mathbf{x}^v\),两边左乘 \(\mathbf{B}^{-1}\) 即可。金融例子:两只基金 \(\mathbf{v}_1=[2,1]^T\)、\(\mathbf{v}_2=[1,2]^T\) 分别持有两只股票的份数,你想得到目标持仓 \([0,1.5]^T\),需要买 \(-0.5\) 份基金 1(做空)和 1 份基金 2——这就是用"基金"做基时的坐标。互逆基向量 \(\mathbf{r}_j\)(\(\mathbf{B}^{-1}\) 的第 \(j\) 行)的作用像一个"提取器":与它做内积,就把第 \(j\) 只基金的份数单独取出来,而对其他基金"视而不见"(\((\mathbf{r}_i,\mathbf{v}_j)=0\))。

例(原书 P5.8) 把 \(\mathbf{x}=[6,9,9]^T\) 按基 \(\{[1,1,1]^T,[1,2,3]^T,[1,3,2]^T\}\) 展开,得 \(\mathbf{x}^v=[4,1,1]^T\)。


5.6 线性变换与矩阵表示

5.6.1 定义

变换 \(\mathcal{A}:X\to Y\) 若满足 \(\mathcal{A}(x_1+x_2)=\mathcal{A}(x_1)+\mathcal{A}(x_2)\) 和 \(\mathcal{A}(ax)=a\mathcal{A}(x)\),就是线性变换。\(\mathbb{R}^2\) 中的旋转、向一条直线的投影 \(\mathcal{A}(x)=\frac{(x,v)}{(v,v)}v\)(原书 P6.2)、多项式求导都是线性变换。

神经网络视角(原书 P6.1):线性传递函数的单层网络 \(\mathcal{A}(\mathbf{p})=\mathbf{W}\mathbf{p}+\mathbf{b}\) 是线性变换吗?

\[\mathcal{A}(\mathbf{p}_1+\mathbf{p}_2)=\mathbf{W}\mathbf{p}_1+\mathbf{W}\mathbf{p}_2+\mathbf{b},\qquad \mathcal{A}(\mathbf{p}_1)+\mathcal{A}(\mathbf{p}_2)=\mathbf{W}\mathbf{p}_1+\mathbf{W}\mathbf{p}_2+2\mathbf{b}.\]

只有 \(\mathbf{b}=\mathbf{0}\) 时才相等。所以即使传递函数是线性的,带偏置的层也不是线性变换,而是仿射变换(affine transformation)。

5.6.2 矩阵表示

有限维空间之间的任一线性变换都可以用矩阵表示。设 \(X\) 的基为 \(\{v_j\}\),\(Y\) 的基为 \(\{u_i\}\)。把每个定义域基向量变换后按值域基展开:

\[\mathcal{A}(v_j)=\sum_{i=1}^m a_{ij}u_i ,\tag{6.6}\]

系数 \(a_{ij}\) 构成矩阵 \(\mathbf{A}\) 的第 \(j\) 列,于是 \(\mathbf{A}\mathbf{x}=\mathbf{y}\):矩阵乘以定义域向量的展开系数,得到像的展开系数。推导只用到线性性和基的线性无关(详见第 01 册第 00 章"矩阵的两种视角")。

推导拆解:为什么"第 \(j\) 列 = 第 \(j\) 个基向量的像"?任取 \(x=\sum_jx_jv_j\)。由线性性,\(\mathcal{A}(x)=\sum_jx_j\mathcal{A}(v_j)\);代入式 (6.6),\(=\sum_jx_j\sum_ia_{ij}u_i=\sum_i\big(\sum_ja_{ij}x_j\big)u_i\)(交换两个有限求和的顺序)。所以像的第 \(i\) 个坐标是 \(y_i=\sum_ja_{ij}x_j\),正是矩阵乘法 \(\mathbf{A}\mathbf{x}\) 的第 \(i\) 行。一句话:线性变换由它对基向量的作用完全决定。实用口诀:要写出一个线性变换的矩阵,就把每个基向量送进去,把结果竖着排成列。用这个口诀验算旋转矩阵式 (6.14):\([1,0]^T\) 转 \(\theta\) 后是 \([\cos\theta,\sin\theta]^T\),即第一列;\([0,1]^T\) 转后是 \([-\sin\theta,\cos\theta]^T\),即第二列。

例:旋转。逆时针转 \(\theta\):\(\mathcal{A}(s_1)=\cos\theta\,s_1+\sin\theta\,s_2\),\(\mathcal{A}(s_2)=-\sin\theta\,s_1+\cos\theta\,s_2\),

\[\mathbf{A}=\begin{bmatrix}\cos\theta&-\sin\theta\\ \sin\theta&\cos\theta\end{bmatrix}.\tag{6.14}\]

例:求导(原书 P6.8)。\(P^2\) 上,基 \(\{1,t,t^2\}\):\(\mathcal{D}(1)=0\),\(\mathcal{D}(t)=1\),\(\mathcal{D}(t^2)=2t\),

\[\mathbf{D}=\begin{bmatrix}0&1&0\\0&0&2\\0&0&0\end{bmatrix}.\]

由样本反求变换(原书 P6.9)。只知道 \(\mathbf{A}[2,2]^T=[-1,0]^T\),\(\mathbf{A}[-1,1]^T=[-2,-1]^T\),把它们并排写成 \(\mathbf{A}\mathbf{X}=\mathbf{Y}\),得

\[\mathbf{A}=\mathbf{Y}\mathbf{X}^{-1}=\begin{bmatrix}-1&-2\\0&-1\end{bmatrix}\begin{bmatrix}1/4&1/4\\-1/2&1/2\end{bmatrix}=\begin{bmatrix}3/4&-5/4\\1/2&-1/2\end{bmatrix}.\]

这是"从输入/输出样本学一个线性网络"的最简单形式——样本数恰好等于维数、没有噪声。样本多于或少于维数时怎么办,正是第 07 章伪逆规则要回答的问题。

5.6.3 换基:相似变换

同一个线性变换在不同基下有不同的矩阵。设定义域新基 \(\{t_i\}\)、值域新基 \(\{w_i\}\) 相对旧基的列向量分别排成 \(\mathbf{B}_t\)、\(\mathbf{B}_w\),则 \(\mathbf{x}=\mathbf{B}_t\mathbf{x}'\),\(\mathbf{y}=\mathbf{B}_w\mathbf{y}'\)。代入 \(\mathbf{A}\mathbf{x}=\mathbf{y}\) 得 \(\mathbf{A}\mathbf{B}_t\mathbf{x}'=\mathbf{B}_w\mathbf{y}'\),所以

\[\boxed{\ \mathbf{A}'=\mathbf{B}_w^{-1}\mathbf{A}\mathbf{B}_t\ }\tag{6.33}\]

这叫相似变换(similarity transform)。它对非方阵同样适用(原书 P6.6 中 \(\mathcal{A}:\mathbb{R}^3\to\mathbb{R}^2\))。

例(原书 6.34–6.45) 旋转 \(30^\circ\),换到基 \(\mathbf{t}_1=[1,0.5]^T\),\(\mathbf{t}_2=[-1,1]^T\)(定义域和值域用同一组):

\[\mathbf{A}'=\mathbf{B}_t^{-1}\mathbf{A}\mathbf{B}_t=\begin{bmatrix}\tfrac23&\tfrac23\\-\tfrac13&\tfrac23\end{bmatrix}\begin{bmatrix}0.866&-0.5\\0.5&0.866\end{bmatrix}\begin{bmatrix}1&-1\\0.5&1\end{bmatrix}=\begin{bmatrix}1.033&-0.667\\0.417&0.699\end{bmatrix}.\]

检验:\(\mathbf{x}=[1,0.5]^T\) 在新基下是 \(\mathbf{x}'=[1,0]^T\)。\(\mathbf{y}=\mathbf{A}\mathbf{x}=[0.616,0.933]^T\),\(\mathbf{y}'=\mathbf{A}'\mathbf{x}'=[1.033,0.416]^T\),而 \(\mathbf{B}_t^{-1}\mathbf{y}=[1.033,0.416]^T\),一致。

选择合适的基,能得到最能揭示变换本质的表示——这就是下一节。


5.7 特征值、特征向量与对角化

5.7.1 定义与计算

对 \(\mathcal{A}:X\to X\),满足

\[\mathcal{A}(z)=\lambda z,\qquad z\ne0\tag{6.46}\]

的 \(z\) 和 \(\lambda\) 叫特征向量和特征值。特征向量代表一个方向:这个方向上的向量经过变换后仍在同一方向上,只被缩放了 \(\lambda\) 倍。选定基后解 \(|\mathbf{A}-\lambda\mathbf{I}|=0\),这是 \(n\) 次多项式,总有 \(n\) 个(可能为复数或重复的)根。

  • 旋转 \(\theta\):\(\lambda^2-2\lambda\cos\theta+1=0\),\(\lambda=\cos\theta\pm j\sin\theta\)。\(\sin\theta\ne0\) 时没有实特征值——没有任何实方向在旋转下保持不变。
  • 例(原书 6.54–6.66):\(\mathbf{A}=\begin{bmatrix}-1&1\\0&-2\end{bmatrix}\),\((\lambda+1)(\lambda+2)=0\),\(\lambda_1=-1\),\(\mathbf{z}_1=[1,0]^T\);\(\lambda_2=-2\),\(\mathbf{z}_2=[1,-1]^T\)。
  • 例(原书 P6.5):\(\mathbf{A}=\begin{bmatrix}2&-2\\-1&3\end{bmatrix}\),\(\lambda^2-5\lambda+4=0\),\(\lambda_1=1\),\(\mathbf{z}_1=[2,1]^T\);\(\lambda_2=4\),\(\mathbf{z}_2=[1,-1]^T\)。

推导拆解:以 P6.5 为例走一遍完整步骤。第一步写特征方程:\(\det\begin{bmatrix}2-\lambda&-2\\-1&3-\lambda\end{bmatrix}=(2-\lambda)(3-\lambda)-(-2)(-1)=\lambda^2-5\lambda+4\)(也可直接用"迹 = 5、行列式 = 6−2 = 4")。第二步解出 \(\lambda=1,4\)。第三步对每个 \(\lambda\) 解 \((\mathbf{A}-\lambda\mathbf{I})\mathbf{z}=\mathbf{0}\):\(\lambda=1\) 时矩阵为 \(\begin{bmatrix}1&-2\\-1&2\end{bmatrix}\),两行成比例(行列式为 0 保证了这一点),只需满足 \(z_1-2z_2=0\),取 \(\mathbf{z}_1=[2,1]^T\)。特征向量只确定方向,长度任意。第四步验算:\(\mathbf{A}[2,1]^T=[4-2,\ -2+3]^T=[2,1]^T\),确实等于 \(1\times[2,1]^T\)。

  • 例(原书 P6.8):求导矩阵 \(\mathbf{D}\) 的特征多项式为 \(-\lambda^3\),三个特征值全为 0,但只有一个特征向量 \([1,0,0]^T\)(常数多项式)——这是一个亏损矩阵,无法对角化。

5.7.2 对角化

若有 \(n\) 个互异特征值,则必有 \(n\) 个线性无关的特征向量,构成一组基。以特征向量为基,令 \(\mathbf{B}=[\mathbf{z}_1\ \cdots\ \mathbf{z}_n]\),由相似变换

\[\mathbf{B}^{-1}\mathbf{A}\mathbf{B}=\mathrm{diag}(\lambda_1,\dots,\lambda_n).\tag{6.69}\]

P6.5 中 \(\mathbf{B}=\begin{bmatrix}2&1\\1&-1\end{bmatrix}\),\(\mathbf{B}^{-1}\mathbf{A}\mathbf{B}=\mathrm{diag}(1,4)\)。

推导拆解:式 (6.69) 为什么成立?把 \(n\) 个等式 \(\mathbf{A}\mathbf{z}_i=\lambda_i\mathbf{z}_i\) 并排写成矩阵:左边是 \(\mathbf{A}[\mathbf{z}_1\cdots\mathbf{z}_n]=\mathbf{A}\mathbf{B}\);右边是 \([\lambda_1\mathbf{z}_1\cdots\lambda_n\mathbf{z}_n]=\mathbf{B}\boldsymbol\Lambda\)(右乘对角阵 = 每一列乘对应的对角元)。于是 \(\mathbf{A}\mathbf{B}=\mathbf{B}\boldsymbol\Lambda\),特征向量线性无关保证 \(\mathbf{B}\) 可逆,左乘 \(\mathbf{B}^{-1}\) 即得。它就是 5.6.3 节相似变换 \(\mathbf{A}'=\mathbf{B}^{-1}\mathbf{A}\mathbf{B}\) 的特例:以特征向量为新基,变换的矩阵变成对角的。也可写成 \(\mathbf{A}=\mathbf{B}\boldsymbol\Lambda\mathbf{B}^{-1}\),读法是"先换到特征坐标(乘 \(\mathbf{B}^{-1}\)),在每个坐标上各自缩放(乘 \(\boldsymbol\Lambda\)),再换回原坐标(乘 \(\mathbf{B}\))"。

对称矩阵的情形尤其重要(第 08 章的 Hessian、量化中的协方差矩阵都是对称的):特征值都是实数,特征向量可取为标准正交,于是 \(\mathbf{B}^{-1}=\mathbf{B}^T\),\(\mathbf{A}=\mathbf{B}\boldsymbol{\Lambda}\mathbf{B}^T\)(谱定理,证明见第 01 册第 02b 章)。

5.7.3 神经网络视角:反复乘 \(\mathbf{W}\) 会怎样

原书第 6 章开头提出的问题是:Hopfield 网络 \(\mathbf{a}(t+1)=\mathrm{satlins}(\mathbf{W}\mathbf{a}(t)+\mathbf{b})\) 每一步都再乘一次 \(\mathbf{W}\),输出会收敛、发散还是振荡?先忽略饱和与偏置,看线性迭代 \(\mathbf{a}(t+1)=\mathbf{W}\mathbf{a}(t)\)。若 \(\mathbf{W}\) 可对角化,把初值展开成特征向量的组合 \(\mathbf{a}(0)=\sum_ic_i\mathbf{z}_i\),则

\[\mathbf{a}(t)=\mathbf{W}^t\mathbf{a}(0)=\sum_i c_i\lambda_i^t\,\mathbf{z}_i .\]

每个特征方向独立演化:

  • \(|\lambda_i|<1\):该方向的分量指数衰减;
  • \(|\lambda_i|>1\):该方向的分量指数增长(Hopfield 网络里会撞上 satlins 的饱和墙);
  • \(\lambda_i<0\):该方向的分量正负交替(振荡);复特征值对应旋转式的振荡。

推导拆解:\(\mathbf{W}^t\mathbf{a}(0)=\sum_ic_i\lambda_i^t\mathbf{z}_i\) 的来历。乘一次:\(\mathbf{W}\mathbf{a}(0)=\sum_ic_i\mathbf{W}\mathbf{z}_i=\sum_ic_i\lambda_i\mathbf{z}_i\)(第一个等号用线性性,第二个用特征向量的定义)。再乘一次,每个 \(\mathbf{z}_i\) 又被乘上 \(\lambda_i\),得到 \(\lambda_i^2\);乘 \(t\) 次就是 \(\lambda_i^t\)。系数 \(c_i\) 由换基求得:\(\mathbf{c}=\mathbf{B}^{-1}\mathbf{a}(0)\)。数值例:\(\mathbf{W}=\mathrm{diag}(0.5,2)\),\(\mathbf{a}(0)=[1,1]^T\),则 \(\mathbf{a}(10)=[0.5^{10},2^{10}]^T\approx[0.001,1024]^T\)——第一个方向被"遗忘",第二个方向爆炸。

金融直觉:这和复利、AR(1) 是一回事。一元情形 \(a(t)=\lambda^ta(0)\):\(\lambda=1.05\) 是年化 5% 的复利增长,\(\lambda=0.9\) 是每期回复 10% 的均值回复(半衰期 \(\ln0.5/\ln0.9\approx6.6\) 期),\(\lambda=-0.5\) 是"每期反向、幅度减半"的过度反应修正。多元时,特征分解把一个相互耦合的系统拆成若干个独立的"一元复利账户",每个账户按自己的 \(\lambda_i\) 复利;整个系统的长期命运由模最大的那个 \(\lambda\) 决定。

回看第 03 章的 Hopfield 例子:\(\mathbf{W}=\mathrm{diag}(0.2,1.2,0.2)\),第二个坐标方向特征值 1.2 > 1,被放大到饱和,所以输出的第二个元素由初值的符号决定;其余两个方向特征值 0.2 < 1,初值被"遗忘",最终位置由偏置决定。第 07 章还会看到:Hebb 规则设计的自联想器 \(\mathbf{W}=\mathbf{P}\mathbf{P}^T\),原型方向的特征值为 \(R\),正交于原型的方向特征值为 0。对角化把一个耦合的多维问题拆成 \(n\) 个独立的一维问题,这是全书分析性能曲面(第 08 章)、学习率稳定性(第 9、10 章)和 Hopfield 收敛(第 19 章,原书第 20、21 章)的共同工具。


5.8 量化实战:正交化、PCA 与迭代系统的稳定性

本章的工具在量化里几乎每天都在用:

  • 因子中性化 = Gram–Schmidt 的一步。把价值因子对市值因子做截面回归、取残差,得到"市值中性的价值因子",这正是 \(v_2=y_2-\frac{(v_1,y_2)}{(v_1,v_1)}v_1\)。对一组因子依次这样做(顺序正交化),得到两两不相关的因子,但结果依赖于正交化顺序:排在前面的因子保留了全部共同部分。
  • 去均值后的夹角余弦就是相关系数。用它度量因子相似度、策略收益相关性、持仓重叠度。
  • 换基 = 换因子坐标系。组合在"资产空间"与"因子/主成分空间"之间的转换就是 \(\mathbf{x}^v=\mathbf{B}^{-1}\mathbf{x}^s\);数值变了,经济含义不变。
  • 协方差矩阵对角化 = PCA。\(\boldsymbol{\Sigma}=\mathbf{B}\boldsymbol{\Lambda}\mathbf{B}^T\) 中第一个特征向量常可解释为市场因子,特征值是各主成分的方差。在特征基下,组合方差拆成互不相关的各方向方差之和:\(\mathbf{w}^T\boldsymbol\Sigma\mathbf{w}=\sum_i\lambda_ic_i^2\),\(\mathbf{c}=\mathbf{B}^T\mathbf{w}\)。完整的统计因子模型见第 06 册第 09 章。
  • 迭代系统的稳定性。VAR(1) 模型 \(\mathbf{x}_{t+1}=\mathbf{A}\mathbf{x}_t+\boldsymbol\epsilon_t\) 平稳当且仅当 \(\mathbf{A}\) 的特征值模都小于 1;均值回复价差的回复速度由对应特征值决定(第 06 册第 08a、08b 章)。这和"Hopfield 网络反复乘 \(\mathbf{W}\)"是同一个数学问题。

下面的代码先核对原书几个例题,再演示这三类应用。

import numpy as np
np.set_printoptions(precision=4, suppress=True)

def gram_schmidt(Y):
    """原书式 (5.20):Y 的列为 y_1..y_n,返回正交(未归一化)的 v_1..v_n"""
    V = []
    for y in Y.T:
        v = y - sum((vi @ y) / (vi @ vi) * vi for vi in V)
        V.append(v)
    return np.array(V).T

# ---------- 原书例 (5.21)-(5.23) 与 P5.5 ----------
print("GS (5.23):\n", gram_schmidt(np.array([[2., 1.], [1., 2.]])))
print("GS P5.5:\n", gram_schmidt(np.array([[1., 1, 0], [1, 0, 1], [1, 0, 0]])))

# ---------- 互逆基与换基:P5.8 ----------
B = np.array([[1., 1, 1], [1, 2, 3], [1, 3, 2]])     # 列为 v1, v2, v3
x = np.array([6., 9, 9])
print("x^v = B^{-1} x =", np.linalg.solve(B, x))

# ---------- 相似变换:旋转 30° 换到基 t1=[1,.5], t2=[-1,1] (6.39)-(6.45) ----------
th = np.pi / 6
A = np.array([[np.cos(th), -np.sin(th)], [np.sin(th), np.cos(th)]])
Bt = np.array([[1., -1], [0.5, 1]])
Ap = np.linalg.solve(Bt, A @ Bt)
print("A' =\n", Ap, "\nA'[1,0] =", Ap @ [1, 0], " B^{-1}(A[1,.5]) =", np.linalg.solve(Bt, A @ [1, .5]))

# ---------- 对角化:P6.5 ----------
A = np.array([[2., -2], [-1, 3]])
lam, Z = np.linalg.eig(A)
lam, Z = np.real_if_close(lam), np.real_if_close(Z)
print("eig P6.5:", lam, "\nB^{-1} A B =\n", np.linalg.solve(Z, A @ Z))

# ========== 量化 1:因子顺序正交化 = Gram-Schmidt = 回归取残差 ==========
rng = np.random.default_rng(1)
N = 800                                                # 股票数(截面)
size = rng.standard_normal(N)
value = 0.6 * size + 0.8 * rng.standard_normal(N)      # 价值因子与市值相关
mom = -0.3 * value + rng.standard_normal(N)
F = np.c_[size, value, mom]
F = F - F.mean(axis=0)                                 # 去均值后,内积 ∝ 协方差
cos = lambda u, v: u @ v / np.linalg.norm(u) / np.linalg.norm(v)
print("cos(size,value)=%.3f  corr=%.3f" % (cos(F[:, 0], F[:, 1]), np.corrcoef(F[:, 0], F[:, 1])[0, 1]))
G = gram_schmidt(F)
resid_ols = F[:, 1] - np.linalg.lstsq(F[:, :1], F[:, 1], rcond=None)[0] * F[:, 0]
print("GS value-neutral == OLS residual:", np.allclose(G[:, 1], resid_ols))
print("corr matrix after GS:\n", np.corrcoef(G.T))

# ========== 量化 2:协方差矩阵对角化 = PCA;换基后风险可加 ==========
k, n_assets = 3, 10
L = rng.normal(0, 1, (n_assets, k)) * [0.15, 0.08, 0.05]   # 因子载荷
Sigma = L @ L.T + np.diag(rng.uniform(0.01, 0.03, n_assets) ** 2)
lam, Bz = np.linalg.eigh(Sigma)                             # 对称阵:正交特征向量
lam, Bz = lam[::-1], Bz[:, ::-1]
print("top eigenvalues share:", np.round(lam[:4] / lam.sum(), 3))
w = np.full(n_assets, 1 / n_assets)                         # 等权组合
c = Bz.T @ w                                                # 换到特征基:c = B^{-1} w = B^T w
print("var direct = %.6f, sum lam_i c_i^2 = %.6f" % (w @ Sigma @ w, np.sum(lam * c ** 2)))

# ========== 量化 3:反复乘 W —— 特征值决定收敛/发散/振荡 ==========
def iterate(W, x0, T=30):
    x = x0.copy()
    for _ in range(T):
        x = W @ x
    return x
Wmr = np.array([[0.9, 0.05], [0.05, 0.6]])                  # 均值回复的 VAR(1) 系数
print("eig:", np.real_if_close(np.linalg.eigvals(Wmr)), "-> x_30 =", iterate(Wmr, np.array([1., 1.])))
Wosc = np.array([[0.0, -1.05], [1.0, 0.0]])                 # 复特征值,模>1:发散振荡
print("eig:", np.linalg.eigvals(Wosc), "|lam| =", np.abs(np.linalg.eigvals(Wosc)),
      "-> x_30 =", iterate(Wosc, np.array([1., 0.])))

运行输出:

GS (5.23):
 [[ 2.  -0.6]
 [ 1.   1.2]]
GS P5.5:
 [[ 1.      0.6667  0.    ]
 [ 1.     -0.3333  0.5   ]
 [ 1.     -0.3333 -0.5   ]]
x^v = B^{-1} x = [4. 1. 1.]
A' =
 [[ 1.0327 -0.6667]
 [ 0.4167  0.6994]] 
A'[1,0] = [1.0327 0.4167]  B^{-1}(A[1,.5]) = [1.0327 0.4167]
eig P6.5: [1. 4.] 
B^{-1} A B =
 [[ 1. -0.]
 [-0.  4.]]
cos(size,value)=0.562  corr=0.562
GS value-neutral == OLS residual: True
corr matrix after GS:
 [[ 1.  0.  0.]
 [ 0.  1. -0.]
 [ 0. -0.  1.]]
top eigenvalues share: [0.668 0.252 0.068 0.003]
var direct = 0.001338, sum lam_i c_i^2 = 0.001338
eig: [0.9081 0.5919] -> x_30 = [0.0628 0.0102]
eig: [0.+1.0247j 0.-1.0247j] |lam| = [1.0247 1.0247] -> x_30 = [-2.0789  0.    ]

解读:

  • 前几段与原书(5.23)、P5.5、P5.8、(6.40)–(6.45)、P6.5 的数字一致。
  • 去均值后,市值与价值因子向量的夹角余弦(0.562)恰好等于样本相关系数。Gram–Schmidt 第二步的结果与"价值对市值做 OLS 取残差"完全相同,三个正交化后的因子两两相关系数为 0。
  • 模拟的 10 资产协方差矩阵中,前三个特征值解释了约 99% 的总方差,与"3 因子 + 小特质风险"的构造一致。等权组合的方差在原坐标下直接算与在特征基下按 \(\sum\lambda_ic_i^2\) 求和完全相等——换基不改变风险,只把它拆成了互不相关的几块。
  • 均值回复 VAR(1) 的两个特征值 0.908、0.592 都小于 1,30 步后初始偏离几乎消失,剩下的主要是慢特征值方向的分量(\(0.908^{30}\approx0.055\))。慢特征值决定"半衰期":\(\ln 0.5/\ln 0.908\approx7.2\) 期。复特征值、模 1.025 的系统则一边旋转一边发散——在 Hopfield 网络里,这类权值矩阵会导致输出振荡而不收敛。

本章小结

把网络的输入、输出和权值行看成向量空间中的元素,前几章的现象都有了统一的解释:Hamming 网络的前馈层在算内积(相似度),感知机边界是与权值正交的(增广空间中的)子空间,Hebb 学习的好坏取决于原型是否正交。Gram–Schmidt 通过逐次减去投影把无关组变成正交组,投影残差与被投影方向正交是最小二乘的几何本质。向量的列表示依赖于基,换基用 \(\mathbf{x}^v=\mathbf{B}^{-1}\mathbf{x}^s\),同一线性变换在不同基下的矩阵由相似变换 \(\mathbf{A}'=\mathbf{B}_w^{-1}\mathbf{A}\mathbf{B}_t\) 联系。以特征向量为基可把矩阵对角化,迭代 \(\mathbf{a}(t+1)=\mathbf{W}\mathbf{a}(t)\) 于是分解为各特征方向上的独立缩放,\(|\lambda|<1\) 衰减、\(>1\) 增长、负或复特征值振荡。带偏置的网络层是仿射变换而非线性变换。

概念 公式 / 要点
向量空间速判 加法封闭、数乘封闭、含零向量;有界集不是向量空间
相关性判据 方阵行列式 / Gram 行列式为零 / 秩不足
夹角 \(\cos\theta=(x,y)/(|x||y|)\);去均值后即相关系数
Gram–Schmidt \(v_k=y_k-\sum_{i<k}\frac{(v_i,y_k)}{(v_i,v_i)}v_i\)
正交基展开 \(x_j=(v_j,x)/(v_j,v_j)\)
互逆基与换基 \((r_i,v_j)=\delta_{ij}\),\(\mathbf{R}^T=\mathbf{B}^{-1}\),\(\mathbf{x}^v=\mathbf{B}^{-1}\mathbf{x}^s\)
矩阵表示 \(\mathcal{A}(v_j)=\sum_ia_{ij}u_i\):变换后基向量的展开系数作为一列
相似变换 \(\mathbf{A}'=\mathbf{B}_w^{-1}\mathbf{A}\mathbf{B}_t\)
特征方程 \(\mathbf{A}\mathbf{z}=\lambda\mathbf{z}\),\(\lvert\mathbf{A}-\lambda\mathbf{I}\rvert=0\)
对角化 \(\mathbf{B}^{-1}\mathbf{A}\mathbf{B}=\mathrm{diag}(\lambda_i)\);对称阵 \(\mathbf{A}=\mathbf{B}\boldsymbol\Lambda\mathbf{B}^T\)
线性迭代 \(\mathbf{W}^t\mathbf{a}(0)=\sum_ic_i\lambda_i^t\mathbf{z}_i\)
仿射变换 \(\mathbf{W}\mathbf{p}+\mathbf{b}\)(\(\mathbf{b}\ne\mathbf{0}\))不是线性变换

练习

基础

  1. 证明 \(b\ne0\) 时感知机的决策边界不是向量空间;\(b=0\) 时,\(R\) 输入单神经元感知机的边界是几维子空间?(原书 E5.1、E5.2) 答案要点:\(b\ne0\) 时零向量不在边界上;\(b=0\) 时维数为 \(R-1\)。
  2. 判断下列集合是否为向量空间,若不是指出违反哪条:(a) 满足 \(f(0.5)=2\) 的连续函数;(b) 满足 \(f(0.75)=0\) 的连续函数;(c) 非负连续函数(原书 P5.2、E5.6)。 答案要点:(a) 不是,不含零函数、加法不封闭;(b) 是;(c) 不是,没有负元、数乘 \(-2\) 不封闭。
  3. 求椭圆形橙子 \([-1,-1,-1]^T\) 与橙子原型、苹果原型的夹角。(原书 E5.9) 答案:\(\cos\theta\) 分别为 \(1/3\) 与 \(-1/3\),约 \(70.5^\circ\) 与 \(109.5^\circ\)。
  4. 对 \([1,0,0]^T,[1,1,0]^T,[1,1,1]^T\) 做 Gram–Schmidt。(原书 E5.10) 答案:\([1,0,0]^T,[0,1,0]^T,[0,0,1]^T\)。
  5. 一次多项式空间中,\(y=2+4t\) 在基 \(\{1,t\}\) 下表示为 \([2,4]^T\)。用互逆基求它在新基 \(\{1+t,1-t\}\) 下的表示。(原书 E5.13) 答案:\([3,-1]^T\),即 \(3(1+t)-(1-t)=2+4t\)。
  6. 求关于直线 \(x_1+x_2=0\) 的反射在标准基下的矩阵,及其特征值与特征向量。(原书 P6.3) 答案:\(\mathbf{A}=\begin{bmatrix}0&-1\\-1&0\end{bmatrix}\);\(\lambda=1\) 对应 \([1,-1]^T\)(直线上,不动),\(\lambda=-1\) 对应 \([1,1]^T\)(法向,反向)。

进阶

  1. 证明使 \(\|x-ay\|\) 最小的 \(a=(x,y)/(y,y)\),且残差与 \(y\) 正交、\(\|x-ay\|^2+\|ay\|^2=\|x\|^2\)。说明它与 Gram–Schmidt 以及 OLS 回归的关系。(原书 E5.21)
  2. 已知 \(\mathbf{A}\) 的特征值为 1、2,对应特征向量 \([1,1]^T\)、\([1,-1]^T\),求 \(\mathbf{A}\) 在标准基下的矩阵。(原书 E6.12 的类型) 答案:\(\mathbf{A}=\mathbf{B}\boldsymbol\Lambda\mathbf{B}^{-1}=\begin{bmatrix}1.5&-0.5\\-0.5&1.5\end{bmatrix}\)。
  3. 基 \(\{[1,-1]^T,[1,-2]^T\}\),\(\mathbf{A}=\begin{bmatrix}0&1\\-2&-3\end{bmatrix}\)。计算 \(\mathbf{A}\mathbf{v}_1\)、\(\mathbf{A}\mathbf{v}_2\) 在该基下的展开,不另做计算直接写出 \(\mathbf{A}\) 在该基下的矩阵。(原书 E6.18) 答案要点:\(\mathbf{A}\mathbf{v}_1=-\mathbf{v}_1\),\(\mathbf{A}\mathbf{v}_2=-2\mathbf{v}_2\),矩阵为 \(\mathrm{diag}(-1,-2)\)——基向量恰为特征向量时,表示自动对角化。
  4. 量化思考:在 5.8 节代码中,把三个因子的正交化顺序改为(价值、市值、动量),"市值中性的价值因子"与"价值中性的市值因子"分别是什么?哪一个与原始价值因子更相关?这对因子归因意味着什么? 提示:排在第一位的因子保留全部共同部分;归因结果会因正交化顺序而改变,报告时必须注明顺序。
  5. 量化思考:VAR(1) 系数矩阵的特征值为 0.95 和 \(-0.5\)。分别说明两个特征方向上的冲击如何衰减,并求慢方向的半衰期。 答案要点:0.95 方向单调衰减,半衰期 \(\ln0.5/\ln0.95\approx13.5\) 期;\(-0.5\) 方向正负交替、快速衰减。

原书推荐习题:P5.3、E5.8(相关性与秩,联系多重共线性);P5.5、E5.10(Gram–Schmidt);P5.8、E5.13、E5.20(换基);E5.21(投影的最优性,强烈推荐);P6.5、E6.12(对角化与重构);P6.6、P6.7、E6.15(相似变换);P6.9(由样本反求变换,衔接第 07 章);E6.18。


原书对照

本章内容 原书章节 PDF 页码
5.1 动机 第 5 章 Objectives p.122–123
5.2 向量空间、无关、基 5 章 Linear Vector Spaces、Linear Independence、Spanning a Space p.123–127
5.3 内积、范数、正交 5 章 Inner Product、Norm、Orthogonality p.127–129
5.4 Gram–Schmidt 5 章 Gram-Schmidt Orthogonalization p.129–130
5.5 展开、互逆基、换基 5 章 Vector Expansions、Reciprocal Basis Vectors p.130–134
第 5 章结果汇总、已解习题、习题 Summary、P5.1–P5.8、E5.1–E5.21 p.135–156
5.6 线性变换、矩阵表示、相似变换 第 6 章 Linear Transformations、Matrix Representations、Change of Basis p.157–166
5.7 特征值、对角化 6 章 Eigenvalues and Eigenvectors、Diagonalization p.166–170
第 6 章结果汇总、已解习题、习题 Summary、P6.1–P6.9、E6.1–E6.18 p.171–193

原书配套演示:nnd5gs(Gram–Schmidt)、nnd5rb(互逆基)、nnd6lt(线性变换)、nnd6eg(特征向量)。原书两章的延伸阅读是 Brogan《Modern Control Theory》和 Strang《Linear Algebra and Its Applications》;本套教材中对应的系统讲解在第 01 册。