首页 归档 关于 赞助 软件 订阅
「李宏毅机器学习」学习笔记-Gradient Descent
Oct 31, 2018 | 机器学习 | 阅读 文章目录- 1. Review
- 2. Tip 1: Tuning your learning rates
- 3. Tip 2: Stochastic Gradient Descent:Make the training faster
- 4. Tip 3: Feature Scaling
- 5. Formal Derivation
- 6. More Limitation of Gradient Descent
Review
Tip 1: Tuning your learning rates
learning rate太小,loss值下降会很慢,如图左蓝色线;learning rate比较大,loss值有可能会卡在一个地方,如图左绿色曲线,learning rate很大,loss值有可能变大,如图左红色曲线。
可以可视化learning rate与loss值的关系,如图右所示。在做Gradient Descent时候建议画出此图,可以更好的选择learning rate。
Adaptive Learning Rates
为了达到以上目的,有很多技巧,比如Adagrad。
Adagrad
此时,可能会发现一个矛盾,在做一般的Gradient Descent中,参数的update取决于两件事情,一件事情是learning rate,另一件事情是gradient。gradient越大,参数update就越快。在Adagrad中,gradient越大,分母就会越大,正好与gradient对参数update的影响相反,如图所示。
其实,Adagrad如此处理,直觉上来讲,是为了突出反差的效果。
只考虑一个参数的时候,调整的best step与一次微分有关。
考虑两个参数的时候,可以看出w1w1上的a点的微分值是比较小的,w2w2上的c点的微分值是比较大的,但是可以明显看出,a点离最低点是比较远的,c点离最低点是比较近的。所以,考虑跨参数的时候,就不能仅仅只考虑一次微分值。
同时考虑多个参数的时候,调整的best step与一次微分和二次微分有关。Adagrad的做法是在没有额外多余的运算下估算二次微分。
Tip 2: Stochastic Gradient Descent:Make the training faster
正常的Gradient Descent,Loss是考虑所有的training example,Stochastic Gradient Descent的Loss只考虑某一个example。
从Demo中可以看出,Gradient Descent看过所有的example后update一次参数,是比较稳定的;Stochastic Gradient Descent每看到一个example后就update一次参数,是比较散乱的,但是速度是比较快的。
Tip 3: Feature Scaling
Feature Scaling是为了让特征有相同的分布。
e.g.假设y=b+w1x1+w2x2y=b+w1x1+w2x2中x1x1的值是比较小的(1,2……),x2x2的值是比较大的(100,200……),对w1w1、w2w2的值做相同的变化,会发现w1w1对yy的变化是比较小的,w2w2对yy的变化是比较大的。因此可以画出蓝色圈圈的图, 在w1w1方向上是比较smooth的,在w2w2方向上是比较sharp的,这时候update参数是比较难的。经过Feature Scaling处理后,可以得到绿色圈圈的图,这时候update参数是比较容易,比较有效率的。
常用的Feature Scaling方法之一如图所示:
Formal Derivation
More Limitation of Gradient Descent
Gradient Descent可能会卡在local minima,也可能会卡在saddle point,也有可能是卡在微分值很小的plateau。
如果本博文对您有帮助,可以赞助支持一波博主~
推荐阅读
- 「李宏毅机器学习」学习笔记-Logistic Regression
- 「李宏毅机器学习」学习笔记-Classification:Probabilistic Generative Model
- 「李宏毅机器学习」学习笔记-Where does the error come from?
- 「李宏毅机器学习」学习笔记-Regression
- 本文链接:https://blueschang.github.io/2018/10/31/「李宏毅机器学习」学习笔记-Gradient Descent/
- 版权声明:本博客所有文章除特别声明外,均采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 许可协议。转载请注明出处!
李宏毅 机器学习 「李宏毅机器学习」学习笔记-Classification:Probabilistic Generative Model「李宏毅机器学习」学习笔记-Where does the error come from? 分类 标签 Hexo Github 博客 李宏毅 机器学习 剑指Offer Python Algorithm 最近文章
- 「剑指Offer(第二版)」Python3实现
- 「李宏毅机器学习」学习笔记-Support Vector Machine (SVM)
- 「李宏毅机器学习」学习笔记-Transfer Learning
- 「李宏毅机器学习」学习笔记-Unsupervised Learning - Deep Generative Model (Part II)
- 「李宏毅机器学习」学习笔记-Unsupervised Learning - Deep Generative Model (Part I)
- 「李宏毅机器学习」学习笔记-Unsupervised Learning - Deep Auto-encoder
- 「李宏毅机器学习」学习笔记-Unsupervised Learning - Neighbor Embedding
- 「李宏毅机器学习」学习笔记-Unsupervised Learning - Word Embedding
- 「李宏毅机器学习」学习笔记-Unsupervised Learning - Linear Methods
- 「李宏毅机器学习」学习笔记-Semi-supervised