在线学习中的正则化和功能扩展?


15

假设我有一个逻辑回归分类器。在正常的批处理学习中,我会使用正则化项来防止过度拟合并保持较小的体重。我还将规范化和缩放我的功能。

在在线学习环境中,我获得了连续的数据流。我对每个示例都进行了梯度下降更新,然后将其丢弃。我应该在在线学习中使用特征缩放和正则化术语吗?如果是,我该怎么办?例如,我没有一组可用于扩展的训练数据。我也没有设置验证来调整我的正则化参数。如果没有,为什么不呢?

在我的在线学习中,我不断获得大量示例。对于每个新示例,我都会做一个预测。然后在下一个时间步骤中,我得到了实际目标并进行了梯度下降更新。

Answers:


9

开源项目vowpal wabbit包括在线SGD的实现,该功能通过动态(在线)计算影响重量更新的3个其他因素而得到增强。这些因素可以通过各自的命令行选项启用/禁用(默认情况下,所有三个--sgd选项均处于打开状态,该选项将其全部关闭,即:退回“经典” SGD)。

3个SGD增强选项是:

  • --normalized 根据每个功能的规模调整更新
  • --adaptive 使用自适应渐变(AdaGrad)(杜契,哈桑,歌手)
  • --invariant 重要性更新(Karampatziakis,兰福德)

他们共同确保在线学习过程针对以下方面进行三项自动补偿/调整:

  • 每特征缩放(大或小​​)
  • 基于特征重要性的每特征学习率衰减
  • 每个特征的自适应特征学习率调整,用于示例中的特征普遍性/稀有性

结果是,无需预先规范化或缩放不同的功能即可使学习者减少偏见并提高其效率。

此外,vowpal wabbit还通过带有正则化选项的截断梯度下降实现在线正则化:

  • --l1 (L1-范数)
  • --l2 (L2-范数)

我在多个数据集上进行这些增强的经验是,当将它们中的每一个引入到代码中时,它们可以显着提高模型的准确性和更平滑的收敛。

以下是一些与这些增强功能相关的详细学术论文:


Arielf -如果关闭了三重增强(通过--sgd)是正在做的幻灯片11中所示的SGD github.com/JohnLangford/vowpal_wabbit/wiki/v6.1_tutorial.pdf使然后power_t和initial_t成为相关?
B_Miner

1
B_miner:据我了解--power_t--initial_t它们是全局(不是每个功能)独立的选项。 --sgd仅还原为“经典” SGD。IOW:--sgd仅取消--invariant--normalized--adaptive(这意味着每个功能的学习率是分开的)
arielf

您是否知道是否可以通过并行异步方式进行这些更新(就像在异步SGD中一样)?大众汽车公司似乎有多名工人,他们在每次通行证结束时都会平均每个工人的模型。有关如何执行此操作的任何论文/软件指南?
JC1


1

是的,您当然需要正则化...它还有助于梯度下降(并将学习率初始化为1 / C)

参见例如SGD-QN论文http://leon.bottou.org/papers bottou的论文

您还没有真正解释在线学习的含义:例如,您获得每一点的目标价值吗?我不知道如何合并...搜索C ...我想您将拥有多个具有不同正则化术语的分类器并跟踪预测误差(在更新权重之前)


通过在线学习,我得到了一个例子并进行了预测。在下一个时间步骤中,我将获得示例的实际目标并进行梯度下降更新。
siamii

好吧,那应该像我建议的那样-您运行一堆具有不同正则化参数的分类器,并跟踪每个分类器的预测误差。
seanv507

我不确定将学习率初始化为1 / C是什么意思。什么是C?您是否在谈论支持向量机?我说的是逻辑回归,其中正则化器具有系数lambda。我不知道这与学习率有什么关系。
siamii 2013年

是l2正则化参数C,lambda或其他参数。在bottou的sgdqn论文中一旁提到的东西,我想在其他地方可以做更好的解释。基本上,您的学习率应该是误差面的1 /曲率(Hessian的倒数)..现在,如果您的误差面是
seanv507 2013年

1
我还需要进行特征缩放吗?如何在网上设置呢?
siamii
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.