这篇承接熵与信息度量,可以在掌握联合熵、条件熵、互信息后阅读,不是进入第二篇的前置要求。全文讨论有限离散变量,使用 bit。
两个看似冲突的问题会在这里相遇:增加一个条件,依赖可能变强;继续处理数据,却不能凭空增加信息。 区别在于,我们究竟增加了什么可用信息,又在比较哪些变量。
条件互信息:在每个上下文内比较,再平均
已知 Z 后,X 与 Y 还共享多少信息?先固定 Z=z,在该条件分布内计算互信息,再按上下文概率平均:
I(X;Y∣Z)=z∑p(z)I(X;Y∣Z=z).
等价地,
I(X;Y∣Z)=H(Y∣Z)−H(Y∣X,Z).
第一项是已经知道上下文后的不确定性,第二项是再知道 X 后的剩余量。条件互信息非负,但它与未给定 Z 时的 I(X;Y) 没有固定的大小关系。
正在呈现知识画面
给定 Z 后,依赖可以增强,也可以消失固定四个 X、Y 组合,按 Z 筛选并重新归一化。异或例子从独立变成完全关联;共同来源例子从完全关联变成条件独立。
{"id":"information-context","title":"给定 Z 后,依赖可以增强,也可以消失","summary":"固定四个 X、Y 组合,按 Z 筛选并重新归一化。异或例子从独立变成完全关联;共同来源例子从完全关联变成条件独立。","height":850,"html":"<p class=\"eyebrow\" data-i18n=\"eyebrow\"></p><h2 data-i18n=\"heading\"></h2><p class=\"intro\" data-i18n=\"intro\"></p>\n<div class=\"presets\" role=\"group\" data-i18n-label=\"examples\"><button data-model=\"xor\" data-i18n=\"xor\"></button><button data-model=\"common\" data-i18n=\"common\"></button></div>\n<div class=\"presets\" role=\"group\" data-i18n-label=\"filter\"><button data-filter=\"all\" data-i18n=\"all\"></button><button data-filter=\"0\">Z=0</button><button data-filter=\"1\">Z=1</button></div>\n<div class=\"pairs\" id=\"pairs\"></div><p class=\"note\" data-i18n=\"gridNote\"></p><div class=\"formula\" id=\"selection\"></div>\n<div class=\"metric-pair\"><div><span data-i18n=\"before\"></span><strong id=\"before\"></strong></div><div><span data-i18n=\"after\"></span><strong id=\"after\"></strong></div></div><div class=\"formula\"><div id=\"branch-formula\"></div><div id=\"average-formula\"></div></div><div class=\"copy-stack\"><p id=\"explanation\"></p><p class=\"reserve\" aria-hidden=\"true\" data-i18n=\"xorNote\"></p><p class=\"reserve\" aria-hidden=\"true\" data-i18n=\"commonNote\"></p></div>\n","css":".intro { margin:8px 0 18px; color:var(--muted); font-size:14px; }\n.control { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:18px; }\n.control output { min-width:4em; flex-shrink:0; text-align:center; background:var(--accent-soft); color:var(--accent); padding:2px 8px; border-radius:6px; font-weight:600; }\n.formula { margin-top:18px; padding:14px 0; border-block:1px solid var(--rule); font-size:16px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }\n.copy-stack { display:grid; margin-top:14px; color:var(--muted); font-size:14px; }\n.copy-stack > * { grid-area:1/1; }\n.copy-stack .reserve { visibility:hidden; }\n.note { margin-top:14px; color:var(--muted); font-size:12px; }\n.metric-pair { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:18px; }\n.metric-pair > div { min-width:0; }\n.metric-pair span { display:block; font-size:12px; color:var(--muted); }\n.metric-pair strong { display:block; font-size:24px; font-weight:500; font-variant-numeric:tabular-nums; }\n.scale { display:flex; justify-content:space-between; color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; }\n@media(max-width:480px) { .metric-pair strong { font-size:21px; } }\n.presets { display:flex; }\n.plot { position:relative; margin-top:18px; height:190px; border-left:1px solid var(--rule); border-bottom:1px solid var(--muted); }\n.plot svg { width:100%; height:100%; overflow:hidden; }\n.plot .curve { fill:none; stroke:var(--accent); stroke-width:2.5; vector-effect:non-scaling-stroke; }\n.plot .curve.secondary { stroke:var(--second); stroke-dasharray:5 4; }\n.scale { position:relative; }.scale .middle { position:absolute; left:50%; transform:translateX(-50%); }\n.formula { font-size:14px; }.formula div+div { margin-top:6px; }\n@media(max-width:480px) { .plot { height:170px; } }\n.plot .curve { transition:d .28s cubic-bezier(.22,1,.36,1); }\n.band { display:flex; height:28px; border-radius:5px; overflow:hidden; background:var(--surface); margin-top:10px; }\n.band > div { background:var(--accent); transition:width .28s ease; }\n.band > .gold { background:var(--second); }\n.legend { display:flex; flex-wrap:wrap; gap:6px 18px; margin-top:10px; font-size:12px; color:var(--muted); }\n.legend .blue::before,.legend .gold::before { content:''; display:inline-block; width:9px; height:9px; border-radius:2px; margin-right:6px; background:var(--accent); }\n.legend .gold::before { background:var(--second); }\n.rows { margin-top:18px; display:grid; gap:12px; }\n.row { display:grid; grid-template-columns:32px 1fr 60px; align-items:center; gap:10px; font-size:13px; }\n.row > div { min-width:0; }.row output { text-align:right; font-variant-numeric:tabular-nums; }\n.track { height:14px; background:var(--surface); border-radius:3px; overflow:hidden; }\n.fill { height:100%; width:0; background:var(--accent); transition:width .28s ease; }\n.presets { flex-wrap:wrap; gap:4px; }.presets button { min-width:0; }\n.metric-pair strong { overflow-wrap:anywhere; }\n.presets button { flex:1 1 auto; min-width:min-content; }\n.presets { margin-top:10px; }.pairs { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:22px; }.pair { border:1px solid var(--accent); background:var(--accent-soft); border-radius:8px; padding:16px; min-width:0; transition:opacity .28s,background .28s; }.pair.excluded { opacity:.22; background:var(--surface); border-color:var(--rule); }.pair strong { display:block; font-size:22px; }.pair span { display:block; font-size:13px; color:var(--muted); margin-top:6px; }.pair output { display:block; font-size:18px; margin-top:10px; font-variant-numeric:tabular-nums; }\n@media(max-width:480px){.pair{padding:12px}.pair strong{font-size:18px}}\n","js":"const $=s=>document.querySelector(s);let model='xor',filter='all';for(let i=0;i<4;i++)$('#pairs').insertAdjacentHTML('beforeend','<div class=\"pair\"><strong>X='+Math.floor(i/2)+', Y='+(i%2)+'</strong><span></span><output></output></div>');\nfunction draw(){const xor=model==='xor',base=xor?[.25,.25,.25,.25]:[.5,0,0,.5],z=xor?[0,1,1,0]:[0,null,null,1],selected=base.map((p,i)=>filter==='all'||z[i]===+filter?p:0),mass=selected.reduce((a,b)=>a+b),p=selected.map(v=>v/mass),before=xor?0:1,after=1-before;\n document.querySelectorAll('.pair').forEach((e,i)=>{e.classList.toggle('excluded',!p[i]);e.querySelector('span').textContent=z[i]===null?'Z = —':'Z = '+z[i];e.querySelector('output').textContent=viz.number(p[i],2);});$('#selection').textContent=filter==='all'?'P(X,Y)': 'P(X,Y | Z='+filter+') = P(X,Y,Z='+filter+') / '+viz.number(mass,1);$('#before').textContent=before+' bit';$('#after').textContent=after+' bit';$('#branch-formula').textContent='I(X;Y | Z=0) = I(X;Y | Z=1) = '+after+' bit';$('#average-formula').textContent='I(X;Y|Z) = 0.5 × '+after+' + 0.5 × '+after+' = '+after+' bit';$('#explanation').textContent=viz.t(xor?'xorNote':'commonNote');document.querySelectorAll('[data-model]').forEach(e=>e.setAttribute('aria-pressed',String(e.dataset.model===model)));document.querySelectorAll('[data-filter]').forEach(e=>e.setAttribute('aria-pressed',String(e.dataset.filter===filter)));}\ndocument.querySelectorAll('[data-model]').forEach(e=>e.addEventListener('click',()=>{model=e.dataset.model;draw();}));document.querySelectorAll('[data-filter]').forEach(e=>e.addEventListener('click',()=>{filter=e.dataset.filter;draw();}));draw();\n","audio":false,"strings":{"after":"对 Z 平均:I(X;Y|Z)","all":"全部样本","before":"未给定 Z:I(X;Y)","common":"共同来源 X=Y=Z","commonNote":"共同来源:Z 是公平比特,X=Y=Z。整体上 X、Y 完全关联;给定 Z 后,两者都已确定,彼此不再提供额外信息。两个分组的互信息都是 0,条件互信息也为 0。","examples":"联合分布","eyebrow":"条件改变了比较的范围","filter":"观察范围","gridNote":"格子数字是当前范围内的概率,合计为 1。筛选不是更改样本,而是改变条件。","heading":"给定 Z 后,依赖可以增强,也可以消失","intro":"选择一种联合分布,再查看 Z 的两个分组。格子位置始终不变,淡色格子不属于当前分组。","xor":"异或 Z=X⊕Y","xorNote":"异或:X、Y 是独立公平比特。不筛选时四格等概率;给定任一 Z 后只剩两个组合,知道 X 就能确定 Y。两个分组的互信息都是 1 bit,所以条件互信息为 1 bit。"}}
异或:整体独立,分组后却完全关联
取独立公平比特 X,Y,定义 Z=X⊕Y。不观察 Z 时,四个组合各占 1/4,I(X;Y)=0。
给定 Z=0,只剩 (0,0) 与 (1,1);给定 Z=1,只剩 (0,1) 与 (1,0)。每组中单看 Y 仍有 1 bit 不确定性,但知道 X 就能确定 Y,所以每组的互信息均为 1 bit,平均也是 1 bit。
这不违背“条件熵平均不增”:这里 H(Y∣Z)=H(Y)=1,而 H(Y∣X,Z)=0。变化的是额外信息 Z 与 X 合在一起提供的预测能力,而不是凭空改变原本的样本。
共同来源:知道上下文后,关联不再提供额外信息
改为公平比特 Z,并令 X=Y=Z。整体上 X,Y 完全相同,I(X;Y)=1。但给定 Z 后,两者都已经确定,于是 I(X;Y∣Z)=0。
这两个例子分别给出条件互信息大于和小于普通互信息的情况。不能简单地说“加条件总会减弱依赖”,也不能把两者之差直接当成一个必定非负的第三块维恩图面积。
数据处理:只能使用已有观测,才有这个界
若 X→Y→Z 构成马尔可夫链,即
p(x,y,z)=p(x,y)p(z∣y),
那么生成 Z 的过程只读取 Y,给定 Y 后不再从 X 得到额外信息。此时数据处理不等式为
I(X;Z)≤I(X;Y).
它不要求每一步都严格丢失信息:可逆变换可以保留全部信息。也不意味着处理后的表示一定更难用;同样的信息可以被组织得更便于某个受限预测器读取,任务精度与总互信息不是同一个量。
正在呈现知识画面
数据处理丢掉的信息去了哪里?四个等概率 X 经可逆重标记得到 Y,再保留 Y、只留奇偶或全部合并。连线显示哪些原值不可再区分,条带分解保留信息与丢失信息。
{"id":"information-processing","title":"数据处理丢掉的信息去了哪里?","summary":"四个等概率 X 经可逆重标记得到 Y,再保留 Y、只留奇偶或全部合并。连线显示哪些原值不可再区分,条带分解保留信息与丢失信息。","height":850,"html":"<p class=\"eyebrow\" data-i18n=\"eyebrow\"></p><h2 data-i18n=\"heading\"></h2><p class=\"intro\" data-i18n=\"intro\"></p><div class=\"presets\" role=\"group\" data-i18n-label=\"processing\"><button data-mode=\"keep\" data-i18n=\"keep\"></button><button data-mode=\"merge\" data-i18n=\"merge\"></button><button data-mode=\"erase\" data-i18n=\"erase\"></button></div>\n<div class=\"metric-pair\"><div><span>I(X;Y)</span><strong>2 bit</strong></div><div><span>I(X;Z)</span><strong id=\"retained\"></strong></div></div><div class=\"band\" role=\"img\" data-i18n-label=\"strip\"><div id=\"kept\"></div><div class=\"gold\" id=\"lost\"></div></div><div class=\"legend\"><span class=\"blue\" data-i18n=\"retained\"></span><span class=\"gold\" data-i18n=\"lost\"></span></div><div class=\"mapping\"><svg viewBox=\"0 0 320 270\" role=\"img\" data-i18n-label=\"chart\"><g id=\"edges\"></g><g id=\"nodes\"></g></svg></div><p class=\"note\" data-i18n=\"legend\"></p><section class=\"recovery\"><h3 data-i18n=\"recovery\"></h3><label class=\"observe\" for=\"observed\"><span data-i18n=\"observe\"></span><select id=\"observed\"></select><output id=\"processed-label\"></output></label><label class=\"relabel\"><input type=\"checkbox\" id=\"relabel\"><span data-i18n=\"relabel\"></span></label><div class=\"reconstruction\" aria-live=\"polite\"><span data-i18n=\"candidates\"></span><strong id=\"possible-x\"></strong><span data-i18n=\"success\"></span><strong id=\"recovery-success\"></strong></div></section><details class=\"audit-details\"><summary data-i18n=\"detailLabel\"></summary><div class=\"formula\" id=\"decomposition\"></div><p class=\"note\" data-i18n=\"recoveryNote\"></p><p class=\"note\" data-i18n=\"note\"></p></details>\n","css":".intro { margin:8px 0 18px; color:var(--muted); font-size:14px; }\n.control { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:18px; }\n.control output { min-width:4em; flex-shrink:0; text-align:center; background:var(--accent-soft); color:var(--accent); padding:2px 8px; border-radius:6px; font-weight:600; }\n.formula { margin-top:18px; padding:14px 0; border-block:1px solid var(--rule); font-size:16px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }\n.copy-stack { display:grid; margin-top:14px; color:var(--muted); font-size:14px; }\n.copy-stack > * { grid-area:1/1; }\n.copy-stack .reserve { visibility:hidden; }\n.note { margin-top:14px; color:var(--muted); font-size:12px; }\n.metric-pair { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:18px; }\n.metric-pair > div { min-width:0; }\n.metric-pair span { display:block; font-size:12px; color:var(--muted); }\n.metric-pair strong { display:block; font-size:24px; font-weight:500; font-variant-numeric:tabular-nums; }\n.scale { display:flex; justify-content:space-between; color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; }\n@media(max-width:480px) { .metric-pair strong { font-size:21px; } }\n.presets { display:flex; }\n.plot { position:relative; margin-top:18px; height:190px; border-left:1px solid var(--rule); border-bottom:1px solid var(--muted); }\n.plot svg { width:100%; height:100%; overflow:hidden; }\n.plot .curve { fill:none; stroke:var(--accent); stroke-width:2.5; vector-effect:non-scaling-stroke; }\n.plot .curve.secondary { stroke:var(--second); stroke-dasharray:5 4; }\n.scale { position:relative; }.scale .middle { position:absolute; left:50%; transform:translateX(-50%); }\n.formula { font-size:14px; }.formula div+div { margin-top:6px; }\n@media(max-width:480px) { .plot { height:170px; } }\n.plot .curve { transition:d .28s cubic-bezier(.22,1,.36,1); }\n.band { display:flex; height:28px; border-radius:5px; overflow:hidden; background:var(--surface); margin-top:10px; }\n.band > div { background:var(--accent); transition:width .28s ease; }\n.band > .gold { background:var(--second); }\n.legend { display:flex; flex-wrap:wrap; gap:6px 18px; margin-top:10px; font-size:12px; color:var(--muted); }\n.legend .blue::before,.legend .gold::before { content:''; display:inline-block; width:9px; height:9px; border-radius:2px; margin-right:6px; background:var(--accent); }\n.legend .gold::before { background:var(--second); }\n.rows { margin-top:18px; display:grid; gap:12px; }\n.row { display:grid; grid-template-columns:32px 1fr 60px; align-items:center; gap:10px; font-size:13px; }\n.row > div { min-width:0; }.row output { text-align:right; font-variant-numeric:tabular-nums; }\n.track { height:14px; background:var(--surface); border-radius:3px; overflow:hidden; }\n.fill { height:100%; width:0; background:var(--accent); transition:width .28s ease; }\n.presets { flex-wrap:wrap; gap:4px; }.presets button { min-width:0; }\n.metric-pair strong { overflow-wrap:anywhere; }\n.presets button { flex:1 1 auto; min-width:min-content; }\n.mapping { margin-top:20px; }.mapping svg { display:block; width:100%; max-height:280px; }.edge { stroke:var(--muted); opacity:.5; fill:none; stroke-width:1.6; transition:d .28s ease; }.node { fill:var(--paper); stroke:var(--rule); }.node-text { fill:var(--ink); font-size:17px; text-anchor:middle; }.column { fill:var(--muted); font-size:16px; text-anchor:middle; }.target { transition:transform .28s ease,opacity .28s ease; }\n\n.mapping { margin-top:12px; }.mapping svg{height:205px;max-height:none}.mapping + .note{font-size:12px;margin-top:8px}.metric-pair{margin-top:12px}.band{height:16px}.recovery{margin-top:14px}.recovery h3{font-size:14px}.observe{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:10px;font-size:13px}.observe select{font:inherit;background:var(--paper);color:var(--ink);border:1px solid var(--rule);border-radius:5px;padding:6px;min-height:36px}.relabel{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:13px;min-height:40px}.relabel input{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}.reconstruction{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:4px 8px;font-size:13px}.reconstruction strong{text-align:right;font-variant-numeric:tabular-nums;font-weight:500}.reconstruction span{color:var(--muted)}\n@media(max-width:480px){.mapping svg{height:180px}.intro{font-size:13px;margin-bottom:12px}.legend{font-size:11px;gap:4px 10px}.metric-pair strong{font-size:21px}.recovery{margin-top:10px}.observe select{min-height:44px}}\n\n.audit-details { border-top:1px solid var(--rule); margin-top:14px; padding-top:8px; }\n.audit-details summary { cursor:pointer; color:var(--accent); font-size:13px; min-height:36px; padding:6px 0; }\n.audit-details summary:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }\n.audit-details .formula { border:0; margin-top:8px; padding:8px 0; }\n","js":"const $=s=>document.querySelector(s),ns='http://www.w3.org/2000/svg';let mode='merge';function node(tag,attrs,parent,text){const e=document.createElementNS(ns,tag);for(const [k,v]of Object.entries(attrs))e.setAttribute(k,v);if(text!==undefined)e.textContent=text;parent.append(e);return e;}\nfor(const [x,label]of [[35,'X'],[155,'Y'],[275,'Z']])node('text',{x,y:20,class:'column'},$('#nodes'),label);\nfor(let i=0;i<4;i++){const y=60+55*i;node('path',{d:'M55,'+y+' L135,'+y,class:'edge'},$('#edges'));node('path',{d:'M175,'+y+' L255,'+y,class:'edge process'},$('#edges'));for(const [x,label]of [[35,i],[155,(i+1)%4]]){node('rect',{x:x-20,y:y-18,width:40,height:36,rx:8,class:'node'},$('#nodes'));node('text',{x,y:y+6,class:'node-text'},$('#nodes'),label);}const g=node('g',{class:'target'},$('#nodes'));node('rect',{x:255,y:-18,width:40,height:36,rx:8,class:'node'},g);node('text',{x:275,y:6,class:'node-text'},g,i);}\nfunction draw(){const map=mode==='keep'?[1,2,3,0]:mode==='merge'?[1,0,1,0]:[0,0,0,0],count=Math.max(...map)+1,info=Math.log2(count),y=i=>count===4?60+55*i:count===2?100+85*i:142.5;document.querySelectorAll('.process').forEach((e,i)=>e.setAttribute('d','M175,'+(60+55*i)+' C210,'+(60+55*i)+' 220,'+y(map[i])+' 255,'+y(map[i])));document.querySelectorAll('.target').forEach((e,i)=>{e.style.transform='translateY('+y(i<count?i:0)+'px)';e.style.opacity=i<count?'1':'0';});syncRecovery(map);$('#retained').textContent=info+' bit';$('#kept').style.width=info/2*100+'%';$('#lost').style.width=(2-info)/2*100+'%';$('#decomposition').textContent='I(X;Y) = I(X;Z) + I(X;Y|Z) = '+info+' + '+(2-info)+' = 2 bit';document.querySelectorAll('[data-mode]').forEach(e=>e.setAttribute('aria-pressed',String(e.dataset.mode===mode)));}\ndocument.querySelectorAll('[data-mode]').forEach(e=>e.addEventListener('click',()=>{mode=e.dataset.mode;draw();}));draw();\n\nfunction syncRecovery(map){const count=Math.max(...map)+1,old=+$('#observed').value||0;$('#observed').replaceChildren(...Array.from({length:count},(_,i)=>{const e=document.createElement('option');e.value=i;e.textContent='Z='+i;return e;}));$('#observed').value=Math.min(old,count-1);const z=+$('#observed').value,possible=map.map((v,x)=>v===z?x:null).filter(x=>x!==null);$('#processed-label').textContent=$('#relabel').checked?'W = '+(3-z):'Z = '+z;$('#possible-x').textContent='{ '+possible.join(', ')+' }';$('#recovery-success').textContent=viz.number(100/possible.length,0)+'%';}\n$('#observed').addEventListener('change',draw);$('#relabel').addEventListener('change',draw);\n","audio":false,"strings":{"candidates":"仍可能的 X","chart":"三列 X、Y、Z 的映射,连线汇合表示原始状态变得不可区分。","detailLabel":"信息分解与适用条件","erase":"全部合并","eyebrow":"合并后,还能区分哪些原值","heading":"数据处理丢掉的信息去了哪里?","intro":"X 等概率取 0、1、2、3,Y=(X+1) mod 4。这个可逆变换完整保留 2 bit。后续 Z 只能读取 Y。","keep":"完整保留","legend":"从左到右沿线阅读:重标记不丢信息;不同路径汇合后,只看 Z 就无法区分它们。","lost":"已丢失 I(X;Y|Z)","merge":"只留奇偶","note":"条带始终合计 2 bit。可逆处理达到等号;奇偶合并只保留 1 bit;常量输出不再保留信息。这里是确定性处理的有限例子,数据处理不等式也适用于满足同一马尔可夫条件的随机处理。","observe":"选择观察到的 Z","processing":"对 Y 的处理","recovery":"尝试从处理结果还原 X","recoveryNote":"同组原值等概率。改写结果的标签没有拆开已经合并的路径;成功率仍是候选数的倒数。","relabel":"再加工:把 Z 改成标签 W=3−Z","retained":"仍保留 I(X;Z)","strip":"固定 2 bit 的条带:保留的 I(X;Z) 加上丢失的 I(X;Y|Z)。","success":"最优还原成功率"}}
再选择一个观察到的 Z,尝试还原 X。可逆处理只留下一个候选,成功率为 1;奇偶合并留下两个等概率候选,最优成功率为 1/2;常量处理留下四个,成功率为 1/4。把结果再改名为 W=3−Z 后,候选集合完全不变:只读处理结果,无法把已经合并的原值重新分开。这里的成功率是这个均匀、确定性分组例子的结论,不是仅凭互信息数值就能推出的一般公式。
图中 Y=(X+1)mod4 是可逆重标记,完整保留 X 的 2 bit。只保留 Y 的奇偶性后,四种原值被分成两组,只剩 1 bit;把所有值映到常量后,剩余信息为零。丢掉的是原先能区分、现在无法区分的差异。
不等式的差值,正好是一项条件互信息
对同一个 I(X;Y,Z),按两个不同顺序使用互信息链式法则:
I(X;Y,Z)=I(X;Y)+I(X;Z∣Y),=I(X;Z)+I(X;Y∣Z).
马尔可夫条件给出 I(X;Z∣Y)=0,所以
I(X;Y)−I(X;Z)=I(X;Y∣Z)≥0.
右边说的是:看过处理结果 Z 后,旧观测 Y 还能额外告诉我们多少关于 X 的信息。 这就是处理丢掉的部分,也是图中条带的金色部分。等号成立当且仅当这一部分为零;可逆处理是达到等号的一种充分条件,而不是唯一方式。
为什么 XOR 例子没有违反数据处理不等式?
在前面的 XOR 例子里,Z 同时由 X 与 Y 计算而来,不能写成“仅从 Y 生成 Z”的这条链。它不满足应用不等式所需的条件。
同样,如果一个处理步骤还能访问原始数据、额外的相关检索结果或其他关于 X 的信息,就要把这些输入包含在观测变量里,再检查正确的马尔可夫关系。不能省去额外输入后,误判为算法违反了数据处理不等式。
| 问题 | 正确比较 |
| 给定额外上下文后,两变量还关联多少? | I(X;Y∣Z);可能大于或小于 I(X;Y) |
| 只处理已有观测,保留了多少原始信息? | 在 X→Y→Z 下,I(X;Z)≤I(X;Y) |
| 处理损失了多少信息? | 在同一条件下,差值为 I(X;Y∣Z) |
表示学习中的相关应用见信息瓶颈。连续变量涉及密度和微分熵,放在高斯信道中另行介绍。
参考