【改进DNN】深度学习专项课程学习记录8——超参数调整、批量归一化和Softmax

学习目标

笔记

1 超参数调整

1.1 超参数调整过程

调整的参数:(按照重要性排序)
(1)学习率 α \alpha α
(2) β \beta β,隐藏层的神经元数量,小批量的大小;
(3)隐藏层数量,学习率衰减。

选择最优的参数组合:
(1)当数据集很小时,可以用网格遍历的方式;
(2)当数据集较大时,用随机方式选择参数;
(3)一种对随机取值的改进(从粗到精的策略):先大范围粗略随机选值,根据结果缩小参数范围,在小范围中以更高的密度进行随机抽样取值。

两种调整参数的策略:
熊猫:仔细在一个模型上微调参数;
鱼子酱:在算力允许的情况下,在多个模型上尝试多种参数组合。

1.2 使用合适的标准选择超参数

1.2.1 学习率 α \alpha α的标准

α \alpha α的取值范围是0.0001~1时,采用均匀随机抽样就显得很不合适了,此时应该采用对数随机抽样。如下代码块所示,当r=-4时,a=0.0001,当r=0时,a=1。

import numpy as np

r = -4 * np.random.rand() #返回一个或一组服从0~1均匀分布的随机样本值。随机样本取值范围是[0,1)。
a = 10**r
1.2.2 指数加权平均 β \beta β的标准

β \beta β的取值范围一般在0.9~0.999之间,则 1 − β 1-\beta 1β 在0.1~0.001之间,利用对数随机取值得到 1 − β 1-\beta 1β的值。

2 批量归一化(Batch Normalization)

作用:使神经网络更稳健,从而对超参数的选择不那么敏感,使超参数的选择变得更简单,有利于训练更深的网络。

思路:类似于特征归一化作用于输入变量,批量归一化作用于隐藏层的 Z [ l ] Z^{[l]} Z[l]

公式:
μ = 1 m ∑ i Z [ l ] ( i ) \mu = \frac{1}{m} \sum\limits_{i}Z^{[l](i)} μ=m1iZ[l](i)
σ 2 = 1 m ∑ i ( Z [ l ] ( i ) − μ ) 2 \sigma^2 = \frac{1}{m} \sum\limits_{i}(Z^{[l](i)}-\mu)^2 σ2=m1i(Z[l](i)μ)2
Z n o r m ( i ) = Z [ l ] ( i ) − μ σ 2 + ϵ Z_{norm}^{(i)} = \frac{Z^{[l](i)}-\mu}{\sqrt{\sigma^2+\epsilon}} Znorm(i)=σ2+ϵ Z[l](i)μ
Z ~ [ l ] ( i ) = γ ∗ Z n o r m ( i ) + β \widetilde{Z}^{[l](i)} = \gamma * Z_{norm}^{(i)} + \beta Z [l](i)=γZnorm(i)+β
批量归一化与特征归一化不同的一点是,有时候我们并不希望归一化后的Z的均值为0、方差为1,通过修正均值和方差( β \beta β γ \gamma γ)可以使我们更好地利用下一步激活函数的非线性特征。

注:在测试时,对单一样本进行预测,这就需要在训练过程中记录均值和方差的指数加权平均值,然后再用到测试中。

3 多分类回归——Softmax

3.1 Softmax计算

Softmax是Logistic回归在多分类问题中的推广。对于三个及以上的分类问题,要采用Softmax作为输出层的激活函数。
在这里插入图片描述

def softmax(z):  
    exp_sum = 0
    for k in range(z.shape[0]):
        exp_sum = exp_sum + np.exp(z[k])
    a = np.exp(z)/exp_sum #按元素做除法
    return a

3.2 Softmax实现

在具体的模型实现时,softmax搭配categorical_crossentropy函数使用,该函数公式如下:
在这里插入图片描述因为yi,要么是0,要么是1。而当yi等于0时,结果就是0,当且仅当yi等于1时,才会有结果。也就是说categorical_crossentropy只专注与一个结果,因而它一般配合softmax做单标签分类。
参考:损失函数:categorical_crossentropy

需要注意的地方

1.批量归一化的tensorflow实现;
2.熟悉tf的操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值