首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置神经网络的学习速率

如何设置神经网络的学习速率
EN

Stack Overflow用户
提问于 2014-08-28 05:17:51
回答 2查看 4.2K关注 0票数 0

参考这个关于在NN:https://stackoverflow.com/a/10568938/2265724中选择隐藏层和单元数的答案

文章建议在泛化误差开始增加之前,增加隐藏单元的数量。

但我的问题是学习速度。给定隐藏单元的值(例如,图中的一个数据点或一个特定的体系结构,例如10个隐藏单元),如何设置学习速率和训练多少个时代?

  1. 使用固定的学习速率(在检查它之后收敛,即成本下降)并运行n个周期,或直到成本(或验证错误)稳定(如果它确实以一种良好的渐进方式下降)。
  2. 如1中的早期停止一样
  3. 如1或2所示,但在一定范围内(线性或对数)尝试不同的学习速率。
  4. 如3所示,包括学习速率衰减
  5. 如3或4所示,包括体重衰减为正规化,或者更好的是辍学。

参数的数量从1增加到5.1是最快的,但听起来并不令人满意(为什么不尝试其他学习速率呢?)3-5是费时的.因为如果我不高兴,我需要尝试另一个架构,增加隐藏单元的数量。然后重复,直到得到文章中所示的图形。

我正确地理解和实践了这一点吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-28 06:00:00

用于达到较低泛化误差的学习速率可能与问题有关。从以往的经验来看,最优学习率可以根据多个参数(包括时间大小、学习迭代次数、隐层数和/或神经元数以及输入的数量和格式)而不同。为了确定所研究的每一个问题的理想学习条件,经常会使用反复试验。

过去有一些文献给神经网络参数提供了一个合理的起点,给出了训练数据量、隐层、神经元和输出量。这可能是一个很好的起点。

也许其他的动态模型可以鼓励将泛化误差从局部极小降到最小。每个问题都有自己的理想参数,需要修改参数,或者使用某种形式的动态或自动模型来寻找理想。

票数 0
EN

Stack Overflow用户

发布于 2014-10-07 16:08:51

这是一个很难解决的问题;甚至还有一个机器学习的子领域专门用于探索这个问题,称为超参数优化

解决超参数问题的最基本方法是蛮力搜索,在这种方法中,系统地改变网格上的超参数设置(“网格搜索”),并选择最佳的。这很慢,而且也很烦人,因为看起来应该有更好的方法。

关于改进网格搜索,有几种不同的思想流派:

  • 进化方法将一些适应度分数分配给超参数的组合,然后尝试重用性能良好的参数设置的组合。我最近在这个阵营中看到的最流行的方法是CMA-ES
  • 贝叶斯方法试图将某种先验分布置于研究者认为对每个超参数都是合理的值之上。然后,通过评估几种不同的超参数设置,可以以统计上最优的方式将结果性能与先验进行组合。
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25541202

复制
相关文章

相似问题

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