Improving Deep Neural Network学习笔记

参数调整、正则化、优化

  • 1 超参数
  • 2 方差、偏差
  • 3 正则化
  • 4 归一化输入
  • 5 Mini-batch梯度下降算法
  • 6 Adam优化算法

本周学习了深度学习(吴恩达老师的课程)中,提升深度神经网络的一些方法,包括超参数的调整、正则化以及优化算法,明白了网络优化的一些思路以及优化的原理。

1 超参数

在学习率、梯度下降的循环次数(iteration)、隐藏层数目(L)、隐藏层神经元个数、激活函数、momentum、batch size等等超参数中,学习率是其中最为重的超参数。在我们测试学习率的选值测试过程中,我们不能够按照随机均匀取值法,而应该选择对数标尺搜索。下面举个例子:
假设学习率a的取值范围在0.0001-1之间,我们如果随机均匀取值的话,90%的数值会落在0.1到1之间,0.0001到0.1之间只用了10%的资源区搜索(但是学习率恰恰有可能在小区间中取到最优)。这个时候采用对数标尺搜索,分别选取0.0001,0.001,0.01,0.1,1为标尺,在对数轴上面的均匀取点。

2 方差、偏差

方差:描述模型在不同训练集上预测的波动性和分散程度
偏差:描述模型预测值和真实值之间的差异,即准确性
模型在训练集和测试集上的表现会呈现出欠拟合(underfitting)、过拟合(overfitting)、适度拟合(just right)三种情况。在欠拟合中,模型会呈现高偏差,而在过拟合情况下,模型会出现高方差的情况,而适度拟合则是方差和偏差的均衡状态(也是模型的最好状态)

3 正则化

模型出现过拟合的情况,有两种解决方式,一是增加数据量,二是采用正则化来解决。正则化有多种实现方式,常用的方式为
1.L2正则化
在逻辑回归中,我们通常正正则化高维矢量参数W,正则化的过程如下:
Improving Deep Neural Network学习笔记_第1张图片

2.dropout正则化
dropout正则化的过程就是让神经网络中的神经元以一定概率随机失活
Improving Deep Neural Network学习笔记_第2张图片

4 归一化输入

归一化和正则化是两种不同的概念,归一化的目的在于加速训练过程,其通过数据集的均值和方差先对数据进行处理,这就使得我们的模型的代价函数从扁长的图像转向圆形的图像,利于算法的优化和加速计算过程。
Improving Deep Neural Network学习笔记_第3张图片

5 Mini-batch梯度下降算法

在最开始的学习中,训练过程是将所有的数据向量化后组成一个巨大的数据集矩阵,这样训练一次只能实现一次梯度下降,而mini-batch的策略则是将整个训练集按照batch size大小均分,每用一次batch的数据进行训练时,就进行一次梯度下降,这样的话完整遍历一次数据集就进行了(数据量/batch size)次的梯度下降。
Improving Deep Neural Network学习笔记_第4张图片

mini-batch中的batch size的选择不宜过大也不宜过小,常见的在64-512之间。当batch size = 1是,也就是有多少个训练样本就有多少个batch时,mini-batch梯度下降算法就演变成了随机梯度下降算法(SGD);当batch size = 样本总数时,mini-batch算法就演变成了普通的batch梯度下降算法,也就是前面说的遍历完一次数据才能够实现梯度下降一次。

6 Adam优化算法

1.动量(Momentum)梯度下降算法,其旨在于加速梯度下降的过程。如下图所是,我们朝着红色的最优点前进的过程中,纵向的摆动是不必要的,我们需要的横向快速的到达红色点,所以这个时候我们可以在梯度下降的过程中添加一个动量,就像是一个横向的加速度,这样的话虽然上下依然在摆动,但是横向移动到最后点时间缩短的了。

2.RMSprop算法(Root mean square prop):在上面中图片中,纵向的摆动是无用的,动量梯度下降算法就是加速其横移的过程,而本算法则是降低纵向的(上下的)摆动,横轴上继续前进,以加快时间。

Adam优化算法的实质就是下面的动量梯度下降算法和RMSprop算法两者的结合,横向和纵向上优化的结合,得到了一个表现优异的算法。

你可能感兴趣的:(深度学习,学习,笔记,深度学习)