首页 > 其他分享 >吴恩达改善深层神经网络——超参数调试、batch正则化

吴恩达改善深层神经网络——超参数调试、batch正则化

时间:2023-02-27 10:35:46浏览次数:56  
标签:吴恩达 均值 batch Batch 神经网络 参数 Normalization

1. 超参数

深度神经网络需要调试的超参数(Hyperparameters)如下,重要性红色>蓝色>橘色>黑色
  • α:学习因子
  • β:动量梯度下降因子
  • β1,β2,ε:Adam算法参数
  • #layers:神经网络层数
  • #hidden units:各隐藏层神经元个数
  • learning rate decay:学习因子下降参数
  • mini-batch size:批量训练样本包含的样本个数

系统地组织超参调试过程的技巧:

  • 随机选择点(而非均匀选取),用这些点实验超参数的效果。这样做的原因是我们提前很难知道超参数的重要程度,可以通过选择更多值来进行更多实验;
  • 由粗糙到精细:聚焦效果不错的点组成的小区域,在其中更密集地取值,以此类推
  • 对于学习率 α,用对数标尺而非线性轴更加合理:0.0001、0.001、0.01、0.1 等,然后在这些刻度之间再随机均匀取值;
  • 对于 β,取 0.9 就相当于在 10 个值中计算平均值,而取 0.999 就相当于在 1000 个值中计算平均值。可以考虑给 1-β 取值,这样就和取学习率类似了。

Babysitting one model:在训练深度神经网络时,一种情况是有庞大的数据组,但没有许多计算资源或足够的 CPU 和 GPU 的前提下,只能对一个模型进行训练(Panda熊猫训练方式),调试不同的超参数,使得这个模型有最佳的表现

trainning many models:Caviar鱼子酱方式,当拥有足够的计算机去平行试验很多模型,尝试很多不同的超参数,选取效果最好的模型;

3. batch norm

  批量标准化(Batch Normalization,BN)会使参数搜索问题变得很容易,使神经网络对超参数的选择更加稳定,超参数的范围会更庞大,工作效果也很好,也会使训练更容易。输入的标准化处理Normalizing inputs和隐藏层的标准化处理Batch Normalization是有区别的。Normalizing inputs使所有输入的均值为0,方差为1。而Batch Normalization可使各隐藏层输入的均值和方差为任意值。隐藏层的激活值标准化如下:

m是单个mini-batch包含样本个数,ε是为了防止分母为零,可取值10−8,使得该隐藏层的所有输入z(i)均值为0,方差为1;但大部分情况下并不希望所有的z(i)均值都为0,方差都为1,也不太合理。通常需要对z(i)进行进一步处理:

       

  γ和β是需要训练的参数,可以通过梯度下降等算法求得,设置这两个参数可以让z(i)的均值和方差可以为任意值,只需调整其值。 设置 γ 和 β 的原因是从激活函数的角度来说,如果各隐藏层的输入均值在靠近0的区域即处于激活函数的线性区域,这样不利于训练好的非线性神经网络,模型效果也不会太好。

 

 

   使用 Batch Normalization 时,因为标准化处理中包含减去均值的一步,因此 b 实际上没有起到作用,其数值效果交由 β 来实现。因此,在 Batch Normalization 中,可以省略 b 或者暂时设置为 0。

