5. 超参数调试、Batch正则化和程序框架

5.1 调试处理(Tuning process)

学习速率是需要调试的最重要的超参数。

在这里插入图片描述

此外,还有一些参数需要调试,例如Momentum参数,0.9就是个很好的默认值。还会调试mini-batch的大小,以确保最优算法运行有效。还会经常调试隐藏单元,用橙色圈住的这些,这三个是觉得其次比较重要的,相对于而言。重要性排第三位的是其他因素,层数有时会产生很大的影响,学习率衰减也是如此。当应用Adam算法时,事实上,我从不调试β1,β2 和 ε,我总是选定其分别为0.9,0.999和 1 0 − 8 10^{-8} 108

红色圈出的,无疑是最重要的,接下来是用橙色圈住的那些,然后是用紫色圈住的那些。



5.2 为超参数选择合适的范围(Using an appropriate scale to pick hyperparameters)

总结一下,在对数坐标下取值,取最小值的对数就得到a的值,取最大值的对数就得到b的值,所以在对数轴上 1 0 a 10^a 10a 1 0 b 10^b 10b到区间取值,在a,b间随意均匀的选取r值,将超参数设置为 1 0 r 10^r 10r,这就是在对数轴上取值的过程。



5.3 Batch Norm 为什么奏效?(Why does Batch Norm work?)

为什么Batch归一化会起作用呢?

一个原因是,有一些从0到1而不是从1到1000的特征值,通过归一化所有的输入特征值,以获得类似范围的值,可以加速学习。所以Batch归一化起的作用的原因,直观的一点就是,它在做类似的工作,但不仅仅对于这里的输入值,还有隐藏单元的值。

Batch归一化有效的第二个原因是,它可以使权重比你的网络更滞后或更深层,比如,第10层的权重更能经受得住变化,相比于神经网络中前层的权重,比如第1层。


Batch归一化的意思是,尤其从神经网络后层之一的角度而言,前层不会左右移动的那么多,因为它们被同样的均值和方差所限制,所以,这会使得后层的学习工作变得更容易些。

Batch归一化还有一个作用,它有轻微的正则化效果。


类似于dropout,Batch归一化有轻微的正则化效果,因为给隐藏单元添加了噪音,这迫使后部单元不过分依赖任何一个隐藏单元,类似于dropout,它给隐藏层增加了噪音,因此有轻微的正则化效果。因为添加的噪音很微小,所以并不是巨大的正则化效果,可以将Batch归一化和dropout一起使用,如果想得到dropout更强大的正则化效果。

也许另一个轻微非直观的效果是,如果应用了较大的mini-batch,比如说,用了512而不是64,通过应用较大的min-batch,减少了噪音,因此减少了正则化效果,这是dropout的一个奇怪的性质,就是应用较大的mini-batch可以减少正则化效果。


Batch归一化将数据以mini-batch的形式逐一处理:

在这里插入图片描述
在训练时,这些就是用来执行Batch归一化的等式。在一个mini-batch中,将mini-batch的 z ( i ) z^{(i)} z(i)值求和,计算均值,所以这里只把一个mini-batch中的样本都加起来,用m来表示这个mini-batch中的样本数量,而不是整个训练集。然后计算方差,再算 z n o r m ( i ) z_{norm}^{(i)} znorm(i),即用均值和标准差来调整,加上ε是为了数值稳定性。 z − z^{-} z是用γ和β再次调整得到的。



5.4 Softmax 回归(Softmax regression)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值