经验信息瓶颈
embo的Python项目详细描述
EMBO-经验瓶颈
信息瓶颈分析的Python实现 框架[Tishby, Pereira, Bialek 2001],特别是齿轮 对具体的,有限大小的数据集的分析。在
要求
embo
需要python3、numpy
和{
安装
要安装最新版本,请运行:
pip install embo
(根据您的系统,您可能需要使用pip3
而不是{
测试
(需要setuptools
)。如果您的
系统,查找安装的test_embo.py
脚本的副本
与其余的embo
文件一起执行。例如:
或者,如果您已经从 源分发运行的根文件夹:
python setup.py test
这应该在embo/test
中指定的所有测试中运行。在
使用
信息瓶颈
我们用[Tishby, Pereira, Bialek 2001]表示一个将军 介绍信息瓶颈。简单地说,如果X和Y 是两个随机变量,我们有兴趣找到另一个随机变量 变量M(称为“瓶颈”变量)用于解决 以下优化问题:
最小{p(m | x)}I(m:x)-βI(m:Y)
对于任何β>;0,且其中M被约束为独立于 Y条件为X:
p(x,m,y)=p(x)p(m | x)p(y | x)
直观地说,我们想要找到随机映射p(M | X),它 从X中提取尽可能多的关于Y的信息 忘记所有无关的信息。β是自由参数 这就决定了遗忘无关信息的相对重要性 而不是记住有用的信息。通常,人们对 由I(M:X)和I(M:Y)在 一系列β值的瓶颈问题。这条曲线 给出了压缩和预测的最佳折衷,告诉我们 一个人需要知道的关于X的最小信息量是多少 为了能够准确地预测Y,或者反之亦然,什么 是在给定一定的条件下,预测Y的最大精度 关于X的信息量
使用embo
在embo中,我们假设X和Y的真正联合分布不是
可用,我们只有一套联合经验
观察。我们还假设X和Y都是有限数
离散值。软件包的主要入口是
EmpiricalBottleneck
类。在其构造函数中,EmpiricalBottleneck
将X和an的观测值数组作为参数(相等
long)Y的观测值数组,以及其他可选的
参数(有关详细信息,请参阅docstring)。最基本的用途
在这种情况下,用户可以调用
EmpiricalBottleneck
对象,它将返回一组β值和
与β相对应的I(M:X)和I(M:Y)的最佳值。这个
然后,通过绘制I(M:Y)与I(M:Y)的图,可以直观地看到最佳的折衷。在
例如:
importnumpyasnpfrommatplotlibimportpyplotaspltfromemboimportEmpiricalBottleneck# data sequencesx=np.array([0,0,0,1,0,1,0,1,0,1])y=np.array([0,1,0,1,0,1,0,1,0,1])# compute the IB bound from the dataI_x,I_y,β=EmpiricalBottleneck(x,y).get_empirical_bottleneck()# plot the optimal compression-prediction boundplt.plot(I_x,I_y)
更多示例
使用合成数据的一个简单示例位于 embo/examples/Basic-Example.ipynb。 一个更有意义的例子位于 embo/examples/Markov-Chains.ipynb, 在这里我们计算过去和 不同马尔可夫链生成的时间序列的未来。在
更多详情
有关详细信息,请参考
empirical_bottleneck
和{
作者
embo
由Eugenio Piasini、Alexandre Filipowicz和
乔纳森·莱文。在
- 项目
标签: