赞
踩
1. 隐藏层可以有很多层
2. 输出可以不止一个
由线性关系系数权重w和偏移量b的定义:
在前向传播的算法中,X为上一层隐藏层的计算结果(输出)。
参数: W,b(确定一个模型的数值集合)
超参数:学习率,迭代次数,隐藏层层数,隐藏层单元数,激活函数的选择(控制某个模型集合的模型的参数集合)
当模型过拟合时,模型在训练集上的正确率极高,但是模型复杂度也会很高,并且在学习过程中可能会加入一些意义不大的特征。由于问题是出在特征值上,而所有选择的特征值也都在目标函数,和损失函数中。因此可以考虑在损失函数中加入正则项去控制模型中特征的权重,例如减小无意义的特征的权重或直接去掉一些特征。模型越复杂,加入的正则化项会使损失函数变大。如果正则化参数很大,最后得到的模型可能会是个极其简单的模型,然后造成欠拟合,那么总会有这样的一个中间值,使我们的模型just right。
dropout正则化:当我们的模型过于复杂时,去掉一些神经元的影响,让我们的模型变得“没有那么好,泛化能力变强”。最终的模型不会特别依赖于某些局部特征。和正则化类似,收缩权重效果。但是当我们消除某些神经元时,最终得到的计算结果可能会比原本结果小,因此最后的输出应等于输出/keep-prob(keep-prob是每次计算我们保留的神经元的比例)。
其他正则化方法:
(1)给数据添加噪音(Data augmentation)
(2)减小迭代次数 (Early stopping)
在数据经过中心化之后,x1对于x2的方差还是较大,因此还需要归一化处理,得到图三的数据。
经过归一化处理之后的数据的损失函数会变成:
对于左图来说,由于梯度不均匀,需要以一个很小的学习率学习,往下降才能走到极值点。但是对于右图来说,梯度均匀,函数为球形,那么不管从哪里走,梯度下降都能相对更快的找到极值点(相比于左图)。所以当数据维度十分大时,数据归一化是一个很好的选择。
初始权重过大并且前面的层比后面变化更快时,如果权重比1略大,经过一系列连乘之后,梯度会呈爆炸式增长。但是如果权重太小,连乘之后以指数级减小,会导致后面的权重接近于0.两种情况都使神经网络无法好好学习。
因此我们需要好好考虑权重的初始化,相应的方法有:
(1) Xavier initialization:尽量使输入和输出同分布
(2) He initialization: 尽量使输入输出方差恒定
根据导数的性质,可以把求导目标拆分成几部分的和,将每部分求导的结果加起来就是求导目标的结果,因此可以每次都把子集作为训练数据进行梯度下降,最终的结果加起来也是我们想要的结果。(与指数平均结合使用的话就是momentum梯度下降)
可以使原数据更加光滑,每个值都有当前的时间和该时间节点之前的一部分数据决定,因此曲线在某种程度上更光滑。
可以发现紫线和绿线初始相差较多,后期基本完全重合。通过观察可以发现紫线的初始数据十分接近0,因此往后计算时,该点的数据要比实际值要小。因此需要偏差修正,也就是在计算时添加一个项去增大v_t初始的取值而不改变其后的取值(保持绿线和紫线的一致)。
其他梯度下降方法:
为了防止学习率过大,无法找到极值点,我们需要在极值点附近有一个趋近于不变的学习率。因此学习率需要随着训练次数的增加指数级下降,最终收敛模型。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。