Batch Normalization 效果很好的原因有以下两点:

  1. 通过对隐藏层各神经元的输入做类似的标准化处理,提高神经网络训练速度
  2. 可以使前面层的权重变化对后面层造成的影响减小,使权重比网络更之后或者更深层,限制前层的参数更新导致对后面网络数值分布程度的影响,使得输入后层的数值变得更加稳定,整体网络更加健壮。

  关于第二点,如果实际应用样本和训练样本的数据分布不同(例如,橘猫图片和黑猫图片),我们称发生了“Covariate Shift”。这种情况下,一般要对模型进行重新训练。Batch Normalization 的作用就是减小 Covariate Shift 所带来的影响,让模型变得更加健壮,鲁棒性(Robustness)更强。即使输入的值改变了,由于 Batch Normalization 的作用,使得均值和方差保持不变(由 γ 和 β 决定),限制了在前层的参数更新对数值分布的影响程度,因此后层的学习变得更容易一些。Batch Normalization 减少了各层 W 和 b 之间的耦合性,让各层更加独立,实现自我训练学习的效果。

  另外,Batch Normalization 也起到微弱的正则化(regularization)效果。因为在每个 mini-batch 而非整个数据集上计算均值和方差,只由这一小部分数据估计得出的均值和方差会有一些噪声,因此最终计算出的z(i) 也有一定噪声。类似于 dropout,这种噪声会使得神经元不会再特别依赖于任何一个输入特征。Batch Normalization 可以和 dropout 一起使用,以获得更强大的正则化效果。通过应用更大的 mini-batch 大小,可以减少噪声,从而减少这种正则化效果。

  不要将 Batch Normalization 作为正则化的手段,不能解决过拟合,而是当作加速学习的方式。正则化只是一种非期望的副作用,Batch Normalization 解决的还是反向传播过程中的梯度问题(梯度消失和爆炸)。

   在测试集中,需要对每一个样本逐一处理,使用指数加权平均的方法来预测测试过程单个样本的 μ 和 σ2。对于第 l 层隐藏层,考虑所有 mini-batch 在该隐藏层下的 μ 和 σ2,然后用指数加权平均的方式来预测得到当前单个样本的 μ 和 σ2。这样就实现了对测试过程单个样本的均值和方差估计。

 

4. 分类回归

  Softmax 回归,能在识别多种分类中的一个时做出预测,对于多分类问题,用C表示种类个数,神经网络中输出层就有C个神经元,即n[L]=Cn[L],每个神经元的输出依次对应属于该类的概率,即P(y=c∣x),处理多分类问题一般使用Softmax回归模型

 

  

 

 

 

标签:吴恩达,均值,batch,Batch,神经网络,参数,Normalization
From: https://www.cnblogs.com/forever-fate/p/17153229.html

相关文章

  • 神经网络3
    一、代价函数神经网络用的代价函数是逻辑回归代价函数的一般形式。二、反向传播算法为了计算代价函数的偏导数,我们采用反向传播算法。先通过前向传播求出激活值计算......
  • 神经网络2
    神经网络的直观理解--使用一个手写数字识别的例子来理解神经网络。一张图片有28x28的像素块,根据像素块的灰度值不同,可排列成不同的数字。这里,我们把神经网络的第一层理......
  • 【感知机与神经网络基础知识(入门)】
    感知机与神经网络基础知识(入门)先看定义:人工神经网络(ArtificialNeuralNetworks,简写为ANNs)也简称为神经网络(NNs)在这里插入图片描述或称作连接模型(ConnectionModel),它......
  • m基于K-means聚类算法和神经网络的模糊控制器设计matlab仿真
    1.算法描述       聚类就是按照某个特定标准把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽......
  • 吴恩达改善深层神经网络——超参数调试、正则化及优化算法
    1.数据集划分对于一个需要解决的问题的样本数据,在建立模型的过程中,数据会被划分为以下几个部分:训练集(trainset):用训练集对算法或模型进行训练过程;验证集(developments......
  • m基于改进PSO粒子群优化的RBF神经网络解耦控制算法matlab仿真
    1.算法描述智能控制的思想最早来自傅京孙教授[,他通过人机控制器和机器人方面的研究,首先把人工智能的自觉推理方法用于学习控制系统,将智能控制概括为自动控制和人工智能的结......
  • 基于BP神经网络的数字识别系统仿真,带GUI界面
    1.算法描述OCR(OpticalCharacterRecognition)即光学字符识别技术,是通过扫描仪把印刷体或手写体文稿扫描成图像,然后识别成相应的计算机可直接处理的字符。OCR是模式识别的一......
  • 基于BP神经网络的数字识别系统仿真,带GUI界面
    1.算法描述      OCR(OpticalCharacterRecognition)即光学字符识别技术,是通过扫描仪把印刷体或手写体文稿扫描成图像,然后识别成相应的计算机可直接处理的字符。OCR......
  • m基于改进PSO粒子群优化的RBF神经网络解耦控制算法matlab仿真
    1.算法描述        智能控制的思想最早来自傅京孙教授[,他通过人机控制器和机器人方面的研究,首先把人工智能的自觉推理方法用于学习控制系统,将智能控制概括为自动......
  • 吴恩达神经网络和深度学习——深层神经网络
    一、深层神经网络1.深层的作用随着层数由浅到深,神经网络提取的特征也是从边缘到局部特征到整体,由简单到复杂。如果隐藏层足够多,那么能够提取的特征就越丰富、越复杂,特......