2011年1月24日,星期一

机械特克建模第二部分

在一个 以前的帖子 我谈到了一个多值图像标注问题,我正在利用Mechanical Turk来获取训练数据。我讨论了Mechanical Turk标签的生成模型,该模型需要每个工人的混淆矩阵模型。当时我注意到,事实上,工人似乎主要是犯了类似的错误,特别是,系统地在区分白人和西班牙裔,西班牙裔和亚裔以及白人和亚裔方面相当差。因此,我想了想,对混淆矩阵使用分层模型将使我能够使用总体水平的信息来告知我的每个工人的混淆矩阵模型,从而提高拟合度。

从那以后,我对 标称提取物 中的软件 nincompoop 通过在混淆矩阵的元素上放置分层高斯优先级来进行项目。该模型现在为\ [
\ begin {aligned}
\ gamma_ {kk}&= 0 \\
\ gamma_ {kl}&\sim N (1, 1) \;\; (k \neq l) \\
\ alpha_i ^ {(kk)}&= 0 \\
\ alpha_i ^ {(kl)}&\sim N (\gamma_{kl}, 1) \;\; (k \neq l) \\
\ log \ beta_j&\ sim N(1,1)\\
p(L_ {ij} = l | Z_j = k,\ alpha_i,\ beta_j)&\ prope e ^ {-\ alpha_i ^ {(k,l)} \ beta_j}
\ end {aligned}
\]其中\ [
\ begin {array} {c | c}
\ mbox {变量}和\ mbox {说明} \\ \ hline
k,l和\ mbox {索引标签} \\
j&\ mbox {为图片建立索引} \\
i&\ mbox {为工作者编制索引} \\
\ gamma和\ mbox {标签对可靠性优先级} \\
\ alpha_i和\ mbox {每个工人的标签对可靠性} \\
\ beta_j和\ mbox {每个图片的难度} \\
L_ {ij}和\ mbox {观察到的由工作人员分配给图像的标签} \\
Z_j和\ mbox {与图片关联的未知真实标签}
\ end {array}
\]训练仍通过``贝叶斯EM''进行。我将$ \ gamma $估计值折叠为m步,该步在数值上似乎是稳定的。

我在以前的博客文章中的数据上运行了启用了超优先级的新模型;这是得出的$ \ gamma $估算值。注意:行标签是真实标签$ Z $,列标签是观察到的标签$ L $。 \ [
\ begin {array} {c | c | c | c | c | c}
\ gamma和\ mbox {black}和\ mbox {white}和\ mbox {asian}和\ mbox {hispanic}和\ mbox {other} \\ \ hline
\ mbox {黑色}&0&1.969921&1.608217&1.538128&2.104743 \\
\ mbox {白色}&1.822261&0&1.062852&1.160873&1.767781 \\
\ mbox {亚洲}&1.494157&0.911748&0&1.003832&1.644094 \\
\ mbox {hispanic}&0.811841&0.383368&0.190436&0&1.338488 \\
\ mbox {other}&1.017143&0.579123&-0.225708&0.607709&0 \\
\ end {array}
\]由于对角线元素为0,因此其中的单元格$ \ gamma_ {kl} < 0$ indicate that apriori a rater is more likely to output the wrong label than the correct one. So for instance the model says that when the true label is other, a rater is apriori more likely to label it asian than other. Of course, if a rater is unlikely to output the true label, that raises the question of how the model can figure this out. It potentially could be identifying a small set of raters that are consistent with each other with respect to assigning the other label, and using that to infer that the typical rater is likely to mistake others. However, Murphy's Law being what it is, I think the above $\gamma$ matrix is telling me that my data is not very good and I'm in the weeds.

那么,这种额外的超前机制会在标签分配上有所作为吗?这是一个计数矩阵,其中行是非超优先模型分配,列是超优先模型分配。 \ [
\ begin {array} {c | c | c | c | c | c}
&\ mbox {黑色}&\ mbox {白色}&\ mbox {亚洲}&\ mbox {hispanic}&\ mbox {other} \\ \ hline
\ mbox {黑色}&1689&0&0&0&0 \\
\ mbox {白色}&1&908&1&4&0 \\
\ mbox {亚洲}&0&0&872&9&59 \\
\ mbox {西班牙}&4&2&9&470&7 \\
\ mbox {other}&0&2&4&3&208
\ end {array}
\]他们大多同意,尽管超高级模型将相当一部分亚洲人转换为他人。另外,$ p(Z)$向量的大小可以略有不同,而不会影响标签(即$ \ operatorname {arg \,max} _k \; p(Z = k)$),并且大小可以在进行成本敏感的多类分类时很重要。但是我认为不会。基本上,我的数据在某些方面非常糟糕,并且很难用统计数据克服这些糟糕的数据。仍然令我感到高兴的是,我已经实现了超级优先机制,因为它可以很容易地准确地看到我是如何被搞砸的。

幸运的是,尽管没有``像好的数据一样的数据'',但我仍有成功的可能。如果我实现了钳位(即能够为一些隐藏标签分配已知值)并手动标记一些示例,则我可能能够利用少量的高质量数据来清理大量的低质量数据。质量数据。因此,我接下来将尝试。如果失败了,将来将会有很多``机械我''。

没意见:

发表评论