CSYS5030 Week 08 自组织与案例研究讲课总结
CSYS5030 Week 08 讲课总结:Self-organisation and Case Studies
课程:CSYS5030 — Information Theory and Self-Organisation 讲师:Associate Professor Joseph Lizier 对应模块:Module 8 - Self-organisation and case studies 来源:Week 08 seminar 字幕(
Week 08 - Informatio-transcript.txt)+ 讲义Lec6-SelfOrganisation.pdf+ Calculation exercises 官方解答 + Item 4 的三个 sample analysis notebook(IsingSampleAnalyses.ipynb、MNIST-sampleAnalyses.ipynb、AntsAnalyses_Sample.ipynb) Lecture 覆盖:视频讲座要点(自组织)→ Project 问答 → Calculation exercises 讲解 → Item 4 三个数据集介绍 Tutorial 覆盖:Item 4 —— 选一个数据集(Ising / MNIST / Ants),练习提出并回答信息论问题文件说明:讲义文件名里的
Lec6是讲座序号,不是周次;Week 4/Lec4-SelfOrganisation.pdf与本周的Week 8/Lectures/Lec6-SelfOrganisation.pdf内容相同(只有公式编码差异),是旧编号的副本,按内容归到本周。
零、课程版图与本周位置
| 板块 | 周数 | 状态 |
|---|---|---|
| 1. Introduction to Information Theory | Week 1–4 | 已完成:熵、互信息及其条件形式,理解它们问的是什么问题 |
| 2. Empirical Analysis with Information Theory | Week 5–8 | 本周收尾:连续值估计、显著性、怎样对真实数据提出好问题 |
| 3. Information Processing in Complex Systems | Week 9 起(期中假期后) | 信息的存储、传递,时间序列动态,网络推断 |
- 本周之后是一周期中假期,Week 9 在假期后恢复。
- Project proposal 在假期中截止(9 月 30 日)。老师特别更正了讨论区 FAQ 的一处错误:simple extension 不是自动给的(那是去年的做法),需要自己申请,批准后 Canvas 上的截止日期会自动调整。
- 行政:7 点的 tutorial 从 3 个平行班缩减为 2 个(按出勤),原来那间教室的同学去另外两间任一即可。
- 关于期中反馈:讲义链接在每个短视频旁边都有;节奏偏快的问题,老师计划明年把 tutorial 改为 2 小时,并建议先看短视频再来上课,否则课上的总结会显得非常快。
本周的主线:怎样用这些度量去审问(interrogate)真实数据集,提出好问题。上周 tutorial 读三篇论文看别人怎么用,本周让大家自己动手对三个数据集提问。这既是课程学习目标,也是 project 的评分内容。
一、什么是自组织(Self-organisation)
1.1 Game of Life:经典的自组织系统
元胞自动机(cellular automaton, CA):
- 一组格子(cell),每个格子取二值状态(0/1,死/活)。
- 同步更新:时钟每跳一次,所有格子同时更新。
- 每个格子按同一条局部规则,根据自己和邻居在上一时刻的状态更新。
Game of Life 是二维 CA,每个格子看自己 + 8 个最近邻。规则(老师课上先说错了又重说了一遍,按正确版本整理):
| 当前状态 | 条件 | 下一状态 | 直观含义 |
|---|---|---|---|
| 死 | 活邻居数达到某个阈值 | 活(出生) | 周围有足够的生命才能产生并维持生命 |
| 活 | 活邻居太少 | 死 | 没有足够的邻居合作,达不到「临界规模」 |
| 活 | 活邻居太多 | 死 | 对环境的过度开发 |
| 活 | 邻居数在中间范围 | 保持活 | — |
(标准的 B3/S23 规则即「死格恰有 3 个活邻居出生;活格有 2 或 3 个活邻居存活」,具体阈值可在 NetLogo 的 model info 里查看。)
观察(讲义上的引导问题):
- 从随机初始状态出发,很快出现静止图案、闪烁图案(blinker)、移动图案(glider),看起来像「生命」。
- 中间态和最终态比初始随机态有序得多,相似的图案反复出现在不同位置。
- 没有中心控制:格子只按与邻居的局部交互更新。
- 最终密度很稳健:几乎不依赖初始密度,都趋向相近的值。
其他自组织例子(课堂上同学给出):鸟群、蚂蚁觅食、道路交通(有红绿灯这种部分外部控制,但大量结构是自发形成的)、大脑(没有哪个神经元「负责」)。
1.2 定义
Sayama:Self-organization is a dynamical process by which a system spontaneously forms nontrivial macroscopic structures and/or behaviors over time.
文献中反复出现的两个关键特征:
- 组织度随时间增加(an increase in organisation over time)
- 动态不由任何中心化或外部控制主体引导(dynamics not guided by any centralised or external control agent)
老师的个人立场:第 2 条不必绝对——不要求完全没有外部控制,只要外部控制不是全部(如交通)。
二、怎样直接度量组织度?
很自然的冲动是找「一个度量统治一切」(one measure to rule them all),比如能告诉我们 Game of Life 比某个随机规则的 CA 有更多自组织。讲义列了三种思路:
2.1 熵的补(complement of randomness / entropy)
- 思路:熵 ≈ 不确定性/随机性,熵越低 → 越有组织。
- 有道理的一面:如果最终全是 0 或全是 1,熵很低,确实「有序」。
- 反例:随机图案和棋盘格图案的单格熵一样高(0/1 各半),但棋盘格显然非常有序。
- ⟹ 直接测单变量的熵不能刻画自组织:它看不到变量之间的结构。
2.2 部分之间的互信息:Integration / Multi-information
既然 MI 衡量关系强度,那么「系统里关系越多 → 越有组织」。但 MI 是成对的,于是推广到多变量:
- 即边际熵之和减联合熵。
时退化为普通 MI。 - JIDT
中有实现:
infodynamics.measures.*.*.MultiInfoCalculator[TYPE]。 - 讲义注:同学在课上指出幻灯片里公式分隔符应该用逗号,老师承认这是一直忘了改的笔误。
老师为什么不太喜欢它:
- 前几周反复强调「一个互信息里只能有一个分号」,multi-information 打破了这一点。
- 老师非常看重链式法则,因为它保证分解信息时不重复计数;multi-information 会重复计数(double counting)。
- 作为第一次尝试可以,但「也许这个问题本身就没有令人满意的答案」。
2.3 Statistical complexity(不在本课范围)
- Shalizi 等人基于最优预测器的度量,老师个人最喜欢它作为组织度的度量(讲义:主观偏好)。
- 但超出课程范围,有兴趣看参考文献。
- 讲义原话的权衡:approach 3 更好(主观),approach 2 对读者更易懂、也更容易计算。
2.4 课堂问答:和随机组织下的分布比较?
同学提议:把当前的概率分布和「完全随机组织」时的分布比较,看偏离多少。
老师回应:不是坏主意,和一些度量随机性的方法(如寻找系统的最小描述长度 MDL,隐含地与随机化系统比较)相关,但同样有「一个总指标」的利弊。
补充一个所有系统级度量都要面对的问题——维度灾难:
一个 100×100 的格子系统就是 10,000 维。想在整个系统上估计某个信息论量?「祝你好运」。 这也是为什么去看子系统、局部的动态往往更现实。
三、替代视角:刻画信息结构的多个方面
Sayama 指出:自组织本质上是信息的结构化(information structuring)。老师采纳这个视角,并主张:
与其追求一个总指标,不如去刻画信息结构的多个不同方面,以及它们如何随时间变化。
讲义列出的可研究方面:
| 方面 | 例子 |
|---|---|
| 时间结构(temporal structure) | 系统如何随时间「记住」信息 |
| 变量间关系 | 同一时刻不同变量之间的关系 |
| 空间结构 | 沿这个方向 vs 那个方向,信息如何组织;层级系统的自上而下结构 |
| 信息存储(information storage) | Module 10 |
| 信息传递(information transfer) | Module 11 |
| 与任务相关的方面 | 计算神经科学:被试在扫描仪里做不同认知任务时,脑区活动结构如何变化 |
本课的方法论:用信息论刻画复杂系统中信息处理的结构及其自组织,以及这些结构如何随时间变化。
老师说这看起来像「测不了自组织就换个说法」的托辞,但他不这么看:这比一个简单数字丰富得多,能问的问题更多。
讲义总结:
- 自组织 = 在没有外部控制的情况下,组织度随时间增加。
- 度量它的关键是度量系统中的组织/结构。
- 两条路:系统层面直接度量;或考察信息结构化的多个方面。
- 下一步:复杂系统中的信息处理(Module 9)。
推荐材料:Module 8 Item 5 是 Melanie Mitchell 与 Jim Crutchfield 的访谈(约 10 分钟)。Crutchfield 是用信息论分析复杂系统的先驱,访谈中谈到信息结构与信息处理的关系,并以蚁群中的信息结构为例——正好对应 Item 4 的蚂蚁数据集。
主要参考:Lizier (2013) The local information dynamics of distributed computation in complex systems §2.1.2;Prokopenko, Boschetti & Ryan (2009) An Information-Theoretic Primer on Complexity, Self-Organization, and Emergence。
四、Project 问答:随机布尔网络的数据怎么采
课堂上没人提问,课间有同学私下问用随机布尔网络(random Boolean networks)生成数据。老师的建议(对任何模拟数据都适用):
- 平稳性:从随机初态出发会经历暂态(transient),最终进入有序状态,所以数据不是完全平稳的。常规做法是丢掉开头若干步。
- 丢多少、采多长取决于网络规模:
- 小网络很快就稳定,丢太多就什么都采不到;
- 大网络稳定得慢,可以先丢更多再采,也能采很久。
- 没有唯一正确答案,关键是给出合理的理由(justification)。
- 多次运行合并:对每组参数,采样多个网络;对每个网络,从多个初始状态各跑一段,把同一网络的数据放进同一个计算;再对同参数的多个网络取平均。
- 可以参考老师组里关于随机布尔网络的已发表研究中的参数设置(网络规模、暂态步数等)。
五、Calculation exercises 讲解(第一板块复习)
老师强调:这些题是期末的好练习,但考试会更简单(手写、时间短)。四舍五入不在意,单位非常在意——答案是 bits 就写 bits。
5.1 Q1:从联合分布出发
联合分布(由解答反推):
| 1/3 | 1/3 | |
| 1/4 | 1/12 |
(a) 最优编码每个取值至少需要多少 bit? —— 题目不直接说度量名,要自己识别:针对单个取值 ⟹ Shannon 信息量(pointwise)。先求边际(列和):
(b) 条件熵
, bits bits bits
它是否小于
- 由基本性质
。 - 但题目问的是严格小于,必须排除等号:等号当且仅当
独立。 - 从表上看:
下 等概率, 下不等概率 ⟹ 的分布随 变化 ⟹ 不独立 ⟹ 严格小于。
考点:知道边界情况(等号何时成立),并能从表上判断是否落在边界上。
(c) 期望 X 包含多少关于 Y 的信息 ⟹ 平均 MI:
不看表,Y 关于 X 的信息一样多吗? —— 一样,MI 对称。
5.2 Q2:Guess Who 运动角色卡
(a) 「是否穿白衣」和「是否棕发」共同持有的信息:
- 措辞陷阱:「是否穿白衣」指的是变量而不是某个取值 ⟹ 平均 MI;如果说「他穿着白衣」才是 pointwise。
- 「共同持有(held commonly)」= Venn 图的交集 = MI;「合起来持有(held all together)」才是联合熵。
- 结果:
, , bits。
(b)(课上跳过)已知「打网球」时的信息 ⟹
以某个具体取值为条件的 CMI
(c) 重点题:「携带鞋子」对「有工作」是误导性(misinformative)的约束
设
- 数出携带鞋子的有 5 人(Gary、Wayne、Julie、Tia、Fabio)⟹
- 已知 3 个携带鞋子的人有工作 ⟹
,于是 - 设不携带鞋子但有工作的人数为
⟹ ,
| 行和 | |||
|---|---|---|---|
| 2/24 | 3/24 | 5/24 | |
| 19/24 |
「误导性」⟹ pointwise MI 为负:
人数是整数 ⟹
考点:题目可能不直接说度量名,而是给直观说法——「misinformative」就是 pointwise MI < 0。别忘了概率表本身带来的约束(老师现场差点漏掉上界)。
(d) 若
5.3 Q3:随参数 α 变化的信息量曲线
同事画了
- 所有项之和为 1(与 α 无关,但要检查);
- 每一项都在
——给出 α 的上下界(例如 , 等); - 行和、列和也要在
——但只要每项在 且总和为 1,这条自动满足。
同事的图只画了
考试中若出类似题,会给出库函数的函数头,让你写调用代码。
5.4 Q4:10 个玩家的数据分析
| 问法 | 翻译成度量 |
|---|---|
| 对哪个玩家的出招最不确定 | 各变量的熵,取最大 |
| 告诉你玩家 2 的出招,同一局里谁的不确定性减少最多 | 以 V2 为一方的 MI,取最大(同一行 = 同一局) |
| V6 的这个取值关于 V1 各取值的信息 | pointwise MI |
| 为什么有些 V1 符号算不出来 | 这些符号从未与 V6=1 同时出现,所需条件概率无定义,局部 MI 无定义 |
| 是否有玩家完全基于 V7 出招 | 需同时满足: |
最后一条为什么两个条件都要?
- 只有 MI > 0:可能有关系,但没解释掉全部不确定性。
- 只有
:可能是本来就没有不确定性(熵为 0),这时 MI 也为 0,并不说明它「基于」V7。
5.5 Q5:跨时滞的 MI——样本对齐
问
- 源(较早的变量):去掉最后一个样本
- 目标(较晚的变量):去掉第一个样本
mi = mutualinformation_empirical(v1[:-1], v2[1:]) |
这样两段的对应位置正好相差一个时间步——和 Scissors-Paper-Rock 分析里一样。
六、关于期末考试(课上答疑)
- 纸笔闭卷,可用计算器做手算(如上面 Q1 那类)。
- 会有写代码的题,但相对简单:例如给你一个算熵/互信息的简单库的函数头,让你写代码计算某个量。要求写真实代码而不是伪代码,但看的是逻辑流程,漏个分号不扣分——「除非是互信息里多了一个分号」。
- 第一板块(自写库)和 JIDT 的内容都在考试范围:可能给你一段 AutoAnalyser 生成的代码,让你修改来实现某个变化。
- 不需要记住确切的方法名或属性名——那正是 AutoAnalyser 存在的意义。
- 与 Calculation exercises 的关系:考的概念相同,但题目更简单(take-home 可以出得更复杂)。
(详细的样题分析见 Week 13 总结。)
七、Item 4:对复杂系统提出信息论问题
7.1 任务要求
从三个数据集中选一个(时间只有一个多小时),思考:
- 关于该系统的组织,可以问哪些重要问题?——模式与关系、随时间的动态、随参数的变化……
- 问题必须能用信息论语言表述。例如「两个变量关系有多强」⟹ MI。
- 具体到随机变量:Ising 里「一个格子告诉我们关于另一个格子的信息」——哪个格子?右边相邻的?上方第 5 个?
- 哪些变量可以视为同质(homogeneous)?
- 用哪个估计器、怎么设参数?可能遇到什么挑战?
7.2 同质性:什么时候可以把多个变量的样本合并?
回顾 Scissors-Paper-Rock:
| 情形 | 能否合并 | 理由 |
|---|---|---|
| Ising 模型的所有格子 | ✅ 合理 | 每个格子以相同方式运作,可以看作同一底层变量的不同实现 |
| SPR 中不同同学的出招 | ❌ 不太合理 | 老师让每个人用不同的算法出招,并非同一底层变量 → 应分别计算 |
合并的好处是样本量大幅增加(Module 10/11 的 CA 分析会大量使用这一点)。
老师强调:这次不需要完美的问题,重点是动手开始、玩一玩、看它把你带到哪里。如果实在没思路,三个数据集都有 sample analysis,可以先不看、自己做完再对照。
7.3 数据集一:Ising 模型
系统:二维格子,每个格子是磁偶极子,向上或向下。
- 邻居越多朝上,自己下一步越可能朝上(邻居形成的磁场)。
- 这种影响受温度调制:
- 低温:几乎完全跟随邻居 → 锁定为全上或全下的均匀态;
- 高温:能量太多,各自乱翻 → 近似随机图案;
- 临界点(本模型标注约 T ≈ 2.27):相变,出现复杂系统的典型特征——无标度的团簇大小、长空间关联长度、长暂态时间,大块的全上/全下区域长时间存在。
可问的问题:偶极子之间关系的强度如何随空间距离、时间、温度变化?
Sample analysis:MI vs x 方向距离 vs 温度
calc = MutualInformationCalculatorDiscrete(2, 2, 0) # 二值→二值,无时滞 |
- 考察温度
[2.00, 2.20, 2.26, 2.27, 2.28, 2.29, 2.34, 2.54]。 - 要点:
- 每个格子的时间序列作为样本;对固定距离
xDiff,所有格子对一起addObservations(同质性假设)。 - 用
%处理周期边界。 - 第二张图:固定距离 15,画 MI vs 温度——观察相变点附近的长程关联。
- Notebook 提示:有限尺寸系统的转变点通常会向更高温度偏移(相对理论临界值)。
- 每个格子的时间序列作为样本;对固定距离
- 老师提醒:NetLogo 网页版的磁化强度曲线看起来不对,建议用桌面版 NetLogo;也可以直接下载预生成数据。
7.4 数据集二:MNIST
- 机器学习的「Hello World」:28×28 像素手写数字图像 + 类别(0–9),共 70,000 个样本(train + test)。
- 预处理:像素值阈值 15 二值化(看直方图后选的)。
- 加载:默认用
torchvision下载(需pip install torch torchvision),也可读.mat文件。
经典用法:特征选择——哪个像素携带关于类别最多的信息?(老师自嘲说本想避免直接给提示,结果一口气说了 5 个。)其他可问:哪两个像素关系最强?这种关系在图像空间上如何变化?
Sample analysis 1:每个像素到类别的 MI
calc = MutualInformationCalculatorDiscrete(2, 10, 0) # 二值像素 → 10 类 |
Sample analysis 2:按数字分组的「部分 pointwise」MI
- 用
computeLocalFromPreviousObservations得到每个样本的局部 MI,再只对某个数字的样本取平均。 - 并排画「该数字的平均像素图」和「该数字的 MI 图」:看哪些像素对识别这个数字最有信息量(包括像素「不亮」带来的信息)。
7.5 数据集三:蚂蚁觅食(NetLogo Ants)
系统:蚂蚁从中央巢穴出发随机游走找食物(3 个食物源);找到后返回巢穴,沿途释放信息素;其他蚂蚁可以沿信息素找到食物,并能根据信息素蒸发的梯度判断方向(白色 = 新留下的,绿色 = 较旧的)。信息素轨迹把蚂蚁「锁定」在特定方向和区域——这就是信息结构化。
可问的问题:蚂蚁之间的对齐?轨迹形成时关于蚂蚁位置的不确定性是否下降?
数据:positionsx.txt、positionsy.txt、headings.txt(行
= 时间步,列 = 蚂蚁)。
Sample analysis:
| 分析 | 估计器 | 做法 | 发现 |
|---|---|---|---|
| 1. y 位置的多样性 vs 时间 | Discrete,8 个箱 | 转置数据:每个时间步把所有蚂蚁的 y 位置当作样本,算熵 | 形成轨迹时熵下降,最大的 3 次下降对应 3 条食物轨迹维持期 |
| 2. x 位置 → 朝向的 MI vs 时间 | KSG(连续值) | 每个时间步,以所有蚂蚁为样本 | 形成轨迹时 MI 上升(位置能预测朝向) |
| 3. 所有蚂蚁对之间 x 位置的平均局部 MI | Discrete,8 个箱 | 对每一对 (s,d) 算 MI,取局部值并对所有对平均 → 得到随时间变化的曲线 | 同样在轨迹形成时上升 |
注意分析 1 的样本组织方式和平时相反:通常每只蚂蚁(变量)一列;这里把同一时刻不同蚂蚁当作同一变量的样本——这本身就是一个同质性假设。分析 3 则展示了用 pointwise 值把平均量「展开」到时间轴上的技巧。
八、本周考点速记 / 易错点
- 自组织定义(Sayama):系统自发地随时间形成非平凡宏观结构/行为。两个特征:组织度随时间增加 + 无中心/外部控制(老师:不要求完全没有,只要不是全部)。
- CA:二值格子、同步更新、所有格子用同一条局部规则。Game of Life:二维、8 邻居、出生/死亡/存活三条规则。
- 熵的补不行:随机图案与棋盘格单格熵相同,但组织度完全不同。
- Multi-information
;缺点:违反「一个分号」原则、重复计数、高维时难以估计(10,000 维)。 - Statistical complexity 是老师偏好的度量,但不在课程范围。
- 本课立场:刻画信息结构化的多个方面(时间、空间、变量关系、存储、传递、与任务相关),而不是一个总指标。
- 从直观措辞识别度量:单个取值的最优编码 → Shannon 信息量;「misinformative」→ pointwise MI < 0;「共同持有」→ MI;「完全基于」→ MI > 0 且条件熵 = 0。
- 「是否穿白衣」是变量(平均量),「穿着白衣」是取值(pointwise 量)。
- 严格不等号要排除等号情形:
当且仅当独立。 - 约束题别忘了概率表合法性带来的界(每项在
)。 - 跨时滞 MI:源去尾、目标去头再对齐。
- 局部 MI 在两个取值从未同时出现时无定义。
- 同质性:变量以相同方式运作才可合并样本(Ising 格子 ✅,不同策略的玩家 ❌)。
- Ising:低温均匀、高温随机,临界温度约 2.27 处出现长程关联;有限尺寸系统转变点偏高。
- 模拟数据:丢弃暂态、多初始条件多网络合并,并说明理由。
- 考试:纸笔、计算器、简单代码题看逻辑;单位必须写。
九、下周预告
期中假期后进入第三板块:
- Week 9 — Module 9: Information processing in complex systems:信息动力学的哲学(把计算看作存储、传递、修改),熵率作为第一步。
- 之后依次是 信息存储(AIS)、信息传递(TE)、有效网络推断。