CSYS5030 Week 13 课程总结与考试复习讲课总结

CSYS5030 Week 13 讲课总结:Wrap-up 与考试复习

课程:CSYS5030 — Information Theory and Self-Organisation 讲师:Associate Professor Joseph Lizier 对应模块:Module 13 - Wrap-Up 来源:讲义 PDF Week 13/Lectures/Lec11-InfoTheoryWrapUp.pdf + 样卷 Exam Prep/CSYS5030-Exam-Sample.pdf(Canvas 放在 Module 13 页面)+ Week 8 课上关于考试的答疑(见 Week 08)。本周没有转录稿。样卷没有官方答案,第三节的解答是我按课程内容自己推出的,仅供参考。 本周覆盖:课程回顾与收尾观点 → 考试形式 → 样卷解析 → 全课程考点总览


一、Wrap-up 讲义

1.1 课程学习目标(6 条)

  1. 理解基本的信息论度量,以及面向时间序列的高级度量,并用它们分析和剖析复杂系统的本质、结构、功能与演化;
  2. 培养可用于复杂系统分析与设计的科学编程能力;
  3. 能理解并扩展一个软件的设计(课上技术 + 自己的阅读);
  4. 能在选择和使用信息论度量与软件工具分析复杂系统时做出有依据的决定;
  5. 能对真实数据集——尤其是自己专业领域的数据——建立信息论分析;
  6. 能批判性地评估用信息论研究自组织和复杂系统关系的工作及其洞见。

讲义首页上的公式就是整门课的起点: 。

1.2 十讲内容清单

讲 主题 对应周
1 信息论与熵导论 W1–W2
2 什么是信息?(MI、CMI) W3–W4
3 JIDT 入门 W5
4 信息论估计器与 JIDT W6
5 统计显著性与欠采样 W7
6 信息论与自组织 W8
7 复杂系统中的信息处理 W9
8 信息存储 W10
9 信息传递 W11
10 有效网络推断 W12

(讲义文件名中的 LecN 就是这个讲次编号;课程又按 Module 编号、按周上课,三者不完全一致。)

资源:教材 Cover & Thomas、MacKay、Bossomaier et al.、Lizier (JIDT);软件 JIDT。

1.3 收尾观点:语境与视角

  • 信息论有很多视角;老师给的是他自己的——聚焦复杂系统的经验分析。
  • 必然略去了很多:
    • 传统的信息论与编码:信道容量(有噪信道编码定理)、信道容量与信噪比的关系、编码等;
    • 在复杂系统中的其他用法:最大熵方法、信息瓶颈、传感器-执行器回路、相变(见 Bossomaier et al. 2016);
    • 研究前沿:信息论与热力学、部分信息分解(PID,仍在发展)。

1.4 信息论 = 问题与答案

你的估计器总会给你一个答案。但它回答的,是你以为自己在问的那个问题吗?

  • 认真思考你想问数据什么问题,以及信息论是否能、又如何帮你得到答案。
  • 这句话可以串起整门课的「坑」:
    • 用 Gaussian 估计器得到 ≈0,问的其实是「有没有线性关系」(W6–W7);
    • 滞后 MI 大,可能只是自相关或存储,而不是传递(W7、W11);
    • 成对 TE 显著,可能来自共同驱动(W11–W12);
    • 偏差修正后的 AIS 变负,说的是「数据不够证实」,不是「没有影响」(W10)。

1.5 信息论与复杂系统

  • 信息论是研究复杂系统动态与关系的非常强大的方法:
    • 优点:与数据类型无关、能捕获非线性、数学上严格;
    • 复杂系统中我们关心的许多特征(如信息处理)可以直接用信息论度量/建模。
  • 但 Shannon 本人在《The Bandwagon》(1956)中著名地主张:应把信息论的应用限制在通信工程里。
  • 讲义留下的问题:你怎么看?(这门课的立场显然是:只要清楚自己在问什么问题,信息论在复杂系统中大有可为。)

二、考试形式(样卷封面 + Week 8 答疑)

