深度学习记录--学习率衰减(learning rate decay) 如下图,蓝色曲线表示mini-batch梯度下降,绿色曲线表示采用学习率衰减的梯度下降。mini-batch梯度下降最终会在最小值附近的区间摆动(噪声很大),不会。随着学习率的衰减,步长会逐渐变小,因此最终。为了更加近似最小值,采用学习率衰减的方法。1 epoch = 遍历数据1次。是学习率衰减的超参数,是衰减常量,一般设置。
深度学习记录--RMSprop均方根 减缓纵轴方向学习速度,加快横轴方向学习速度,从而加速梯度下降。不妨以b为纵轴,w为横轴(横纵轴可能会不同,因为是多维量),即w每次减去一个大数字,所以w梯度下降更快。,即b每次减去一个小数字,所以b梯度下降更慢。为了防止分母趋近于0,则加上一个常量。为了让w梯度下降更快,则要使。为了让b梯度下降更慢,则要使。
深度学习记录--Momentum gradient descent 因为学习率过大可能导致偏离函数范围,这种上下波动导致学习率无法得到提高,速度因此减慢(下图蓝色曲线)横轴上,所有的微分都指向横轴方向,所有横轴方向上的平均值依然较大。其中dw,db可以看作加速度,v_dw,v_db可以看作速度,纵轴上,平均过程中正负数相互抵消,所以纵轴上的平均值接近于0。把图像比作一个碗,轨迹视为小球的轨迹,从边缘向碗内最低点运动。因此,小球会向着碗中心运动,最终因摩擦力而停下来。因此,纵轴上摆动减小,横轴上运动速度加快。为了减小波动,同时加快速率,可以使用。
深度学习记录--指数加权平均 较大时,初期数据拟合可能偏差较大,为了更好地拟合初期的数据,故采用偏差修正。当t变大,分母逐渐趋于1,所以后阶段偏差修正作用不大。的取值对拟合结果的影响很大,那么有什么规律?较大时,公式值较大,即取的更多数据的平均值。时,近似取10个数据平均值(红色曲线)时,近似取50个数据平均值(绿色曲线)时,近似取2个数据平均值(黄色曲线)变化时,拟合结果也会发生变化。,因为取的是更多数据的平均值。,因为取的是更少数据的平均值。可以被适当放大,更加拟合数据。如何对杂乱的数据进行拟合?表示第t-1个平均数,
深度学习记录--mini-batch gradient descent 与传统的batch梯度下降不同,mini-batch gradient descent将数据分成多个子集,分别进行处理,在。当size=m,mini-batch gradient descent变为batch gradient descent。的曲线,分成许多小段时,每个小段是一条batch gradient descent曲线,总体看这条曲线还是。可能容易计算,也可能很难计算,这就导致cost时高时低,出现摆动,其实主要是。每个样本都是随机的,可能靠近最小值,也可能远离最小值,当size=1,变为。
深度学习记录--梯度检验 对于单边误差和双边误差公式,其中双边误差与真实梯度相差更小,故一般采用双边误差公式。在每次迭代过程中,dropout会随机消除隐层单元的不同子集,J函数难以明确计算。为了对梯度进行检验,需要计算近似误差值来接近梯度。,则误差较大,需要考虑是否错误较多。梯度检验的计算时间较长,且通常在。的导数,计算出双边误差。,则误差很小,效果很好。,则误差一般,效果一般。
深度学习记录--归—化输入特征 归化输入(normalizing inputs),对特征值进行一定的处理,可以加速神经网络训练速度。归化可以让原本狭长的数据图像变得规整,梯度下降的迭代次数减少,训练速度变快。通过x值更新让均值稳定在零附近,即为零均值化。
深度学习记录--偏差/方差(bias/variance) train set error过大,dev set error过大(比train set error还大很多):high bias & high variance。train set error过大,dev set error过大(与train set error差不多):high bias。当方差(variance)过大时,如右图,拟合图像过于特殊,不够集中(即方差过大),称为过拟合(overfitting)train set error较小,dev set error过大:high variance。
深度学习记录--Train/dev/test sets 由于大数据量的存在,dev sets只需要对不同的算法进行验证与取舍即可,故得出几种合适的算法来优化性能即可,而test sets只需要对神经网络进行无偏评估即可,所以数据量不需要很大。对于超百万量级的数据,可以分为99.5% train sets 0.25% dev sets 0.25% test sets。对于百万量级的数据,可以分为98% train sets 1% dev sets 1% test sets。如果不需要进行无偏评估,那么只用保证train/dev sets(会加速神经网络的集成。