《吴恩达深度学习》02改善深层神经网络:超参数调优、正则化以及优化(第3周超参数调优、Batch正则化和程序框架)
分类:
文章
•
2024-09-27 11:01:28
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