项目 内容
时长 答题 1.5 小时 + 阅读 10 分钟
条件 闭卷;可带双语词典、非编程计算器;无其他电子设备
Section A 20 道选择题,每题 1 分,共 20 分,填在 Gradescope 答题卡上
Section B 3 道简答题,共 20 分,写在试卷上(可用附加页)
提供 公式表(、、 、、 的定义)+ 样例信息论库的函数说明

样例库(Python 或 Matlab;都是 plug-in 估计,离散变量):

entropy_empirical(xn)
conditionalentropy_empirical(xn, yn)
jointentropy_empirical(xn, yn)
mutualinformation_empirical(xn, yn)
conditionalmutualinformation_empirical(xn, yn, zn)
  • 参数是样本数组,xn[i] 是第 i 个样本;多维变量用二维数组(行 = 样本,列 = 维度);
  • 多个参数时,相同下标的样本是对应样本。

老师在 Week 8 说过的要点:

  • 单位必须写(bits / nats),四舍五入不在意;
  • 代码题看逻辑流程,要写真代码但语法小错不扣分;不会写某个语法可以用注释描述拿部分分;
  • 也可能给 AutoAnalyser 输出让你修改;不需要记方法名、属性名;
  • 考的概念和 Calculation exercises 相同,但更简单。

三、样卷逐题解析(自拟解答,非官方)

Section A:选择题

(1) 掷一个六面骰子后告诉我结果,给了我多少信息? A 0.77 / B 2.58 / C 2 / D 信息不足

→ B(2.58 bits),按公平骰子: bits。 (严格说信息量取决于分布;题目没说「公平」,如果出题意图是考「信息依赖于概率」则可能选 D。我倾向 B,作为默认的均匀假设。)

(2) ____ 之于熵,就像 pointwise MI 之于 MI。 → C Shannon 信息量: , 。

(3) ____ 之于 bits,就像厘米之于英寸。 → A nats:同一个量的不同单位(ln vs log₂)。

(4) → D: bits。

(5) 的熵 → D 1.86 bits: 。

(6) 字母表 {0,1,2,3},只知 → C 两者都对:

  • bit ✓;
  • 剩下 0.5 的概率无论怎么分,熵最小是全放在一个符号上: bit ⟹ bit ✓。

(7) : (0.7, 0.1, 0.1, 0.1),: (0.7, 0.3) → A:

  • bits > bits ✓;
  • ,相等,不是大于;
  • 只有边际分布,无法判断 。

(8) 时总成立的是 → B:知道 后 没有不确定性。 (C 不一定:若 ,MI 也是 0——Week 8 讲 Calculation exercise 时专门强调过。)

(9) 都是真实温度 的近乎完美的拷贝 → A 大部分信息是冗余的。

(10) Guess Who 已缩小到 16 个,最优是/否问题的下界 → D 4: 。

(11) 表 ,哪个是误导性信息 → B:

边际 , :

(A: ;C: 。)

(12) Venn 图总面积 α+β+γ → E(B 和 C): 。

(13) Gaussian MI = 0.0010 nats (p = 0.28),KSG MI = 0.1347 nats (p = 0) → C:检测到非线性关系,但检测不到线性关系。(就是 Week 6–7 心跳-呼吸数据的情形!)

(14) Box-kernel 估计器相对 KSG 的优势 → E 都不是:两者都能测非线性、都能做显著性检验、都能处理多维变量。(KSG 通常还更好:自适应宽度、偏差修正。)

(15) 周期 4 的 0-0-1-1,捕获全部过去影响的最小 k → C 2:k=1 时「0 之后」可能是 0 或 1;k=2 时 00→1、01→1、11→0、10→0 完全确定。(Week 10 合成序列 (b) 正是这个,k=1 时 AIS ≈ 0,k=2 时 1 bit。)

(16) TE 相对 MI 的关键优势 → B:能识别一个过程的过去对另一个过程状态转移的有向预测性影响。(A 错:两者的平均值都非负,局部值都可负;C 错:TE 维度更高,需要更多样本。)

