2015年11月30日,星期一

样本方差惩罚

在大多数情况下,有监督的机器学习是通过优化训练集上的平均损失(即经验风险最小化)来完成的,也许添加了(通常不依赖数据)正则化术语。但是,有一篇不错的论文毛雷尔(Maurer)和庞蒂尔(Pontil)几年前的介绍 样本方差惩罚。基本思想是在训练集上优化损失的第一刻和第二刻的组合:这是由经验伯恩斯坦界限,霍夫丁界限的精炼(这是经验风险最小化的正式基础)很好地激发的。除其他外,界限表示,在给定两个具有相同平均经验损失的假设的情况下,您应该偏向于具有较低经验损失方差的假设。一般而言,优化边界会导致目标函数\ [
f(w)= \ mathbb {E} [l(y,h(x; w))] + \ kappa \ sqrt {\ mathbb {E} \ left [\ left(l(y,h(x; w) )-\ mathbb {E} [l(y,h(x; w))] \ right)^ 2 \ right]} \ doteq \ mu(l; w)+ \ kapp \ \ sigma(l; w),
\]期望值超出训练集,即只是写出经验平均值的一种简洁方法; $ h(x; w)$是由向量$ w $参数化的某些假设类别,$ l $是损失,$ y $是标签,$ \ kapp $是(还有!)超参数。

据我所知,这并没有真正起飞(尽管 事实风险最小化 使用它,这非常酷)。目标是非凸面的,这在当时可能是负面特征。该目标还涉及批次数量,也许这是负数。如今,无论如何,我们都在进行非凸目标的小批量训练,因此SVP值得一提。如果您打开曲柄,则会得到\ [
\ nabla_w f(w)= \ mathbb {E} \ left [\ left(1 + \ kappa \ frac {l(y,h(x; w))-\ mu(l; w)} {\ sigma(l ; w)} \ right)\ nabla_w l(y,h(x; w))\ right],
\]看起来像是SGD,其学习速度可变:比平均损失差的示例获得更高的学习率,而比平均损失更好的示例获得更低(可能为负!)的学习率。度量单位定义“worse” and “better”是损失方差。在实践中,我发现负面的学习率令人反感,因此我将下界定为零,但是对于$ \ kappa $有用的值(0.25是一个很好的初始猜测),通常并不重要。

批次数量$ \ mu(l; w)$和$ \ sigma(l; w)$看起来很痛苦,但以我的经验,您可以用小批量估计替换它们,这仍然很有帮助。使用此技术,我在解决一些问题时变得谦虚但始终如一, 极限学习 (神经)语言建模等问题。当然,您应该只考虑在怀疑所需模型类将过拟合并且正则化很重要的问题上应用此技术:极端学习问题具有这种结构,因为许多尾类都具有接近单例的支持。 YMMV。