深度学习领域常用optimizer总结-梯度下降算法优化

                                             

1.声明:

        本文参考https://blog.csdn.net/weixin_40170902/article/details/80092628

2.拉伸运动:

             在我看来,所有大神的思想无非是:早餐应该吃包子还是油条,这家2块但是不好吃,那家好吃但是5块钱有点贵,我应该怎么选的问题。朋友们如果觉得我说的不对,请保留你心中的宝贵意见,就当是为人类观点的多样性做贡献。如果你觉得这个人不是那么的让人讨厌,那我们开始吧!

3.总体概述:

             以下的optimizer算法总体上是基于梯度下降算法进行优化,分为梯度和学习率两方面的优化。梯度优化包括:Momentum、  Nesterov;学习率优化包括:Adagrad、Adadelta、RMSprop、Adam。是不是很多,是不是很头疼。我不能把发明算法的人都毙掉,那我就试着说的简单一点。

4.开始:

             刮风这天我试过握着你手,但偏偏雨渐渐大到我看你不见,还要多久我才能在你身边,等到放晴的那天也许我会比较好一点《晴天-周杰伦 》;试着以最轻松的状态唱完上面的歌,不行就多唱几遍,对对对,不要把自己催的那么紧!生命的旋律一定要优美,时间的脚步就需要和谐。

        1.梯度优化类算法:

              1.Momentum(前事不忘后事之师):

                 原始的梯度下降公式为:

                                          

                 小人下山的时候,只考虑前面要怎么走。上帝还是很有智慧的,设计了惯性。那我们也给这个小人加上惯性吧。于是 就有了下面公式:这里Vt-1相当于是前面所有梯度的加权累计,t 时刻对应的权重\tiny ^{^{^{^{^{}}}}}为:α**t-1;

                                                

                 但是加上惯性之后的小人,处于局部处的时候就徘徊震荡。取得一点点的小成就就不思进取,我们肯定忘了点什么,对要让他有远见,展望明天!

               2.Nesterov(人无远虑必有近忧)

               小人从以前的经验中学到了知识,这会告诉他怎么走;但是对于人类上帝还有一句忠告:三思而后行;那么就让这个小人想一想这么走的后果,再继续走;于是我们的公式变成了:

                                              

             暂时我们解决了怎么走的问题,那是不是应该考虑一下走多少的问题了。先唱首歌,不负金樽、才能不负青春

                      没关系你也不用给我机会 反正我还有一生可以浪费 我就是剩这么一点点倔 称得上 我的优点
                      没关系你也不用对我惭愧 也许我根本喜欢被你浪费 随便你今天拼命爱上谁 我都会 坦然面对
                      即使要我跟你再耗个十年 无所谓《浪费-林宥嘉》

             3.Adagrad()

                     传统调整学习率的方式:1/(1+衰减率*迭代次数) 作为衰减度,但是这样调整是有点武断。

                     所以我们的学习率就变成了下面这样,解释一下就是用学习率除以对应参数以前的梯度平方和,ε是为了方式分母为0;想象一个班级的小朋友去春游,要回家就要一起走到山下去,大家走了10分钟后,发现刘翔同学已经快到下面了,那就让他慢点走,发现杨超越同学还在山顶数星星,那就让她快点走。根据前面走的路判断接下来步子要跨多大。

                                                    

                      但是这样还有个问题,就是越往后,学习率越小,后面就往往不调了。

              4.RMSprop

                      名称已经暴露了算法本身,就是平均平方和再开根号,说到底就是把adagrad中的二阶导的平方和换成了平方的平均数。

                          

             5.Adadelta

                            这个算法不依赖于手动指定的学习率,简单理解为 一阶导/二阶导;这个算法是这些算法中唯一不需要指定学习率的,所以他很得儿。

                           

              6.Adam

                           这个算法相当于给一阶导和二阶导加上了矫正项;β1通常取0.9,β2通常取0.999;走的更稳健了

                           

            我累了,等我歇够了再来完善吧!基本思想体系已经完成。

                                                  我看透了她的心还有别人逗留的背影
                                                                           她的回忆清除得不够乾净
                                                                                             我看到了她的心演的全是他和她的电影
                                                                                                      他不爱我尽管如此她还是赢走了我的心《她不爱我-莫文蔚》
                    

猜你喜欢

转载自blog.csdn.net/gaobing1993/article/details/108053841