对深度学习课程中关于梯度下降算法的优化总结

目前神经网络的优化方法有:dropout、正则化、针对样本的mini-batch gradient descent、动量梯度下降算法、RMSprob算法、Adams算法、学习率衰减等:

 

1、dropout(减小过拟合): 是指在模型训练时随机让网络某些隐含层节点的权重不工作,不工作的那些节点可以暂时认为不是网络结构的一部分,但是它的权重得保留下来(只是暂时不更新而已),因为下次样本输入时它可能又得工作了。

关于Dropout,文章中没有给出任何数学解释,Hintion的直观解释和理由如下:

  1. 由于每次用输入网络的样本进行权值更新时,隐含节点都是以一定概率随机出现,因此不能保证每2个隐含节点每次都同时出现,这样权值的更新不再依赖于有固定关系隐含节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况。

  2. 可以将dropout看作是模型平均的一种。对于每次输入到网络中的样本(可能是一个样本,也可能是一个batch的样本),其对应的网络结构都是不同的,但所有的这些不同的网络结构又同时share隐含节点的权值。这样不同的样本就对应不同的模型,是bagging的一种极端情况。个人感觉这个解释稍微靠谱些,和bagging,boosting理论有点像,但又不完全相同。

  3. native bayes是dropout的一个特例。Native bayes有个错误的前提,即假设各个特征之间相互独立,这样在训练样本比较少的情况下,单独对每个特征进行学习,测试时将所有的特征都相乘,且在实际应用时效果还不错。而Droput每次不是训练一个特征,而是一部分隐含层特征。

  4. 还有一个比较有意思的解释是,Dropout类似于性别在生物进化中的角色,物种为了使适应不断变化的环境,性别的出现有效的阻止了过拟合,即避免环境改变时物种可能面临的灭亡。

              --给上帝多一点选择,给自己多一点惊喜;

 

2、正则化,正则化有两种,L1正则化和L2正则化:简单来说,正则化是一种为了减小测试误差的行为(有时候会增加训练误差)。我们在构造机器学习模型时,最终目的是让模型在面对新数据的时候,可以有很好的表现。当你用比较复杂的模型比如神经网络,去拟合数据时,很容易出现过拟合现象(训练集表现很好,测试集表现较差),这会导致模型的泛化能力下降,这时候,我们就需要使用正则化降低模型的复杂度。

 

        L1正则化:

为正数,则每次更新会减去一个常数;若 为负数,则每次更新会加上一个常数,所以很容易产生特征的系数为 0 的情况,特征系数为 0 表示该特征不会对结果有任何影响,因此 正则化会让特征变得稀疏,起到特征选择的作用。

 

        L2正则化:

从上式可以看出每次更新时,会对特征系数进行一个比例的缩放而不是像 正则化减去一个固定值,这会让系数趋向变小而不会变为 0,因此正则化会让模型变得更简单,防止过拟合,而不会起到特征选择的作用。

 

3、mini-batch gradient descent:

 

4、动量梯度下降算法(gradient descent with momentum):

        就是利用mini-batch和指数加权平均算法结合起来使用,加快梯度下降算法的一种算法。在梯度下降算法的基础上对梯度加上指数加权的方式进行寻找。β这个超参数的取值一般为0.9最佳;

 

5、RMSProb算法:同样是对梯度下降法进行改造,保证前进的幅度减小。超参数β2=0.999

 

6、Adams算法:将动量梯度和RMSProb算法结合起来共同作用梯度下降算法。并且加入了偏差修正单元

 

7、学习率衰减(learning rate decay):就是随着迭代的进行,慢慢以10倍的速率减小学习率的大小。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值