当前位置:   article > 正文

Machine Learning week4-ANN(3)_4-ann 和 (r,2)nns

4-ann 和 (r,2)nns

深度神经网络(DNN)

1. 隐藏层可以有很多层

2. 输出可以不止一个

表示

前向传播算法

由线性关系系数权重w和偏移量b的定义:

y=w_1x_1+w_2x_2+w_3x_3

在前向传播的算法中,X为上一层隐藏层的计算结果(输出)。

反向传播算法

 参数和超参数

参数: W,b(确定一个模型的数值集合)

超参数:学习率,迭代次数,隐藏层层数,隐藏层单元数,激活函数的选择(控制某个模型集合的模型的参数集合)

正则化

当模型过拟合时,模型在训练集上的正确率极高,但是模型复杂度也会很高,并且在学习过程中可能会加入一些意义不大的特征。由于问题是出在特征值上,而所有选择的特征值也都在目标函数,和损失函数中。因此可以考虑在损失函数中加入正则项去控制模型中特征的权重,例如减小无意义的特征的权重或直接去掉一些特征。模型越复杂,加入的正则化项会使损失函数变大。如果正则化参数很大,最后得到的模型可能会是个极其简单的模型,然后造成欠拟合,那么总会有这样的一个中间值,使我们的模型just right。

dropout正则化:当我们的模型过于复杂时,去掉一些神经元的影响,让我们的模型变得“没有那么好,泛化能力变强”。最终的模型不会特别依赖于某些局部特征。和正则化类似,收缩权重效果。但是当我们消除某些神经元时,最终得到的计算结果可能会比原本结果小,因此最后的输出应等于输出/keep-prob(keep-prob是每次计算我们保留的神经元的比例)。

其他正则化方法:

(1)给数据添加噪音(Data augmentation)

(2)减小迭代次数 (Early stopping)

Normalizing Inputs

 在数据经过中心化之后,x1对于x2的方差还是较大,因此还需要归一化处理,得到图三的数据。

经过归一化处理之后的数据的损失函数会变成:

对于左图来说,由于梯度不均匀,需要以一个很小的学习率学习,往下降才能走到极值点。但是对于右图来说,梯度均匀,函数为球形,那么不管从哪里走,梯度下降都能相对更快的找到极值点(相比于左图)。所以当数据维度十分大时,数据归一化是一个很好的选择。

梯度爆炸

初始权重过大并且前面的层比后面变化更快时,如果权重比1略大,经过一系列连乘之后,梯度会呈爆炸式增长。但是如果权重太小,连乘之后以指数级减小,会导致后面的权重接近于0.两种情况都使神经网络无法好好学习。

因此我们需要好好考虑权重的初始化,相应的方法有:

(1) Xavier initialization:尽量使输入和输出同分布

(2) He initialization: 尽量使输入输出方差恒定

mini-batch梯度下降

根据导数的性质,可以把求导目标拆分成几部分的和,将每部分求导的结果加起来就是求导目标的结果,因此可以每次都把子集作为训练数据进行梯度下降,最终的结果加起来也是我们想要的结果。(与指数平均结合使用的话就是momentum梯度下降)

指数加权平均

可以使原数据更加光滑,每个值都有当前的时间和该时间节点之前的一部分数据决定,因此曲线在某种程度上更光滑。

基于指数加权平均的偏差修正 

 

可以发现紫线和绿线初始相差较多,后期基本完全重合。通过观察可以发现紫线的初始数据十分接近0,因此往后计算时,该点的数据要比实际值要小。因此需要偏差修正,也就是在计算时添加一个项去增大v_t初始的取值而不改变其后的取值(保持绿线和紫线的一致)。

其他梯度下降方法:

学习率衰减

为了防止学习率过大,无法找到极值点,我们需要在极值点附近有一个趋近于不变的学习率。因此学习率需要随着训练次数的增加指数级下降,最终收敛模型。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/350262
推荐阅读
相关标签
  

闽ICP备14008679号