用统计学方法找到最佳狗零食

Hacker News Top 新闻

摘要

通过成对比较实验,使用Bradley-Terry模型和Elo评分系统统计确定狗狗最喜欢的零食。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/06/22 19:35

# 用统计学找出最佳狗零食 来源:https://www.wespiser.com/posts/2026-06-19-best-dog-treat.html 发表于 2026年6月19日,作者 Adam Wespiser 比博步行者 我的灵缇犬比博普重83磅、高33英寸,它热爱三件事:快速奔跑、在家里跟着我转悠,以及零食。不管是磨牙棒、从离派对太远的孩童手中掉落的披萨,还是一小盘猫粮,它都能嗅出自己喜欢的味道,并且拥有足够的运动能力去争取得到它。我观察它进食多年,当意识到自己不知道它最喜欢的零食是什么,又无法轻松问它时,我感到很沮丧。 幸运的是,为了比博普的味蕾,Bradley-Terry 模型(https://en.wikipedia.org/wiki/Bradley%E2%80%93Terry_model)为我们提供了一种通过成对比较来找出零食“强度”的方法。该模型为每个参赛者(或零食)\(i\) 分配一个正强度分数 \(p_i\)。给定两个参赛者 \(i\) 和 \(j\),\(i\) 击败 \(j\) 的概率为: \[ \Pr(i > j) = \frac{p_i}{p_i + p_j} \] 等价地,如果我们将每个强度写成一个指数分数: \[ p_i = e^{\beta_i} \] 那么同样的概率可以写为: \[ \Pr(i > j) = \frac{e^{\beta_i}}{e^{\beta_i} + e^{\beta_j}} \] 因此,该模型表明:两个参赛者潜在强度之间的差异决定了其中一个击败另一个的对数几率。 国际象棋中使用的 Elo 评级系统与此密切相关。如果 \(R_i\) 和 \(R_j\) 是 Elo 评分,那么: \[ \Pr(i > j) = \frac{10^{R_i/400}}{10^{R_i/400} + 10^{R_j/400}} \] 然而,现代 Elo 评分是增量计算的,以避免昂贵的重新计算周期,并允许每场比赛后更新分数。比赛结束后,(A)的评分通过将实际结果与预期结果进行比较来更新: \[ R_A' = R_A + K (S_A - E_A) \] 其中 \(S_A\) 是实际得分:胜为1,平为0.5,负为0。常数 \(K\) 控制每场比赛后评分的变动幅度。 因此,如果一位选手赢了一场预期会赢的比赛,其评分只会小幅上升;如果他们赢了一场预期会输的比赛,评分则会大幅上升。从这个意义上讲,Elo 可以被视为 Bradley-Terry 思想的在线版本:每次比赛后,评分会朝着预测误差的方向移动。Elo 适用于国际象棋这类系统,因为比赛持续不断,评分需要立即更新。在这个实验中,数据集足够小,我们可以在收集试验后直接拟合 Bradley-Terry 模型。 你可能还会从电影《社交网络》中认出一种相关的模型,其中通过成对比较得出的全球排名支撑了 FaceSmash——马克·扎克伯格早期的一项社交媒体实验。¹(https://www.wespiser.com/posts/2026-06-19-best-dog-treat.html#fn1)第三个应用是 Chatbot Arena,它使用 Bradley-Terry 风格的排名来评估模型性能。²(https://www.wespiser.com/posts/2026-06-19-best-dog-treat.html#fn2)当你想要一个全局排名,但只有头对头比较数据时,Bradley-Terry 就是你可以使用的解决方案。 ## 实验 对于实验,设置很简单:我们可以取一组零食,给它们贴上标签,然后进行一系列成对比较,以找出哪种零食最好!在实验开始前,我训练了一个“选择”指令。每天大约晚上11点,我会去厨房,选择两种不同的零食,说出“选择”这个词,然后双手各拿一个零食让比博普只能拿一个,另一个放回袋子里。到实验开始时,比博普已经习惯了这套流程,会在拿走一个之前闻一闻两种零食。 提供零食图表 对于零食的选择,我使用了一些我们以前吃过的零食,比如 Greenies,并在亚马逊上搜索了各种不同形式的零食。每种零食的大小略有不同,但为了简单起见,我决定忽略这些差异。这可能会在结果中引入大小偏差,但实验是在晚餐后约2小时进行,所以它应该已经吃饱了,而且结果与实验后我给它零食的方式一致。换句话说,我对一个需要我切碎并称重狗零食的实验不感兴趣。 所选零食如下: - **零食 A** 是 MON2SUN,鸭肉 + 生皮。亚马逊链接 (https://a.co/d/0fHGS7je) - **零食 B** 是 Greenies,大号。亚马逊链接 (https://a.co/d/00NQJ3My) - **零食 C** 是 Pork Chomps,红色款。亚马逊链接 (https://a.co/d/057iV8Hx) - **零食 D** 是 MON2SUN,鸡肉 + 生皮。亚马逊链接 (https://a.co/d/0b6fPjkO) - **零食 E** 是 Pur Luv Chicken,脱水鸡肉。亚马逊链接 (https://a.co/d/0dAhjcju) ## 数据 对于配对,我制定了每日计划,每天进行两次头对头比较。完整源代码见 GitHub (https://github.com/adamwespiser/best-dog-treat/blob/main/data/experimental-notes.txt) ``` C/B :: B E/B :: E ``` 在这个例子中,我们有两场头对头对决,这是一天的试验。第一场左边是零食 C,右边是零食 B,胜者是 B。第二场左边是 E,右边是 B,胜者是 E。为了估计结果有多稳定,我进行了一项自助法实验:反复对试验进行重采样,为这些样本拟合 Bradley-Terry 模型,并记录每种零食名列榜首的频率。GitHub 源代码 (https://github.com/adamwespiser/best-dog-treat) 大约在实验进行到一半时,我意识到零食 C 和 B——“Pork Chomps”和 Greenies——正在稳定地输掉。由于这些已经出局,我将任何原计划包含 C 或 B 的试验标记为 `X`,表示该试验被跳过,并增加了更多的 A/D/E 试验以提高统计效力。 头对头热力图 ## 结果 在相同零食的试验中,比博普始终选择它右侧的零食,也就是我左手拿的。这并不能证明它是“右爪”倾向,因为我测量的是侧边选择而非爪子使用,但确实表明在这个设置中存在可测量的右侧偏差。一个可能的解释是我厨房布局的不对称性:左侧靠近一个窗式风扇,试验期间有时会打开,但没有加以控制。 手部偏差图表 对于最佳零食,E 是目前的领先者,有强有力的证据表明 C 和 B 较差。A 仍然是一个有潜力的挑战者,因为 E/A 头对头比分仅为 3-2,模型隐含的 E 击败 A 的概率为 57.5%。D 可行,但明显落后于 E 和 A。进一步的采样应几乎全部集中在 E vs A 上,只有当我们关心验证层级边界时,才偶尔进行 A/D 或 E/D 检测。 Bradley-Terry 分数图表 为了估计结果有多确定,我还进行了一项自助法实验:反复对观察到的试验进行重采样,每次拟合一个新的 Bradley-Terry 模型,并记录哪种零食胜出。零食 E 在 63% 的自助样本中排名第一,零食 A 在 33% 中排名第一,零食 D 在大约 4% 中排名第一。零食 B 和 C 实际上已退出竞争。 因此,就目前而言,零食 E 获胜:Pur Luv Chicken 是比博普的现任冠军,这很合理,因为它是干鸡肉。然而,结果尚未完全确定。零食 A 足够接近,以至于唯一诚实的下一步是进行更多的 E/A 试验,这也方便,因为比博普对科学过程仍然高度投入。 ## 自助法最佳机会图表 比博普花朵 ### 源代码 GitHub 项目 (https://github.com/adamwespiser/best-dog-treat) ### 脚注 --- 1. https://www.thecrimson.com/article/2003/11/19/facemash-creator-survives-ad-board-the/↩︎ (https://www.wespiser.com/posts/2026-06-19-best-dog-treat.html#fnref1) 2. https://www.lmsys.org/blog/2024-08-28-style-control/↩︎ (https://www.wespiser.com/posts/2026-06-19-best-dog-treat.html#fnref2)

相似文章

DOG-DPO:面向安全对齐的几何动态优化

arXiv cs.LG

DOG-DPO 是一种无需训练的数据选择框架,它将偏好对视为结构化几何信号,将多数据集偏好几何分解为锚定子空间和残差子空间,以选择多样化的子集用于安全对齐。该框架在六个安全基准测试中仅使用 11% 的偏好对就实现了强大的效用-鲁棒性权衡。