`vw --audit`内部如何计算特征的权重?

问题描述 投票:0回答:1

在vowpawabbit中,有一个选项是 --audit 打印特征的权重。

如果我们有一个 vw 情境匪徒模型有四条手臂,这个特征权重是如何创建的?

根据我的理解,vowpawabbit试图为每个手臂拟合一个线性模型。

所以,如果权重是用所有手臂的平均数来计算的,那么它们一般会与获得奖励相关,而不是哪个特征使模型从另一个变种中选择一个。

我有兴趣知道出他们是如何计算的,看看我可以如何解释得到的结果。我试着搜索 其Github版本库 但找不到任何有意义的东西。

vowpalwabbit
1个回答
1
投票

我有兴趣知道他们是如何计算的,看看我可以如何解释得到的结果。

不幸的是,知道了第一条并不能导致知道第二条。

你的问题涉及到上下文匪,但需要注意的是,解释模型参数是一个在监督学习中也会出现的问题。机器学习最近(也就是我这辈子)取得的进展主要是关注预测的质量而不是模型参数的意义。 在一个 博文,Phoebe Wong概述了这个问题,同时也很有趣。

底线是我们的模型不是因果关系,所以你根本不能因为 "特征X对于手臂A的权重很大就意味着如果我对系统进行干预,增加这个特征值,我玩手臂A会得到更多的奖励 "而得出结论。

目前,我们正在研究用于模型检验的工具,这些工具利用了以下技术,如 置换重要性 这将帮助你回答诸如 "如果我停止使用某个特定的功能,对于训练好的策略来说,每个手臂的播放频率会发生怎样的变化 "这样的问题。 我们希望这是有帮助的信息。

说了这么多,让我试着回答你最初的问题......。

在vowpawabbit中有一个选项--audit,可以打印特征的权重。

如果我们有一个有四条手臂的vw上下文强盗模型,这个特征权重是如何创建的?

文件中的格式是这样的 此处. 假设您使用的是 --cb (不是 --cb_adf),那么就有固定数量的武器,所以 offset 字段将在手臂上递增。 因此,对于这样一个例子

1:2:0.4 |foo bar

--cb 4 你会得到一个审计输出 namespacefoo, featurebaroffset 的0、1、2和3。

解释当使用 --cb_adf 是可能的,但很难简洁地解释。

根据我的理解,vowpawabbit试图为每个手臂拟合一个线性模型。

更短的答案: 有 --cb_type dm从本质上讲,VW独立地尝试预测每个臂的平均奖赏,只使用策略使用该臂的例子。 因此,您从特定偏移量 N 的审计中获得的权重类似于您从一个监督学习模型中获得的权重,该模型被训练成在历史数据的子集上预测奖励,该子集仅由历史策略扮演N臂的次数组成。--cb_type 设置的解释比较复杂。

较长的答案: "线性模型 "指的是所使用的表示方法。 大众汽车可以将非线性纳入模型,但我们暂时忽略这一点。 "拟合 "是一些重要的细节所在。 VW将CB问题的部分反馈信息(部分反馈="对于这个例子,你不知道没有拉动手臂的奖励"),并将其简化为全反馈监督学习问题(全反馈="对于这个例子,你做所有手臂的奖励")。 该 --cb_type 论点选择还原策略。 关于这个话题有几篇论文,一个好的开始是 杜迪克等人。 然后寻找引用这篇论文的论文。在代码方面,最终的事情是立足于 此处但代码的编写更多的是为了性能,而不是智能化。

© www.soinside.com 2019 - 2024. All rights reserved.