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.

文献中反复出现的两个关键特征:

  1. 组织度随时间增加(an increase in organisation over time)
  2. 动态不由任何中心化或外部控制主体引导(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]。
  • 讲义注:同学在课上指出幻灯片里公式分隔符应该用逗号,老师承认这是一直忘了改的笔误。

老师为什么不太喜欢它:

  1. 前几周反复强调「一个互信息里只能有一个分号」,multi-information 打破了这一点。
  2. 老师非常看重链式法则,因为它保证分解信息时不重复计数;multi-information 会重复计数(double counting)。
  3. 作为第一次尝试可以,但「也许这个问题本身就没有令人满意的答案」。

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)生成数据。老师的建议(对任何模拟数据都适用):

  1. 平稳性:从随机初态出发会经历暂态(transient),最终进入有序状态,所以数据不是完全平稳的。常规做法是丢掉开头若干步。
  2. 丢多少、采多长取决于网络规模:
    • 小网络很快就稳定,丢太多就什么都采不到;
    • 大网络稳定得慢,可以先丢更多再采,也能采很久。
    • 没有唯一正确答案,关键是给出合理的理由(justification)。
  3. 多次运行合并:对每组参数,采样多个网络;对每个网络,从多个初始状态各跑一段,把同一网络的数据放进同一个计算;再对同参数的多个网络取平均。
  4. 可以参考老师组里关于随机布尔网络的已发表研究中的参数设置(网络规模、暂态步数等)。

五、Calculation exercises 讲解(第一板块复习)

老师强调:这些题是期末的好练习,但考试会更简单(手写、时间短)。四舍五入不在意,单位非常在意——答案是 bits 就写 bits。

5.1 Q1:从联合分布出发

联合分布(由解答反推):

1/3 1/3
1/4 1/12

(a) 最优编码每个取值至少需要多少 bit? —— 题目不直接说度量名,要自己识别:针对单个取值 ⟹ Shannon 信息量(pointwise)。先求边际(列和):

(b) 条件熵 —— 用定义要先求条件概率,更快的是用 :

  • , bits
  • 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 ;只看 3 个打网球的角色, 互为冗余,结果 bits。

(c) 重点题:「携带鞋子」对「有工作」是误导性(misinformative)的约束

设 = 携带鞋子, = 有工作,共 24 个角色:

  • 数出携带鞋子的有 5 人(Gary、Wayne、Julie、Tia、Fabio)⟹
  • 已知 3 个携带鞋子的人有工作 ⟹ ,于是
  • 设不携带鞋子但有工作的人数为 ⟹ ,
=no =yes 行和
=yes 2/24 3/24 5/24
=no 19/24

「误导性」⟹ pointwise MI 为负:

人数是整数 ⟹ 。还要上界:概率表必须合法, ⟹ 。

考点:题目可能不直接说度量名,而是给直观说法——「misinformative」就是 pointwise MI < 0。别忘了概率表本身带来的约束(老师现场差点漏掉上界)。

(d) 若 ,得知角色既有工作又带鞋子获得的信息 ⟹ 联合事件的 Shannon 信息量 bits(其实不需要 这条线索)。

5.3 Q3:随参数 α 变化的信息量曲线

同事画了 、 、 随 α 的变化,问是否正确。关键第一步:确定 α 的合法取值范围:

  1. 所有项之和为 1(与 α 无关,但要检查);
  2. 每一项都在 ——给出 α 的上下界(例如 , 等);
  3. 行和、列和也要在 ——但只要每项在 且总和为 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。关键是取出对应样本:

  • 源(较早的变量):去掉最后一个样本
  • 目标(较晚的变量):去掉第一个样本
mi = mutualinformation_empirical(v1[:-1], v2[1:])

这样两段的对应位置正好相差一个时间步——和 Scissors-Paper-Rock 分析里一样。


