首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >增加或降低增加神经元或体重的学习率?

增加或降低增加神经元或体重的学习率?
EN

Stack Overflow用户
提问于 2015-12-27 00:10:30
回答 3查看 10.8K关注 0票数 9

我有一个卷积神经网络,我修改了结构。我没有时间重新训练和执行交叉验证(网格搜索最优参数)。我想直观地调整学习速度。

在下列情况下,我是否应该增加或降低RMS (基于SGD)优化器的学习速率:

  1. 我给完全连接的层增加了更多的神经元?
  2. 在卷积神经网络中,我在完全连接之前去掉了一个次采样(平均或最大池)层,并且增加了特征映射和softmax输出之间的完全连接单元的数量(这样就有更多的权值连接到顶部完全连接的神经元)?
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-12-26 08:21:08

作为一个简短的实用的答案,如果模型更复杂,那么学习速度就会降低,变量model_size大约是每层神经元的数目:

代码语言:javascript
复制
def rate(self, step = None):
    "Implement `lrate` above"
    if step is None:
        step = self._step
    return self.factor * \
        (self.model_size ** (-0.5) *
        min(step ** (-0.5), step * self.warmup ** (-1.5)))

来源:注解变压器

另见:亚当:随机优化的一种方法

票数 1
EN

Stack Overflow用户

发布于 2015-12-27 00:51:55

那么,增加更多的层/神经元增加了过度拟合的机会。因此,随着时间的推移,降低学习率会更好。去除次采样层也增加了参数的数量,并再次增加了过度拟合的机会。这是强烈建议,至少通过经验结果证明,亚抽样层可以帮助模型更好地学习。所以要避免移除它们。

此外,我建议您通过剪切图像来生成更多的示例,并使用这些裁剪版本来训练模型。作为一个正则化器,这可以帮助模型学习更好的数据分布。然后,你也可以增加层/神经元的数量,减少过度拟合的风险。

票数 11
EN

Stack Overflow用户

发布于 2018-08-23 14:24:34

我们都同意,学习率可以被看作是一种控制过度的方法,就像辍学或批次大小一样。但我之所以写这个答案,是因为我认为埃米尔的回答和评论中的以下内容具有误导性:

  • 增加更多的层/神经元会增加过度拟合的机会。因此,随着时间的推移,降低学习率会更好。
  • 由于在模型中添加了更多的层/节点,使得模型容易过度拟合.建议向局部极小方向迈出一小步。

它实际上是对面的!较小的学习率会增加过度适应的风险!

引用了超收敛:基于大学习速率的神经网络快速训练(Smith & Topin 2018) (一个非常有趣的读物):

有许多形式的正则化,如大学习率、小批大小、重量衰减和辍学。为了获得良好的性能,实践者必须平衡每个数据集和体系结构的各种正则化形式。以极高的学习率减少其他形式的正则化和正则化使培训显着地提高了效率。

所以,正如纪尧姆·雪佛里耶在他的第一条评论中所说,如果你增加正则化,如果你想保持正则化的总量不变,降低学习率可能是个好主意。但是,如果您的目标是增加正则化的总体数量,或者如果您减少了其他正则化方法(例如,减少辍学,增加批处理大小),那么学习率就应该提高。

相关(也是非常有趣):不要降低学习速度,增加批次大小(Smith等人)。(大湖区问题国际会议‘18)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34476447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档