02. 改善深层神经网络:超参数调优、正则化以及优化
第三周 超参数调优、Batch正则化和程序框架
3.1 调试处理
- 超参数
(1)常见参数:α,β,β1,β2,ϵ,层数,每层单元数,学习率衰减,mini-batch规模
(2)重要性排名:a. α, b. β,每层单元数,mini-batch规模,c. 层数,学习率衰减
- 尝试随机值
- 由粗糙到精细策略
3.2 为超参数选择合适的范围
- 随机选择超参数
- 超参数适应的规模
使用对数数轴
代码:r=−4∗np.random.rand()
α=10r
- 指数加权平均的超参
β=0.9,⋯,0.999,因此不能使用线性随机均匀取值。因此考虑1−β=0.1,⋯,0.001,然后采用对数随机均匀取值。
3.3 超参数训练的实践:Pandas VS Caviar
- 两种流派
(1)Babysitting one模型

(2)并行训练多个模型
3.4 正则化网络的**函数
- 归一化加速学习
- Batch归一化的实现
(1)给定神经网络的隐藏值z(1),⋯,z(m)
(2)均值μ=m1∑iz(i)
(3)均方差δ2=m1∑i(z(i)−μ)2
(4)归一化znorm(i)=δ2+ϵz(i)−μ
(5)归一化后的参数服从均值为0,方差为1。但实际上,所有参数服从不同的分布更具有现实的意义,因此进一步改进为z(i)=γznorm(i)+β,其中γ,β为待学习的参数,可用梯度下降法、动量法等进行学习。γ和β的作用是设置均值和方差。
-
3.5 将Batch Norm拟合进神经网络
- 将Batch归一化加入到神经网络中
(1)神经网络示意图

(2)计算路径

(3)代码tf.nn.batch_normalization
- mini-batches中的应用

说明:因为后期需要用β和γ对z(i)进行重新缩放,所以不需再学习b[l]
- 梯度下降法的实现
对于t=1,⋯,num mini-batches
在每个mini-batchX{i}中计算正向传播(用z[l]代替z[l])
计算反向传播dw[l],dβ[l],dγ[l]
更新参数(梯度下降法、动量法等)
3.6 Batch Norm为什么奏效?
3.7 测试时的Batch Norm
3.8 Softmax回归
3.9 训练一个Softmax分类器
3.10 深度学习框架
3.11 TensorFlow
相关文章:
-
2021-05-04
-
2021-05-03
-
2021-06-07
-
2022-01-29
-
2021-05-17
-
2021-07-14
-
2021-08-11
-
2021-10-04
猜你喜欢
-
2021-10-08
-
2021-12-08
-
2021-07-12
-
2021-06-18
-
2021-09-16
-
2021-05-27
-
2021-05-16
相关资源
-
下载
2021-06-05
-
下载
2021-06-05
-
下载
2021-07-01