如何在不改变线性回归学习率的情况下加强学习

时间:2017-02-18 05:17:25

标签: machine-learning

每当我制作一个线性回归模型时,它一直都是分歧的。我真的找不到任何解决方案。但是当我将学习率改为0.0000252时,它确实有效!但另一个问题是它学得很慢,所以我必须等待模型学习超过10分钟。

如何在不改变学习率的情况下加强学习?

1 个答案:

答案 0 :(得分:2)

第一个问题是:为什么要使用SGD(我在这里假设)。线性回归有更专业的学习程序,部分不需要那种超参数调整。也许你处于一个非常大规模的环境中,然后SGD是一种有效的方法。

假设基于SGD的学习是要走的路:

  • 您应该使用某种学习计划
    • 至少添加学习率衰减,这会降低学习率,例如在每个时代之后将学习率降低0.9(是的,再多一个超参数)
    • 尝试使用某种动力,例如: Nesterov-momentum是为凸优化而开发的(你的情况是凸的)并且有很强的保证
      • 这种动量在非凸设置中甚至很流行
      • 大多数DeepLearning库应该提供这种开箱即用的
  • 您可以尝试基于自适应学习率的算法,例如:
    • Adam,AdaDelta,AdaGrad,......
    • 这些试图消除选择那些LR超参数的负担,同时尽可能快地尝试收敛
      • 当然,他们是启发式(严格说话),但它们似乎适用于大多数人(虽然优化的SGD在大多数时候是最好的)
      • 大多数DeepLearning库应该提供这种开箱即用的
  • liblinear或其他
  • 等线性模型使用专门的软件

还有一件事,因为我很惊讶在这个简单的问题上容易观察到分歧:规范你的输入!