微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用预测概率模型压缩序列?

如何解决如何使用预测概率模型压缩序列?

让我们假设我们的序列由包含 50 个符号的字母表中的符号组成。因此,每个符号都可以用 7 位 (2^7 = 64 > 50) 进行编码。这意味着每个给定的符号序列都可以表示为 0 和 1 的序列。

现在,让我们假设序列中的符号不​​是完全随机的,因此它们在某种程度上是可预测的。更详细地,给定序列中的前 N ​​个符号,我们可以估计每个符号作为序列中的下一个符号的可能性有多大。例如,我们可以说 A 预计出现的概率为 0.01,B 预计出现的概率为 0.3,依此类推。

我相信这样的预测模型可以用来压缩数据。我的问题是应该如何做。或者,更详细地说,使用预测模型压缩数据的最佳方法是什么。


我想到了以下方向。在给定阶段,对于所有符号,我们都有估计的概率,因此可以根据它们的概率(从最可能的符号到最不可能的符号)对所有符号进行排序。然后第一个符号由 0 编码,第二个由 1 编码,第三个由 00 编码......所以,编码是:

[0,1,00,01,10,11,000,001,...,111110,111111]

通过这种方式,符号通常会得到少量比特的编码。但是,这些编码包含逗号。例如,原始符号序列可以表示为:

[0,0110,...]

逗号不在字母表中。

我还考虑了按概率排序的列表中符号的以下编码:

[0,110,1110,11110,....]

然后使用0作为分隔符(而不是逗号),1的个数代表符号在列表中的位置。但同样,我不确定这是使用比特的最有效方式,也是利用预测模型的最佳方式。

解决方法

是的,这样的预测模型可用于压缩数据,只要该模型能够很好地预测下一个符号。这正是 arithmetic coding 设计的那种概率模型。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。