排序列表上的分布

机器算法验证 分布 采样 离散数据
2022-03-27 10:54:25

假设我们有一个有序的项目列表

[a, b, c, ... x, y, z, ...]

我正在寻找由一些参数 alpha 控制的上述列表中支持的一系列分布,以便:

  • 对于 alpha=0,它将概率1分配给第一项,a 上面,0 分配给其余的。也就是说,如果我们从这个列表中采样,并进行替换,我们总是得到a.
  • 随着 alpha 的增加,我们为列表的其余部分分配越来越高的概率,尊重列表的顺序,遵循 ~ 指数衰减。
  • 当 alpha=1 时,我们为列表中的所有项目分配相等的概率,因此从列表中采样类似于忽略其顺序。

这与几何分布非常相似,但有一些显着差异:

  • 几何分布分布是在所有自然数上定义的。在我上面的例子中,列表的大小是固定的。
  • 没有为 alpha=0 定义几何分布。
2个回答

让我们假设ri, 列表元素的排名i, 有一个值{0,1,,n1}对于一个列表n元素(可以随机打破关系)。然后我们可以定义选择的概率i成为:

pi=αrik=1nαrk

这基本上只是一个适当归一化的截断几何分布,它也Softmax 函数有关在特殊情况下α=0, 使用约定00=1. 请注意,分母总是可以写成简单的封闭式表达式。为了α<1它需要价值1αn1α,并且对于α=1它需要价值n.

α=1,很明显,这只是为每个元素分配相等的概率。作为α0,这种方法将所有概率质量赋予第一个元素。

在包含 10 个元素的列表中,您要求的大致指数减少很明显α=0.5

p00.5005p10.2502p20.1251p30.0626p40.0313p50.0156p60.0078p70.0039p80.0020p90.0010

下面绘制了第一个元素被选中的概率如何变化α,使用长度为 10 的列表。

在此处输入图像描述

我将尝试从第一原则构建一个示例。

让我们以三个分布作为我们的构建块:

  • P 是将概率 1 分配给列表的第一个元素,将 0 分配给所有其他元素的分布。
  • E 是分布分配概率12到列表的第一个元素,14到下一个,以此类推。由于列表是有限的,因此这些不会总和1,但我们可以归一化以获得概率分布。
  • U 是列表上的均匀分布。

现在我们要采用这些分布的正凸组合的单参数族

α(t)P+β(t)E+γ(t)U

在哪里α(t)+β(t)+γ(t)=1对全部t[0,1],具有额外的属性α(0)=1γ(1)=1.

在几何上,我们想要(α(t),β(t),γ(t))在点之间的等边三角形中画出一条曲线(1,0,0),(0,1,0),(0,0,1)从第一个角开始,到最后一个角结束。此外,由于我们希望分布在中间时间看起来“指数”,我们希望曲线有时占据三角形的内部t(0,1).

这是曲线的一个选项:

(1t(1t))(1t,0,t)+t(1t)(13,13,13)

我从我们想要的属性逆向构建了这个工作。曲线(1t,0,t)沿着起始顶点和结束顶点之间的三角形边缘运行。公式的其余部分只是这条边曲线和单点的凸和(13,13,13),有时会将曲线沿边缘推入内部t(0,1).