吴恩达Coursera深度学习(2-3)超参数调试和Batch Norm
2018-02-26 13:38
225 查看
转载博客:http://blog.csdn.net/Koala_Tree
Week 3超参数调试和Batch Norm
目录
1超参数调试处理
2为超参数选择合适的范围
3超参数调试实践Pandas vs Caviar
4网络中激活值的归一化
5在神经网络中融入Batch Norm
6Batch Norm 起作用的原因
7在测试数据上使用 Batch Norm
8Softmax 回归
9训练 Sotfmax 分类器
在超参数选择的时候,一些超参数是在一个范围内进行均匀随机取值,如隐藏层神经元结点的个数、隐藏层的层数等。但是有一些超参数的选择做均匀随机取值是不合适的,这里需要按照一定的比例在不同的小范围内进行均匀随机取值,以学习率α的选择为例,在0.001,…,1范围内进行选择:
如上图所示,如果在 0.001,…,1 的范围内进行进行均匀随机取值,则有90%的概率 选择范围在 0.1∼1 之间,而只有10%的概率才能选择到0.001∼0.1之间,显然是不合理的。
所以在选择的时候,在不同比例范围内进行均匀随机取值,如0.001∼0.001、0.001∼0.01、0.01∼0.1、0.1∼1 范围内选择。
在计算资源有限的情况下,使用第一种,仅调试一个模型,每天不断优化;
在计算资源充足的情况下,使用第二种,同时并行调试多个模型,选取其中最好的模型。
常用的方式是将隐藏层的经过激活函数前的z[l]进行归一化。
Batch Norm 的实现
首先Batch Norm 可以加速神经网络训练的原因和输入层的输入特征进行归一化,从而改变Cost function的形状,使得每一次梯度下降都可以更快的接近函数的最小值点,从而加速模型训练过程的原理是有相同的道理。
只是Batch Norm 不是单纯的将输入的特征进行归一化,而是将各个隐藏层的激活函数的激活值进行的归一化,并调整到另外的分布。
(2)Second Reason
Batch Norm 可以加速神经网络训练的另外一个原因是它可以使权重比网络更滞后或者更深层。
下面是一个判别是否是猫的分类问题,假设第一训练样本的集合中的猫均是黑猫,而第二个训练样本集合中的猫是各种颜色的猫。如果我们将第二个训练样本直接输入到用第一个训练样本集合训练出的模型进行分类判别,那么我们在很大程度上是无法保证能够得到很好的判别结果。
这是因为第一个训练集合中均是黑猫,而第二个训练集合中各色猫均有,虽然都是猫,但是很大程度上样本的分布情况是不同的,所以我们无法保证模型可以仅仅通过黑色猫的样本就可以完美的找到完整的决策边界。第二个样本集合相当于第一个样本的分布的改变,称为:Covariate shift。如下图所示:
那么存在Covariate shift的问题如何应用在神经网络中?就是利用Batch Norm来实现。如下面的网络结构:
网络的目的是通过不断的训练,最后输出一个更加接近于真实值的y^。现在以第2个隐藏层为输入来看:
计算公式
下图是Softmax的公式以及一个简单的例子:
可以看出Softmax通过向量z[L]计算出总和为1的四个概率。
在没有隐藏隐藏层的时候,直接对Softmax层输入样本的特点,则在不同数量的类别下,Sotfmax层的作用:
为什么叫做Softmax?我们以前面的例子为例,由z[L]到a[L]的计算过程如下:
通常我们判定模型的输出类别,是将输出的最大值对应的类别判定为该模型的类别,也就是说最大值为的位置1,其余位置为0,这也就是所谓的“hardmax”。而Sotfmax将模型判定的类别由原来的最大数字5,变为了一个最大的概率0.842,这相对于“hardmax”而言,输出更加“soft”而没有那么“hard”。
Sotfmax回归 将 logistic回归 从二分类问题推广到了多分类问题上。
Softmax 的Loss function
也就是说,这里的损失函数的作用就是找到你训练集中的真实的类别,然后使得该类别相应的概率尽可能地高,这其实是最大似然估计的一种形式。
对应的Cost function如下:
Class 2:改善深层神经网络:超参数调试、正则化以及优化
Week 3:超参数调试和Batch Norm
目录
Class 2改善深层神经网络超参数调试正则化以及优化Week 3超参数调试和Batch Norm
目录
1超参数调试处理
2为超参数选择合适的范围
3超参数调试实践Pandas vs Caviar
4网络中激活值的归一化
5在神经网络中融入Batch Norm
6Batch Norm 起作用的原因
7在测试数据上使用 Batch Norm
8Softmax 回归
9训练 Sotfmax 分类器
1、超参数调试处理
2、为超参数选择合适的范围
Scale均匀随机在超参数选择的时候,一些超参数是在一个范围内进行均匀随机取值,如隐藏层神经元结点的个数、隐藏层的层数等。但是有一些超参数的选择做均匀随机取值是不合适的,这里需要按照一定的比例在不同的小范围内进行均匀随机取值,以学习率α的选择为例,在0.001,…,1范围内进行选择:
如上图所示,如果在 0.001,…,1 的范围内进行进行均匀随机取值,则有90%的概率 选择范围在 0.1∼1 之间,而只有10%的概率才能选择到0.001∼0.1之间,显然是不合理的。
所以在选择的时候,在不同比例范围内进行均匀随机取值,如0.001∼0.001、0.001∼0.01、0.01∼0.1、0.1∼1 范围内选择。
3、超参数调试实践–Pandas vs. Caviar
在超参数调试的实际操作中,我们需要根据我们现有的计算资源来决定以什么样的方式去调试超参数,进而对模型进行改进。下面是不同情况下的两种方式:在计算资源有限的情况下,使用第一种,仅调试一个模型,每天不断优化;
在计算资源充足的情况下,使用第二种,同时并行调试多个模型,选取其中最好的模型。
4、网络中激活值的归一化
在Logistic Regression 中,将输入特征进行归一化,可以加速模型的训练。那么对于更深层次的神经网络,我们是否可以归一化隐藏层的输出a[l]或者经过激活函数前的z[l],以便加速神经网络的训练过程?答案是肯定的。常用的方式是将隐藏层的经过激活函数前的z[l]进行归一化。
Batch Norm 的实现
5、在神经网络中融入Batch Norm
在深度神经网络中应用Batch Norm,这里以一个简单的神经网络为例,前向传播的计算流程如下图所示:6、Batch Norm 起作用的原因
(1)First Reason首先Batch Norm 可以加速神经网络训练的原因和输入层的输入特征进行归一化,从而改变Cost function的形状,使得每一次梯度下降都可以更快的接近函数的最小值点,从而加速模型训练过程的原理是有相同的道理。
只是Batch Norm 不是单纯的将输入的特征进行归一化,而是将各个隐藏层的激活函数的激活值进行的归一化,并调整到另外的分布。
(2)Second Reason
Batch Norm 可以加速神经网络训练的另外一个原因是它可以使权重比网络更滞后或者更深层。
下面是一个判别是否是猫的分类问题,假设第一训练样本的集合中的猫均是黑猫,而第二个训练样本集合中的猫是各种颜色的猫。如果我们将第二个训练样本直接输入到用第一个训练样本集合训练出的模型进行分类判别,那么我们在很大程度上是无法保证能够得到很好的判别结果。
这是因为第一个训练集合中均是黑猫,而第二个训练集合中各色猫均有,虽然都是猫,但是很大程度上样本的分布情况是不同的,所以我们无法保证模型可以仅仅通过黑色猫的样本就可以完美的找到完整的决策边界。第二个样本集合相当于第一个样本的分布的改变,称为:Covariate shift。如下图所示:
那么存在Covariate shift的问题如何应用在神经网络中?就是利用Batch Norm来实现。如下面的网络结构:
网络的目的是通过不断的训练,最后输出一个更加接近于真实值的y^。现在以第2个隐藏层为输入来看:
7、在测试数据上使用 Batch Norm
8、Softmax 回归
在多分类问题中,有一种 logistic regression的一般形式,叫做Softmax regression。Softmax回归可以将多分类任务的输出转换为各个类别可能的概率,从而将最大的概率值所对应的类别作为输入样本的输出类别。计算公式
下图是Softmax的公式以及一个简单的例子:
可以看出Softmax通过向量z[L]计算出总和为1的四个概率。
在没有隐藏隐藏层的时候,直接对Softmax层输入样本的特点,则在不同数量的类别下,Sotfmax层的作用:
9、训练 Sotfmax 分类器
理解 Sotfmax为什么叫做Softmax?我们以前面的例子为例,由z[L]到a[L]的计算过程如下:
通常我们判定模型的输出类别,是将输出的最大值对应的类别判定为该模型的类别,也就是说最大值为的位置1,其余位置为0,这也就是所谓的“hardmax”。而Sotfmax将模型判定的类别由原来的最大数字5,变为了一个最大的概率0.842,这相对于“hardmax”而言,输出更加“soft”而没有那么“hard”。
Sotfmax回归 将 logistic回归 从二分类问题推广到了多分类问题上。
Softmax 的Loss function
也就是说,这里的损失函数的作用就是找到你训练集中的真实的类别,然后使得该类别相应的概率尽可能地高,这其实是最大似然估计的一种形式。
对应的Cost function如下:
相关文章推荐
- 吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(2-3)-- 超参数调试 和 Batch Norm
- 吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(2-3)-- 超参数调试 和 Batch Norm
- 吴恩达深度学习笔记 course2 week3 超参数调试,Batch Norm,和程序框架
- 吴恩达-深度学习笔记《改善深层神经网络:超参数调试、正则化以及优化》
- 吴恩达神经网络和深度学习课程自学笔记(七)之超参数调试,Batch正则化和程序框架
- 吴恩达《深度学习-改善深层神经网络》3--超参数调试、正则化以及优化
- 吴恩达深度学习笔记二:超参数调试、正则化以及优化
- 吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(1-2)-- 神经网络基础
- 深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第三周超参数调试+Batch normalization笔记和作业
- 吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(1-4)-- 深层神经网络
- 吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(4-2)-- 深度卷积模型
- 吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(5-1)-- 循环神经网络
- 吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(5-2)-- NLP和词嵌入
- coursera 吴恩达 -- 第一课 神经网络和深度学习 :第三周课后习题 Planar data classification with a hidden layer
- 神经网络与深度学习编程练习(coursera 吴恩达 )(2)
- 吴恩达Coursera深度学习课程 DeepLearning.ai 编程作业——Tensorflow+tutorial(2-3)
- 吴恩达Coursera深度学习(2-1)编程练习
- 吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(1-2)-- 神经网络基础(转载)
- 吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(4-2)-- 深度卷积模型
- coursera 吴恩达 -- 第一课 神经网络和深度学习 :第二周课后习题 Logistic Regression with a Neural Network mindset