吴恩达神经网络和深度学习课程自学笔记(七)之超参数调试,Batch正则化和程序框架

来源:互联网 发布:linux servlet 教程 编辑:程序博客网 时间:2024/06/02 20:15

超参数调试

1.尝试不同的参数值而不要用坐标方格

这里写图片描述

有3个参数就为立方体,更多参数更多维,道理都是一样的。

下一步:
这里写图片描述
假设蓝色小区域的效果比较好,则放大该区域,在其中更密集的选择点,重复此步骤,直至找到最优。

2.为超参数选择合适的范围

(1)对于 n^[l] 和 L 在范围内随机取值。
(2)对于α:
这里写图片描述
(3)对于β:
这里写图片描述

3.组织超参数学习过程

分为两种方式:
(1)只照看一个模型(被称为熊猫模式),在缺乏计算资源时适用。
这里写图片描述
(2)同时训练多个模型(被称为鱼子酱模式),在计算资源较多时使用。
这里写图片描述

Batch正则化

1.Batch归一化(BN)

这里写图片描述
归一化 Z^[2] ,使 W^[3]和 b^[3] 训练得更快。

具体使用:
这里写图片描述
这里写图片描述
(m为mini-batch个数;均值和方差用指数加权平均来估算)

Batch归一化不仅可以用于训练集也可以用于隐藏单元。以使 z^i 有固定的均值和方差,可以是0/1,也可以是其他由 γ 和 β 控制的值。

2.Batch归一化拟合神经网络

这里写图片描述
这其中的 β 和Adam/Momentum/RMSprop中的 不一样。

通常与Mini-batch一起使用:
这里写图片描述

使用梯度下降更新参数:
这里写图片描述
先利用正向传播在 X^{t} 上;然后在每个隐藏层利用BN将 Z^[l] 更换;最后利用反向传播更新参数。

3.BN为何有用

(1)使特征值处于相似的区间。
(2)使权重比网络更滞后,更深层。(eg:第10层比第1层更能经受住变化)
BN保证了无论前面参数如何变化,而后面的均值和方差不变,从而减少了隐藏分布的变化的数量。
减弱了前层参数作用与后层参数作用之间的联系。使网络每层都可以自己学习,有一些独立性。
前层不会左右移动的太多,因为被一样的均值和方差限制,这会使后层的学习工作更容易。
(3)其他:每个Mini-batch通过均值和方差缩放;在每个隐藏单元的激活上增加了一些噪声;有轻微的正则化作用。

Tip:dropout 用较大的Mini-batch size 可减少正则化效果。

Softmax回归 (多分类)

这里写图片描述
这里写图片描述
在最后一层:
这里写图片描述
激活函数:
这里写图片描述
这里写图片描述

以前的分类:输入一个实数,输出一个实数;
softmax:输入一个向量,输出一个向量。

softmax在没有隐藏层的情况下可以线性分类,含有多个隐藏层可以非线性分类。

训练一个softmax分类器

损失函数:这里写图片描述
对于单个样本:
这里写图片描述
整个训练集:
这里写图片描述
然后向量化,用反向传播:

深度学习框架

一些主流的框架:
这里写图片描述

选择框架的标准
(1)便于编程
(2)运行速度快
(3)开源

阅读全文
0 0
原创粉丝点击