六、关于期末考试(课上答疑)

  • 纸笔闭卷,可用计算器做手算(如上面 Q1 那类)。
  • 会有写代码的题,但相对简单:例如给你一个算熵/互信息的简单库的函数头,让你写代码计算某个量。要求写真实代码而不是伪代码,但看的是逻辑流程,漏个分号不扣分——「除非是互信息里多了一个分号」。
  • 第一板块(自写库)和 JIDT 的内容都在考试范围:可能给你一段 AutoAnalyser 生成的代码,让你修改来实现某个变化。
  • 不需要记住确切的方法名或属性名——那正是 AutoAnalyser 存在的意义。
  • 与 Calculation exercises 的关系:考的概念相同,但题目更简单(take-home 可以出得更复杂)。

(详细的样题分析见 Week 13 总结。)


七、Item 4:对复杂系统提出信息论问题

7.1 任务要求

从三个数据集中选一个(时间只有一个多小时),思考:

  1. 关于该系统的组织,可以问哪些重要问题?——模式与关系、随时间的动态、随参数的变化……
  2. 问题必须能用信息论语言表述。例如「两个变量关系有多强」⟹ MI。
  3. 具体到随机变量:Ising 里「一个格子告诉我们关于另一个格子的信息」——哪个格子?右边相邻的?上方第 5 个?
  4. 哪些变量可以视为同质(homogeneous)?
  5. 用哪个估计器、怎么设参数?可能遇到什么挑战?

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)  # 二值→二值,无时滞
for xDiff in range(1, ceil(modelSize/2)+1):
calc.initialise()
for x in range(modelSize):
for y in range(modelSize):
source = dataInLayout[:, x, y]
destination = dataInLayout[:, (x+xDiff) % modelSize, y] # 周期边界
calc.addObservations(source, destination) # 所有格子对的样本合并
misVsXDist[ti, xDiff-1] = calc.computeAverageLocalOfObservations()
  • 考察温度 [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 类
for p in range(numPixels):
calc.initialise()
calc.addObservations(pixels1D[:, p], classes)
mis[p] = calc.computeAverageLocalOfObservations()
plt.imshow(mis.reshape(28, 28)) # MI 热力图

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 值把平均量「展开」到时间轴上的技巧。


八、本周考点速记 / 易错点

  1. 自组织定义(Sayama):系统自发地随时间形成非平凡宏观结构/行为。两个特征:组织度随时间增加 + 无中心/外部控制(老师:不要求完全没有,只要不是全部)。
  2. CA:二值格子、同步更新、所有格子用同一条局部规则。Game of Life:二维、8 邻居、出生/死亡/存活三条规则。
  3. 熵的补不行:随机图案与棋盘格单格熵相同,但组织度完全不同。
  4. Multi-information ;缺点:违反「一个分号」原则、重复计数、高维时难以估计(10,000 维)。
  5. Statistical complexity 是老师偏好的度量,但不在课程范围。
  6. 本课立场:刻画信息结构化的多个方面(时间、空间、变量关系、存储、传递、与任务相关),而不是一个总指标。
  7. 从直观措辞识别度量:单个取值的最优编码 → Shannon 信息量;「misinformative」→ pointwise MI < 0;「共同持有」→ MI;「完全基于」→ MI > 0 且条件熵 = 0。
  8. 「是否穿白衣」是变量(平均量),「穿着白衣」是取值(pointwise 量)。
  9. 严格不等号要排除等号情形: 当且仅当独立。
  10. 约束题别忘了概率表合法性带来的界(每项在 )。
  11. 跨时滞 MI:源去尾、目标去头再对齐。
  12. 局部 MI 在两个取值从未同时出现时无定义。
  13. 同质性:变量以相同方式运作才可合并样本(Ising 格子 ✅,不同策略的玩家 ❌)。
  14. Ising:低温均匀、高温随机,临界温度约 2.27 处出现长程关联;有限尺寸系统转变点偏高。
  15. 模拟数据:丢弃暂态、多初始条件多网络合并,并说明理由。
  16. 考试:纸笔、计算器、简单代码题看逻辑;单位必须写。

九、下周预告

期中假期后进入第三板块:

  • Week 9 — Module 9: Information processing in complex systems:信息动力学的哲学(把计算看作存储、传递、修改),熵率作为第一步。
  • 之后依次是 信息存储(AIS)、信息传递(TE)、有效网络推断。