(17) 图示: 列中框住 标为 C; 列中框住 标为 B; 标为 A。TE(源嵌入 1,目标嵌入 2) → A 。

(18) 自相关图:滞后 1 处约 0.95,平滑衰减,直到约滞后 15 都显著,之后才进入显著性带内 → C 两者都对:

  • 强而长的自相关 ⟹ KSG 近邻会被时间相邻样本污染,应使用 dynamic correlation exclusion(Theiler window ≈ 15);
  • 强自相关意味着过去能很好地预测下一个值(至少线性部分)⟹ 应预期显著的 AIS。

(19) 测 还是 → C 两者都有用:信息回归中二者按不同顺序出现,相加都等于集体 TE;一个去冗余、一个引入协同,结合起来才完整。(A、B 各说对了一半;D 错,统计依赖本身就是要研究的。)

(20) 有效网络推断的定义 → D:构建有向网络,提供能复现并解释每个节点时间序列更新的最小多变量模型。(A 是功能网络;B 是结构网络;C 是有向功能网络。)

Section B:简答题

(21)(8 分)Guess Who 不完整概率表

已知 , , , 。

(a)(6 分) 对 是误导性的,α 的约束?

误导性 ⟹ ⟹ 。

α 是人数(整数)⟹ 。概率表合法: ⟹ 。

(这就是 Calculation exercise Q2c 换了个外壳。)

(b)(2 分)若 α = 5,得知角色 共获得多少信息?

,联合事件的 Shannon 信息量:

(22)(5 分)证明

从 出发,把每个条件熵按 展开:

另一边:

两式相同,得证。∎(关键:把 当作一个联合变量使用 。)

(23)(7 分)多人游戏数据的代码(行 = 一局,列 = 玩家 )

# a) 每个玩家出招的不确定性(熵)
numPlayers = data.shape[1]
for i in range(numPlayers):
print("H(V%d) = %.4f bits" % (i + 1, entropy_empirical(data[:, i])))

# b) 玩家 1、2、3 的联合不确定性:把三列作为一个多维变量
H123 = entropy_empirical(data[:, 0:3]) # 二维数组 = 多维变量
print("H(V1,V2,V3) = %.4f bits" % H123)
# 也可以用 jointentropy_empirical(data[:, 0], data[:, 1:3])

# c) V1 在上一局的出招,对哪个其他玩家下一局出招的信息最多
bestPlayer, bestMI = -1, -1.0
for j in range(1, numPlayers): # 排除玩家 1 自己
# 源去掉最后一行,目标去掉第一行 → 对齐 n 与 n+1
mi = mutualinformation_empirical(data[:-1, 0], data[1:, j])
if mi > bestMI:
bestPlayer, bestMI = j, mi
print("Player V%d: I = %.4f bits" % (bestPlayer + 1, bestMI))

得分点:a) 循环 + 熵;b) 联合熵用多维变量而不是三个熵相加;c) 时滞对齐([:-1] 与 [1:])+ 求最大 + 排除自己。


四、全课程考点总览(按周)

W1–W2:不确定性与熵

量 公式 要点
Shannon 信息量 单个取值;罕见事件信息多;最优编码长度下界
熵 ,均匀时最大
联合熵 ,独立时取等
条件熵 ,独立时取等; ⟺ 由 决定
单位 bits(log₂)、nats(ln) 1 nat = 1.443 bits;必须写单位

W3–W4:互信息与条件互信息

量 公式 要点
MI 对称、非负; ⟺ 独立;
pointwise MI 可为负 = 误导性;共现未出现时无定义
CMI 条件化去冗余、引入协同(XOR);可大于或小于 MI
链式法则 不重复计数
措辞 「共同持有」= MI;「合起来」= 联合熵;「是否 X」= 变量;「是 X」= 取值

W5–W6:JIDT 与估计器

  • JIDT 流程:构造 → 设属性 → initialise() → setObservations/addObservations → computeAverageLocalOfObservations();局部值 computeLocalOfPreviousObservations()。
  • 估计器:Discrete(plug-in)、Gaussian(只看线性,model-based,样本需求少)、Kernel(box 宽度 ≈ 不超过标准差)、KSG(近邻、自适应、非线性、内置偏差修正、可为负)。
  • 有限样本:偏差与方差;离散 plug-in MI 有正偏差。

