作家
登录

理解深度学习的钥匙–参数篇

作者: 来源: 2017-04-19 11:21:34 阅读 我要评论

你经由过程简化收集来加快实验进⾏更有意义的进修,如不雅你信赖 [784,10] 的⽹络更可能⽐随机加倍好的分类效不雅,那么就大年夜这个⽹络开端实验,这会⽐练习⼀个 [784,30,10] 的⽹络更快,你可以进⼀步测验测验后⼀个。

你可以经由过程提⾼监控的频率来在实验中获得另⼀个加快了,比如我们将练习数据削减到前 1,000 幅 MNIST 练习图像。让我们测验测验⼀下,看看结不雅:

在上⾯的例⼦中,我设置 λ=1000.0,跟我们之前⼀样。然则因为这⾥改变了练习样本的个数,我们必须对 λ 进⾏调剂以包管权重降低的同步性,这意味着改变 λ =20.0,如不雅我们如许设置,则有:

这种行动看起来和⼈类进修⾏为差别很,我们平日是在犯错⽐脚绫趋显的时刻进修的速度最快,然则我们已经看到了⼈⼯神经元在其犯错较⼤的情况下其实进修很有难度,⽽且,这种现象不仅仅是在这个⼩例⼦中出现,也会在加倍⼀般的神经⽹络中出现,为何进修如斯迟缓?我们可以或许找到避免这种情况的办法吗?

哦也!如今有了旌旗灯号了,不是异常糟糕的旌旗灯号,却真是⼀个旌旗灯号。我们可以基于这点,来改变超参数大年夜⽽获得更多的晋升,可能我们猜测进修速度须要增长(你可以能会发明,这只是⼀个不⼤好的猜测,原因后⾯会讲,然则信赖我)所认为了测试我们的猜测就将 η 调剂⾄ 100.0:

这并不好!告诉我们之前的猜测是缺点的,问题并不是进修速度太低了,所以,我们试着将η 将⾄ η = 1.0:

如许好点了!所以我们可以持续,逐个调剂每个超参数,慢慢晋升机能。⼀旦我们找到⼀种晋升机能的 η 值,我们就可以测验测验寻找好的值。然后按照⼀个加倍复杂的⽹络架构进⾏实验,假设是⼀个有 10 个隐蔽元的⽹络。然后持续调剂 η 和 λ。接着调剂成 20 个隐蔽元。然后将其他的超参数调剂再调剂。如斯进⾏,在每⼀步应用我们 hold out 验证数据集来评价机能,使⽤这些度量来找到越来跃?锬超参数,当我们这么做的时刻,⼀般都须要花费更多时光来发明因为超参数改变带来的影响,如许就可以⼀步步削减监控的频率。

所有这些作为⼀种宽泛的策略看起来很有前程。

10、进修速度

假设我们运⾏了三个不合进修速度(η = 0.025、η = 0.25、η = 2.5)的 MNIST 收集,我们会像前⾯介绍的实验那样设置其他的超参数,进⾏30 回合,minibatch ⼤⼩为 10,然后λ = 5.0,我们同样会使⽤全部 50,000 幅练习图像,下⾯是⼀副展⽰了练习价值的变更情况的图:

使⽤ η = 0.025,价值函数腻滑降低到最后的回合,使⽤ η = 0.25,价值刚开端降低,在⼤约20 回合后接近饱和状况,后⾯就是渺小的┞佛荡和随机颤抖,最终使⽤ η = 2.5 价值大年夜始⾄终都震动得⾮常明显,畏敲?解震动的原因,回想⼀下随机梯度降低其实是期望我们可以或许逐渐地抵达价值函数的⾕底的:

然⽽,如不雅 η 太大年夜的话,步⻓也会变⼤可能会使得算法在接近最⼩值时刻⼜超出了⾕底,这在η = 2.5 时⾮常可能发⽣。当我们选择 η = 0.25 时,初始⼏步将我们带到了⾕底邻近,但⼀旦达到了⾕底,⼜很轻易跨越以前,⽽在我们选择 η = 0.025 时,在前 30 回合的练习中不再受到这个情况的影响。当然,选择太⼩的进修速度,也会带来另⼀个问题 —— 随机梯度降低算法变慢了,⼀种加倍好的策略其实是,在开端时使⽤ η = 0.25,跟着越来越接近⾕底,就换成 η = 0.025,如今,我们就聚焦在找出⼀个零丁的好的进修速度的选择η。

所以,有了如许的设法主意,我们可以如下设置 η。⾸先,我们选择在练习数据上的价值⽴即开端降低⽽非震动或者增长时作为 η 的阈值的估计,这个估计并不须要太过精确,你可以估计这个值的量级,⽐如说大年夜 η = 0.01 开端,如不雅价值袈溱练习的前⾯若⼲回合开端降低,你就可以慢慢地测验测验 η = 0.1,1.0,...,直到你找到⼀个 η 的值使得在开端若⼲回合价值就开端震动或者增长,相反,如不雅价值袈溱 η = 0.01 时就开端震动或者增长,那就测验测验 η = 0.001,0.0001,... 直到你找到价值袈溱开端回合就降低的设定,按照如许的⽅法,我们可以控制进修速度的阈值的量级的估计,你可以选择性地优化估计,选择那些最⼤的 η,⽐⽅说 η = 0.5 或者 η = 0.2。

11、小批量数据大年夜小

我们应当若何设置小批量数据的⼤⼩?为了答复这个问题,让我们先假设正在进⾏在线进修,也就是说使⽤⼤⼩为 1 的⼩批量数据。

我们应用100 的小批量数据的进修规矩如下:


  推荐阅读

  用Async函数简化异步代码

就像你看到的,这个函数返回一个 promises,将会赋值给 val,猜一下生成器和异步函数示例做了什么!无论你在这个函数返回了什么,你其实是暗地里返回一个 promise 解析到那个值。如不雅你>>>详细阅读


本文标题:理解深度学习的钥匙–参数篇

地址:http://www.17bianji.com/lsqh/34849.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)