| 第1行: |
第1行: |
| − | 部分信息分解(Partial Information Decomposition, PID)是于刻画多个信源如何共同提供关于某个目标变量的信息的多变量信息论框架,由 Williams 和 Beer 于 2010 年提出<ref name="Paul">{{cite journal|author1=Paul L. Williams|author2=Randall D. Beer|title=Nonnegative Decomposition of Multivariate Information|journal=arXiv preprint|year=2010|url=https://arxiv.org/abs/1004.2515}}</ref>。PID框架的核心思想是:将总互信息唯一地拆解成若干个非负的信息原子(PI-atoms),分别对应三种基本类型—— | + | 部分信息分解(Partial Information Decomposition, PID)是于刻画多个信源如何共同提供关于某个目标变量的信息的多变量信息论框架,由 Williams 和 Beer 于 2010 年提出<ref name="Paul">{{cite journal|author1=Paul L. Williams|author2=Randall D. Beer|title=Nonnegative Decomposition of Multivariate Information|journal=arXiv preprint|year=2010|url=https://arxiv.org/abs/1004.2515}}</ref>。PID框架的核心思想是:将总互信息唯一地拆解成若干个非负的信息原子(PI-atoms),分别对应三种基本类型——冗余、特有与协同。 |
| | | | |
| − | * 冗余信息(Redundancy):多个信源共同提供的、可从任一信源单独获得的信息;
| |
| | | | |
| − | * 特有信息(Unique information):仅由某一个信源提供、其他信源不具备的信息;
| + | 为使这一分解具有明确的数学基础,Williams 和 Beer 提出了一组约束冗余信息度量的公理,包括对称性、自冗余性及单调性,基于这些约束,可以构造以信源集合为节点的冗余晶格(redundancy lattice)。在给定具体冗余度量后,可通过 Möbius 反演求得晶格各节点对应的部分信息原子。 |
| | | | |
| − | * 协同信息(Synergy):必须将多个信源联合观察才能获取、任一信源单独都无法提供的信息。
| |
| | | | |
| − | 为了保证分解的数学严谨性,Williams 和 Beer 提出冗余信息应满足三条公理——对称性(冗余与信源顺序无关)、自冗余性(目标变量与某个信源自身的冗余信息量是所有包含这个信源的冗余信息中的最大值)、单调性(加入更多信源不会增加冗余),由此给出冗余信息的一种度量 <math>I_{\min}</math>,并诱导出一个称为冗余晶格(redundancy lattice)的偏序结构,随后通过对 <math>I_{\min}</math>做 Möbius 逆变换,即可得到冗余晶格中每个节点对应的部分信息原子,且其恒定非负。
| + | PID 的关键困难在于,如何定义一个同时具有良好理论性质和计算可行性的冗余信息度量。不同的冗余度量会导出不同的部分信息原子;当信源数增加时,局部非负性、恒等公理及 Williams–Beer 公理等要求之间也可能产生张力。因此,后续研究提出了多种 PID 变体和公理化方案,分别适用于不同的数据类型和研究问题。 |
| | | | |
| − | PID框架的局限集中在两点,其一是冗余信息的公理化方案约束出的部分信息原子形式不唯一,且信源数 ≥ 3 时,不存在一种冗余信息的度量能同时满足 Williams 和 Beer 三条公理、局部非负性、以及 Harder 等人<ref name="Harder_IRed">{{cite journal|author1=Harder M.|author2=Salge C.|author3=Polani D.|title=Bivariate measure of redundant information|journal=Physical Review E|year=2013|volume=87|issue=1|page=012130|url=https://doi.org/10.1103/PhysRevE.87.012130}}</ref>提出的"恒等公理",为此,多为人员尝给出部分信息原子公理化的方案,这些PID框架各自在不同公理组合下成立;其二则是信息原子的计算可行性问题——对变量数过大规模系统,使用Williams和Beer原始PID方案对复杂系统进行PID分析会产生过高的计算成本,为此高斯型PID框架,作为提高标准PID框架可计算度的扩展方案被提出。扩展
| |
| | | | |
| − | 尽管PID框架存在上述问题,但其独特的理论结构和优良的可扩展性,使得PID框架可以通过灵活的扩展框架或变体应用于不同场景之中。
| + | 除理论定义的困难外,对于变量数量较多或状态空间较大的系统,直接实施原始 PID 分析往往成本较高。为此,研究者们提出了适用于连续变量或高斯变量等特定条件的扩展方法,以在保留部分信息分解思想的同时提高计算可行性。 |
| | + | |
| | + | |
| | + | 尽管仍存在冗余度量选择、理论性质协调与大规模计算等问题,PID 已成为研究复杂系统、因果科学、脑与神经科学及人工智能的重要工具。它使研究者能够进一步追问:不同信息来源究竟以冗余、特有还是协同的方式,共同影响目标变量。 |
| | | | |
| − | 目前PID 已经成为复杂系统、因果科学、脑与神经科学、人工智能等领域不可或缺的工具,因为它首次提供了一种原则性的语言来回答"信息究竟是谁、以何种方式贡献给目标的"这一核心问题。
| |
| | == 历史 == | | == 历史 == |
| | 1948年,[[克劳德·艾尔伍德·香农 Claude Elwood Shannon|克劳德·艾尔伍德·香农(Claude Elwood Shannon)]]开启了现代[[信息论 Information theory|信息论]]研究,为人们提供了分析数据所蕴含信息的强大工具。香农提出的'''[[互信息|互信息 Mutual Information]]'''<ref name="Shannon">{{cite journal|author1=Shannon,C.E.|title=A Mathematical Theory of Communication|journal=Bell System Technical Journal|year=1948|volume=27|issue=3;4|page=379-423;623-656}}</ref>概念衡量了一个随机变量对另一个随机变量的信息,本词条的核心内容即是建立在此概念之上。经典[[互信息]]主要刻画两个随机变量或一个变量组与另一个变量之间的共享信息,但不能直接区分多个源变量对同一目标变量的信息贡献结构。但在现实世界的许多场景中,我们面临的是多个变量之间的相互作用,多变量信息理论应运而生。其中,'''交互信息 Interaction Information'''<ref name="McGill">{{cite journal|author1=McGill,William J.|title=Multivariate information transmission|journal=Psychometrika|year=1954|volume=19|issue=2|page=97-116|url=https://doi.org/10.1007/BF02289159}}</ref> | | 1948年,[[克劳德·艾尔伍德·香农 Claude Elwood Shannon|克劳德·艾尔伍德·香农(Claude Elwood Shannon)]]开启了现代[[信息论 Information theory|信息论]]研究,为人们提供了分析数据所蕴含信息的强大工具。香农提出的'''[[互信息|互信息 Mutual Information]]'''<ref name="Shannon">{{cite journal|author1=Shannon,C.E.|title=A Mathematical Theory of Communication|journal=Bell System Technical Journal|year=1948|volume=27|issue=3;4|page=379-423;623-656}}</ref>概念衡量了一个随机变量对另一个随机变量的信息,本词条的核心内容即是建立在此概念之上。经典[[互信息]]主要刻画两个随机变量或一个变量组与另一个变量之间的共享信息,但不能直接区分多个源变量对同一目标变量的信息贡献结构。但在现实世界的许多场景中,我们面临的是多个变量之间的相互作用,多变量信息理论应运而生。其中,'''交互信息 Interaction Information'''<ref name="McGill">{{cite journal|author1=McGill,William J.|title=Multivariate information transmission|journal=Psychometrika|year=1954|volume=19|issue=2|page=97-116|url=https://doi.org/10.1007/BF02289159}}</ref> |
| 第131行: |
第130行: |
| | | | |
| | 其中<math>H(X_i)</math>是变量的[[信息熵]]<math>X_i</math> ;<math>H(X_1,X_2,\dots,X_n)</math>为随机变量集合<math>H(X_1,X_2,\dots,X_n)</math>是变量集<math>\{ X_1,X_2,\dots, X_n\}</math>的[[联合熵]]。 | | 其中<math>H(X_i)</math>是变量的[[信息熵]]<math>X_i</math> ;<math>H(X_1,X_2,\dots,X_n)</math>为随机变量集合<math>H(X_1,X_2,\dots,X_n)</math>是变量集<math>\{ X_1,X_2,\dots, X_n\}</math>的[[联合熵]]。 |
| | + | |
| | | | |
| | | | |
| | [[总相关性]]通过将每个随机变量孤立情形下的熵加总后减去它们的联合熵,量化了目标变量集中存在的绝对[[冗余信息原子|冗余]]的总量。但多元随机变量间冗余的关联亦构成了这一概念的局限,因为总相关性中未包含对[[冗余]]结构的细致分析——譬如,在下面例子中所展示的高阶[[冗余]]交互作用。 | | [[总相关性]]通过将每个随机变量孤立情形下的熵加总后减去它们的联合熵,量化了目标变量集中存在的绝对[[冗余信息原子|冗余]]的总量。但多元随机变量间冗余的关联亦构成了这一概念的局限,因为总相关性中未包含对[[冗余]]结构的细致分析——譬如,在下面例子中所展示的高阶[[冗余]]交互作用。 |
| | | | |
| − | '''例:三变量情形的高阶交互[[冗余]]''' | + | '''例:三变量情形的高阶交互冗余''' |
| | | | |
| | 设<math>\{X_1,X_2,X_3\}</math>为一三元随机变量组变量组,其中<math>X_1,X_2,X_3</math>两两独立,但<math>X_1,X_2</math>构成的整体与<math>X_3</math>有关联。 | | 设<math>\{X_1,X_2,X_3\}</math>为一三元随机变量组变量组,其中<math>X_1,X_2,X_3</math>两两独立,但<math>X_1,X_2</math>构成的整体与<math>X_3</math>有关联。 |
| 第154行: |
第154行: |
| | <math>I(X_1;X_2;\dots;X_{n+1}) = I(X_1;\dots;X_n) -I(X_1;\dots;X_n|X_{n+1})</math> | | <math>I(X_1;X_2;\dots;X_{n+1}) = I(X_1;\dots;X_n) -I(X_1;\dots;X_n|X_{n+1})</math> |
| | | | |
| − | | + | 这一指标衡量了一组随机变量中超出其任意子集所包含的信息之外的信息量。 |
| | | | |
| | 当<math>I(X_1,X_2,\dots,X_n)</math>以随机变量的[[信息熵]]和[[联合熵]]表达时,可以写成如下形式: | | 当<math>I(X_1,X_2,\dots,X_n)</math>以随机变量的[[信息熵]]和[[联合熵]]表达时,可以写成如下形式: |
| 第165行: |
第165行: |
| | | | |
| | 对三元随机变量集合<math>\{X,Y,Z\}</math>而言,相应的[[McGill交互信息]]为下图中的灰色部分:<math>I(X;Y;Z)</math> | | 对三元随机变量集合<math>\{X,Y,Z\}</math>而言,相应的[[McGill交互信息]]为下图中的灰色部分:<math>I(X;Y;Z)</math> |
| − | [[文件:Pasted_image_20251104135250.png|链接=特殊:文件路径/Pasted_image_20251104135250.png|替代=|居中|338x338px]] | + | [[文件:Pasted_image_20251104135250.png|链接=特殊:文件路径/Pasted_image_20251104135250.png|替代=|居中|338x338px|图:以韦恩图展示的三元随机变量系统的McGill交互信息示意图,灰色部分为该系统的McGill交互信息。]] |
| | | | |
| | '''交互信息的负值问题''' | | '''交互信息的负值问题''' |
| | | | |
| − | 对单变量的[[信息熵]]而言,[[信息熵]]始终是一非负值,但在McGill的[[McGill交互信息|交互信息]]框架中却会出现多变量间[[McGill交互信息|交互信息]]为负值的情况,这种反直觉的事实意味着,McGill的多变量信息框架存在着缺陷,这一问题使得后续的工作者尝试发展更完备的多变量信息理论,[[部分信息分解|PID框架]]就是其中一种。 | + | 对单变量的[[信息熵]]而言,[[信息熵]]始终是一非负值,但在McGill的[[McGill交互信息|交互信息]]框架中却会出现多变量间[[McGill交互信息|交互信息]]为负值的情况,这种反直觉的事实意味着,McGill交互信息,作为一种捕捉冗余的信息论框架有缺陷,这一问题使得后续的工作者尝试发展更完备的多变量信息理论,[[部分信息分解|PID框架]]就是其中一种。 |
| | | | |
| | 下面的例子展示了[[McGill交互信息]]框架中的负信息问题。 | | 下面的例子展示了[[McGill交互信息]]框架中的负信息问题。 |
| 第241行: |
第241行: |
| | | | |
| | 如下面的韦恩图所示,部分信息分解框架中将<math>\mathbf{S}</math>对<math>T</math>的传递信息<math>I(\mathbf{S};T)</math>为如下三个基本单元,PID框架中,这些基本单元被称为'''部分信息原子''': | | 如下面的韦恩图所示,部分信息分解框架中将<math>\mathbf{S}</math>对<math>T</math>的传递信息<math>I(\mathbf{S};T)</math>为如下三个基本单元,PID框架中,这些基本单元被称为'''部分信息原子''': |
| − | [[文件:1762497522923_1.png|链接=特殊:文件路径/1762497522923_1.png|替代=|居中]] | + | [[文件:1762497522923_1.png|链接=特殊:文件路径/1762497522923_1.png|替代=|居中|图:以韦恩图展示的两源变量情形下的部分信息分解框架的分解对象,分解构成。]] |
| | | | |
| | 部分信息原子包括如下三个部分: | | 部分信息原子包括如下三个部分: |
| 第292行: |
第292行: |
| | | | |
| | 在给出两源情形下的[[冗余]]信息原子的定义后,集智百科将以经典的异或目标变量情形为例展示PID的计算过程,并同时计算[[总相关性]]与[[McGill交互信息]],讨论PID框架如何解释[[McGill交互信息]]的负值问题。 | | 在给出两源情形下的[[冗余]]信息原子的定义后,集智百科将以经典的异或目标变量情形为例展示PID的计算过程,并同时计算[[总相关性]]与[[McGill交互信息]],讨论PID框架如何解释[[McGill交互信息]]的负值问题。 |
| − |
| |
| − |
| |
| | | | |
| | '''例''': | | '''例''': |
| 第417行: |
第415行: |
| | 容易验证,此时,该三变量系统分解所得的[[冗余-协同]]<math>=0-1 =-1</math>,即是[[McGill交互信息]]的值。 | | 容易验证,此时,该三变量系统分解所得的[[冗余-协同]]<math>=0-1 =-1</math>,即是[[McGill交互信息]]的值。 |
| | | | |
| − | 从PID的两源变量框架的算例中可知,若想清楚地分解源变量组与目标变量间的传输信息结构,需要先分析清楚[[冗余]];对于[[冗余]]结构更为复杂的多元变量情形,PID框架的作者发展出了相应的[[冗余晶格]]理论,下面,集智百科将对冗余晶格理论予以详细介绍。 | + | 从PID的两源变量框架的算例中可知,若想清楚地分解源变量组与目标变量间的传输信息结构,需要先分析清楚[[冗余]];对于[[冗余]]结构更为复杂的多元变量情形,PID框架的作者发展出了相应的[[冗余晶格]]理论,下面,集智百科将对冗余晶格理论予以详细介绍。 |
| | | | |
| | === [[冗余晶格]] === | | === [[冗余晶格]] === |
| 第960行: |
第958行: |
| | 在dit库中,我们可以创建这个: | | 在dit库中,我们可以创建这个: |
| | | | |
| − | <syntaxhighlight lang="python" line> | + | <syntaxhighlight lang="python" line="1"> |
| | import dit # importing dit library | | import dit # importing dit library |
| | | | |
| 第971行: |
第969行: |
| | | | |
| | print(PID_WB(dist_unique)) | | print(PID_WB(dist_unique)) |
| | + | </syntaxhighlight> |
| | | | |
| − | | + | 输出: |
| − | | + | {| class="wikitable" |
| − | Out:
| + | !\(I_{\min}\) |
| − | | + | !\(I_r\) |
| − | +--------+--------+--------+
| + | !\(\pi\) |
| − | | + | |- |
| − | | I_min | I_r | pi |
| + | |\(\{0:1\}\) |
| − | | + | |1.0000 |
| − | +--------+--------+--------+
| + | |0.0000 |
| − | | + | |- |
| − | | {0:1} | 1.0000 | 0.0000 | | + | |\(\{0\}\) |
| − | | + | |1.0000 |
| − | | {0} | 1.0000 | 1.0000 | | + | |1.0000 |
| − | | + | |- |
| − | | {1} | 0.0000 | 0.0000 | | + | |\(\{1\}\) |
| − | | + | |0.0000 |
| − | | {0}{1} | 0.0000 | 0.0000 | | + | |0.0000 |
| − | | + | |- |
| − | +--------+--------+--------+
| + | |\(\{0\}\{1\}\) |
| − | | + | |0.0000 |
| − | </syntaxhighlight>
| + | |0.0000 |
| | + | |} |
| | | | |
| | | | |
| 第1,021行: |
第1,021行: |
| | | | |
| | 使用dit,代码如下: | | 使用dit,代码如下: |
| − | <syntaxhighlight lang="python" line> | + | <syntaxhighlight lang="python" line="1"> |
| | import dit # importing dit library | | import dit # importing dit library |
| | | | |