W7:统计显著性

  • :独立;surrogate:打乱(独立样本)或旋转(时间序列)源,保留边际、破坏联合;CMI 检验时保持目标与条件变量在一起。
  • p 值 = surrogate ≥ 测量值的比例;默认 100 个 surrogate 太少;bootstrap p 值是随机的。
  • 解析 χ²:Discrete、Gaussian 有,KSG 没有;快、确定但近似。
  • 偏差修正: 。样本量启发式: 状态配置数(最好 )。
  • 自相关 → DYN_CORR_EXCL(Theiler window);非平稳数据取(log)差分。
  • 不显著 ≠ 没有关系。

W8:自组织

  • Sayama 定义;两特征(组织度增加、无中心/外部控制);熵的补、multi-information( )、statistical complexity;刻画信息结构的多个方面。
  • 同质性判断与样本合并。

W9:信息处理与熵率

  • 计算 = 存储 + 传递 + 修改;内禀计算分布式、持续进行。
  • 熵率 = (平稳时)。

W10:信息存储

  • , ;局部 AIS 负值 = 模式被打破。
  • k 的选择:Ragwitz / 最大化偏差修正 AIS / 非均匀嵌入;JIDT AUTO_EMBED_METHOD。
  • 周期序列最小 k;CA rule 54 k≈15,blinker/domain = 存储;英文 k=3。
  • Excess entropy / predictive information = 全部存储;AIS = 用于下一个值的存储。

W11:信息传递

  • ;局部 TE;Gaussian TE ≡ Granger(×2)。
  • 条件于过去:与存储对照、状态转移、协同;PID:AIS = 独有M + 冗余,TE = 独有Y + 协同。
  • TE ≠ 因果。参数:目标嵌入 → 源嵌入 → 延迟 u 取 TE 最大。
  • 条件 TE:去共同驱动/路径冗余、加门控协同;成对与条件 TE 都需要。
  • Heartbeat:局部 TE = ,平均 0.3735 bits;glider = 传递。

W12:有效网络推断

  • 功能(无向)/ 结构(因果)/ 有效(有向最小解释模型)。
  • 成对 TE + p 值 + 多重比较(Bonferroni α/[G(G−1)]、FDR);成对方法不处理冗余/协同。
  • 贪心算法:嵌入目标 → 空集 → 条件于 P 选最大显著 CTE → 循环 → 剪枝 → 整体检验;IDTxl(max statistics、非均匀嵌入)。

五、常见陷阱清单

  1. 漏写单位,或 bits/nats 混用(KSG/Gaussian 在 JIDT 默认 nats,Discrete 默认 bits)。
  2. 把 pointwise 量当平均量(或反之)——看题目说的是变量还是取值。
  3. 「严格小于」时忘了排除等号情形(独立)。
  4. 约束题忘了概率表合法性给出的另一侧界。
  5. 「完全基于」只写了一个条件——需要 MI > 0 且条件熵 = 0。
  6. 时滞 MI/TE 样本没对齐(源去尾、目标去头)。
  7. 联合熵用「各自熵相加」代替(只有独立时才成立)。
  8. 认为 CMI 总是 ≤ MI(协同时会更大)。
  9. 认为 KSG 结果为负是 bug(只是「与 0 一致」)。
  10. 认为 Gaussian 估计 ≈ 0 就是「没有关系」(只是没有线性关系)。
  11. 认为不显著 = 没有关系(可能只是样本不够)。
  12. 认为 TE 显著 = 因果(可能是共同驱动;因果源也可能只贡献存储)。
  13. 认为条件 TE 一定比成对 TE「更正确」(两者都需要)。
  14. 混淆有效网络与有向功能网络、结构网络。
  15. 用很大的 k 却只有很少样本(欠采样;偏差修正 AIS 会变小甚至为负)。
  16. 忘记在扫描多个延迟/源对时做多重比较校正。

六、各周笔记索引