思维模型格栅

计算机与信息 · 14/14

数据压缩Compression

能保住信息又缩短描述,说明你抓住了藏在细节里的规律。

牛顿用同一套定律,把落向地面的物体和绕着地球转的月球连在了一起。1687 年,他的《自然哲学的数学原理》在伦敦出版。书中的运动定律和万有引力定律,让这两种现象进入同一个计算框架:月球也在向地球下落,却因向前的运动不断绕过地球。研究者不用为每颗行星另背一套运动规则。给出质量、位置和速度,就能用同一套方程推算它怎样运动。天上地下原本分散的现象,有了共同的说明书。

为什么成立

能还原的短描述,才显出规律

一千个连续的 A,可以写成“A 重复一千次”,再按说明完整展开。后面的字符能由规则确定,就省去了逐个记录的必要。数据压缩把长记录换成这样的短表示;重复、出现频率不均、前后依赖,都能提供缩短的机会。

规则和例外必须一起算

判断是否省了描述,要先固定同一套编码和还原约定。设数据为 ,描述它的规则为 ,总长度是:

是写清规则所需的比特数, 是知道规则后,还原数据仍需补上的比特数。白话说,把说明书和剩余细节加起来,再与直接记录原文相比。规则很短,却要附上几乎整份原文,就没有找到多少规律。这是最小描述长度原则的核心。

理解让许多事实共用一条规则

找到能反复使用的短描述,让你从逐条记忆走向掌握结构。读懂牛顿的定律后,你能根据起点推算新的轨迹;背熟旧轨迹只能复述旧记录。把这套思路带到工作中,就要看一条解释能接管多少事实,又留下多少例外。规则连同例外仍然更短,才是理解有所进展的证据。

出处

它来自信息论与计算机科学。香农在 1948 年的《通信的数学理论》中奠定无损编码极限的理论基础。柯尔莫哥洛夫在 1965 年用最短生成程序刻画信息量;里萨宁在 1978 年提出最小描述长度原则,把“规则加剩余数据”的总长度用于选择模型。

换个领域看

技术

像素一个不丢

PNG 能把图片文件压小,同时逐个还原像素。1996 年,万维网联盟发布了它的首版推荐规范。编码器利用相邻像素的关系,把像素改写成差值,再压缩反复出现的数据。大块纯色图里,许多差值都是零,容易省下空间;打开文件时,解码器把这些步骤倒过来走,恢复原有像素。

投资

让财报少些意外

能解释多期经营数据的规则,比一句公司故事更有用。假设你在研究一家连锁咖啡店,先用成熟店过去的销售水平估计下一季度,再单列新店爬坡和关店。新一季账本到手后,若大部分销售都能按这套办法说明,只剩少量差额,你就抓住了可复用的结构;若每家店都要补一个理由,原来的解释就该重写。

个人生活

把漏项写成规则

反复出差时,一条规则能替你记住多次遗漏。假设你每次收行李都重新列清单,还总忘带同几样东西。你把过去的清单合成一份常备清单,另写“过夜加洗漱包”“下雨加伞”,这次只记录特殊物品。共同部分写一次,条件说清楚,例外单独留下,下一趟出门就能按这份短说明还原所需行李。

遇事时问自己

  1. 这些记录里,哪些内容反复出现,或能由前面的内容推出来?
  2. 我能否写出一条规则,让别人据此还原事实或推算下一次结果?
  3. 把规则、使用条件和所有例外加起来,是否比逐条记载更省?
  4. 面对下一批数据,我能用这条规则提前说对什么?
  5. 这份短描述删掉的细节,会不会改变我要做的决定?

边界与误用

短描述必须服从你要保留的信息。无损压缩要求完整还原;有损压缩允许丢掉事先选定的细节。把一次罕见故障删掉,报告会变短,却会妨碍排查事故。无损算法无法让所有输入都变短;一种工具压不动,也只说明它没找到可利用的规律。最常见的误用,是把一句顺口的故事当成理解:遗漏越多,句子越短。找到可还原的短描述,说明存在可利用的结构,却不能单凭它认定因果。让短规则接受新事实检验,并留下会改变决策的例外。

练一练

一家物流公司要保存半年的司机排班,方便以后逐日核对。原始记录占6000字节。方案甲用500字节写清轮班规则,再用900字节记录临时调整;方案乙的规则只占100字节,但调整表占1800字节。两套方案使用相同的编码约定,都能完整还原每天的排班。

若要用更少的空间完整保存排班,哪种判断最站得住?

某市研究员整理了三年的地铁进站量和周边商铺租金。一个很短的公式就能描述两者的共同变化,补上少量偏差后,整份记录仍比原始表短。同期,附近产业园的就业人数持续增加。研究员据此建议增加列车班次,认为这样就能提高商铺租金。

对这项建议,哪种判断最站得住?

你正在安排一次六周的自驾旅行,逐晚休息计划中有三晚只能睡不足四小时。应用建议把计划改成六个周平均值,并删除逐晚时长和日期,让报告更简洁。你要据此决定哪些早晨开车、哪些早晨休息。

为了让这份报告支持具体安排,哪种处理最合理?