2011年11月28日,星期一

重要性感知多项式逻辑更新

由于我在内部使用多项逻辑回归 弹奏钢琴 我很好奇是否有 重要度更新 为了它。我正在使用的损失函数是目标概率向量$ q $和权重$ w $和输入特征$ x $计算的预测概率向量$ p $的交叉熵。
\ begin {aligned}
l(x,w,q)&= \ sum_ {j \ in J} q_j \ log p_j(x,w),\\
p_k(x,w)&= \ frac {\ exp(x ^ \ top w_k)} {\ sum_ {j \ in J} \ exp(x ^ \ top w_j)},\\
w_0&= 0。
\ end {aligned}
通常,通过集成瞬时损失函数的梯度动力学来得出重要性感知更新,对于该更新,通常的SGD更新步骤可以看作是一阶欧拉逼近。对于$ j>0 $,权重的梯度动力学为\ [
\ begin {aligned}
\ frac {d w_j(t)} {d t}&= \ frac {\ partial l(x,w(t),q)} {\ partial w_j(t)} \\
&= \ bigl(q_j-p_j(x,w(t))\ bigr)x。
\ end {aligned}
\]所有的梯度都指向相同的方向,因此我将寻找形式$ w_j(t)= w_j + s_j(t)x $的解,得出\ [
\ begin {aligned}
\ frac {d s_j(t)} {d t}&= q_j-\ tilde p_j(x,w,s(t)),\\
\ tilde p_k(x,w,s)&= \ frac {\ exp(x ^ \ top w_k + s_k x ^ \ top x)} {\ sum_ {j \ in J} \ exp(x ^ \ top w_j + s_j x ^ \ top x)} \\
&= \ frac {p_k(x,w)\ exp(s_k x ^ \ top x)} {\ sum_ {j \ in J} p_j(x,w)\ exp(s_j x ^ \ top x)},\ \
s_j(0)&= 0。
\ end {aligned}
\]在这一点上,我无法取得分析进展。但是,这现在看起来像$(| J | -1)$维ODE,由于可以记住$ p $和$ x ^ \ top x $,因此其右手边可以用$ O(| J |)$计算。因此,在实践中,可以将其数字化集成,而不会产生大量开销(我只看到整体速度降低了10% 弹奏钢琴)。对于顺序案例,Polytomous Rasch有一个类似的技巧。

即使在所有重要权重都为1的数据集上,我也得到了改进的结果。这不是破天荒的举动,但我确实看到了在一些问题上的泛化误差的持续适度改善。我怀疑如果我详尽地搜索学习参数的空间(初始学习率$ \ eta $和幂律衰减$ \ rho $),我可能会找到无需提升重要性即可更新的提升设置。但这是重要性感知更新的好处之一:它使最终结果对学习速率参数的选择不那么敏感。

没意见:

发表评论