关于信息学中的熵概念,有个小问题想请教一下。

super_chris 2011-09-07 05:02:12
信息学中认为,一个事件所包含的信息量可以用熵来描述,熵在形式上与每个取值的概率有关,等于该概率对2取对数,再乘以该概率,再对所有取值求和,最后加一个符号。熵在数值上等于描述这一事件所需要的比特位,也就是我们想要用它来描述的信息量。我们都知道,对于一个有两个相等概率结果的事件,如抛硬币,熵是1,描述这一事件需要一个比特位,true or false。
同时,根据公式表明,各个取值的概率越平均,熵就越大,因为越难猜,因此一旦得知结果获得的信息就越多。
如果一个二元事件,两个取值概率不相等,即一个大于0.5,一个小于0.5,则熵必然小于1,意思就是描述这一事件所需的比特位小于1。
我的问题是,这应该如何理解?怎么用少于一个比特位来描述这个事件。
谢谢。
高手出现吧!
...全文
233 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
super_chris 2011-09-14
  • 打赏
  • 举报
回复
YEAH!COOL!
THAT'S WHY!
这就说通了。
[Quote=引用 13 楼 yyfhz 的回复:]

计算机里头最小的表示单位自然是一个bit-- 不过书上所讲的用少于1个bit的位数来表示一个事件并不是一个单纯的实现问题,而是想要说明对于一个非完全随机事件,我们可以通过对较大概率结果赋予较小的码长而获得信息无损压缩的效果。

的确,由于2元事件,1个bit是必须的,但是对于有更多可能状态的事件,其长度确实是可以压缩的。
比方说对于一个有4种可能结果(a,b,c,d)的事件序列(abaab……
[/Quote]
yyfhz 2011-09-14
  • 打赏
  • 举报
回复
计算机里头最小的表示单位自然是一个bit-- 不过书上所讲的用少于1个bit的位数来表示一个事件并不是一个单纯的实现问题,而是想要说明对于一个非完全随机事件,我们可以通过对较大概率结果赋予较小的码长而获得信息无损压缩的效果。

的确,由于2元事件,1个bit是必须的,但是对于有更多可能状态的事件,其长度确实是可以压缩的。
比方说对于一个有4种可能结果(a,b,c,d)的事件序列(abaabcda...),正常的2进制编码需要用2个bit来表示一个结果(即码长为2),但是如果我们知道a的发生概率为0.8,b的发生概率为0.1,c、d的发生概率为0.05,
则可以设计如下的编码格式:
a=1
b=01
c=000
d=001
这样编码后的结果,其期望长度为0.8*1+0.1*2+0.05*3+0.05*3=1.3<2。
具体的LZ可以去查一下熵编码。
super_chris 2011-09-08
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 cnmhx 的回复:]

如果只描述一个二元事件的话,由于最小单位就是比特,所以要1个比特。
但是如果要描述很多个(n个)二元事件,就用不了n比特。
平均意义上讲,每个不到1比特。
[/Quote]
请问多个二元事件如何用少于n比特进行描述?
cnmhx 2011-09-08
  • 打赏
  • 举报
回复
如果只描述一个二元事件的话,由于最小单位就是比特,所以要1个比特。
但是如果要描述很多个(n个)二元事件,就用不了n比特。
平均意义上讲,每个不到1比特。
super_chris 2011-09-08
  • 打赏
  • 举报
回复
等我搞明白了就结贴
super_chris 2011-09-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 fengjian_428 的回复:]

另外 半个bit不存在 但用半个比特表示一个信息是可行的
楼主要想完全搞懂就去看相关资料 该讲的我应该都讲了
[/Quote]
恩,再次感谢~
yuimo 2011-09-07
  • 打赏
  • 举报
回复
理论和实现吧,我觉得。
fengjian_428 2011-09-07
  • 打赏
  • 举报
回复
另外 半个bit不存在 但用半个比特表示一个信息是可行的
楼主要想完全搞懂就去看相关资料 该讲的我应该都讲了
fengjian_428 2011-09-07
  • 打赏
  • 举报
回复
熵H=∑-P[s]*logP[s]

P[s]为符号出现的概率 你可以用这个公式看看是不是两个概率都是0.5时熵最大(符号大于两个的时候也一样的)
信息量I=-logP[s] 如果P[s]大于0.5 I就小于1个比特 如果你还是用一个比特来表示这个信息 不就冗余了吗
super_chris 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 goonyangxiaofang 的回复:]

一个大于0.5,一个小于0.5,则熵必然小于1,意思就是描述这一事件所需的比特位小于1。

还是用一个 bit 描述,只不过是存在信息冗余了。

0 个 bit 不能表示任何信息,不存在半个 bit 的吧,只能取整。
[/Quote]
恩,那请问如何理解这个信息冗余?怎么冗余了?怎么证明这个冗余存在?
谢谢
super_chris 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fengjian_428 的回复:]

最小单位就是比特 所以如果只描述一次的话 非0即1
但是如果是一串事件的集合 使用算术编码 可实现少于一个比特描述事件
原理可参照《深入搜索引擎》 算术编码部分
[/Quote]
谢谢,有机会看看
GoonYangXiaofang 2011-09-07
  • 打赏
  • 举报
回复
一个大于0.5,一个小于0.5,则熵必然小于1,意思就是描述这一事件所需的比特位小于1。

还是用一个 bit 描述,只不过是存在信息冗余了。

0 个 bit 不能表示任何信息,不存在半个 bit 的吧,只能取整。
fengjian_428 2011-09-07
  • 打赏
  • 举报
回复
算术编码无限趋近与香浓定理
fengjian_428 2011-09-07
  • 打赏
  • 举报
回复
最小单位就是比特 所以如果只描述一次的话 非0即1
但是如果是一串事件的集合 使用算术编码 可实现少于一个比特描述事件
原理可参照《深入搜索引擎》 算术编码部分

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