李宏毅机器学习课程---4、Gradient Descent (如何优化)

一、总结

一句话总结:

调整learning rates:Tuning your learning rates
随机Gradient Descent:Stochastic Gradient Descent
特征缩放:Feature Scaling

stochastic
英 [stə'kæstɪk]  美 [sto'kæstɪk]
adj. [数] 随机的;猜测的

1、如何调整 Learning Rates?

比如先大后小:Popular & Simple Idea: Reduce the learning rate by some factor every few epochs.
单一适应:Learning rate cannot be one-size-fits-all

2、在求Learning Rates的时候,如何粗略反应现在点和最低点的距离?

|First derivative| / Second derivative

derivative
英 [dɪ'rɪvətɪv]  美 [də'rɪvətɪv]
n. [化学] 衍生物,派生物;导数
adj. 派生的;引出的

3、Stochastic Gradient Descent 和 一般Gradient Descent的区别是什么?

Gradient Descent:Update after seeing all examples
Stochastic Gradient Descent:【Update for each examples】,If there are 20 examples, 20 times faster.

stochastic
英 [stə'kæstɪk]  美 [sto'kæstɪk]
adj. [数] 随机的;猜测的

4、Gradient Descent中的Feature Scaling(特征缩放)的好处是什么?

易找最低点:特征缩放之后变成圆,比较容易找到最低点,任意方向都会向着圆心走:Make different features have the same scaling

5、Taylor Series 是什么?

泰勒展开式

6、梯度下降算法的限制?

局部最优解:梯度下降算法求得的解可能是局部最优解
不是最优解:梯度下降算法可能收敛在驻点,求得的解不是最优解
停止于偏微分很小的点:由于梯度下降算法的收敛条件是参数变化小于一个给定的误差,因此算法可能停止于一个偏微分很小的点

梯度下降属于线性回归的一个重要的部分。但是这种方法具有局限性,在一般的情况下,并不能保证找到的局部最小就是全局最小。所以这种方法适用于目标函数是凸函数的情况(local minimum == global minimum)。即使是在凸函数中也不能保证最后找到的点就是最小值,这取决于算法的中止条件(即变化率小于一个定值)和所取的参数λ。所以算法很可能在找到一个相对平滑而并非最小值的地方以后就终止。

7、自动调整学习速率 算法的核心思想是什么?

先大后小:每个参数设置不同学习速率,学习速率随着参数调整次数的增大而减少,因为通常初始点距离最优点远,步伐可以设置大一点,随着参数的调整逐渐逼近最优点,此时步伐应该调小,避免跨过最优点。

如果学习速率适合,那么优化Loss function的路径应该如红色线段;如果学习速率过大,那么优化Loss function的路径将如绿色、黄色线段;如果学习速率过小,那么优化Loss function的路径将如蓝色线段。由此,衍生出自动选择学习速率的方法(Adaptive Learning Rates),核心思想:每个参数设置不同学习速率,学习速率随着参数调整次数的增大而减少,因为通常初始点距离最优点远,步伐可以设置大一点,随着参数的调整逐渐逼近最优点,此时步伐应该调小,避免跨过最优点。

8、梯度下降和随机梯度下降 算法的区别是什么?

Update after seeing all examples:梯度下降的算法遍历所有样本之后才更新参数,走的方向比较稳定;
Update for each examples:随机梯度下降的算法不稳定,但是相同的时间内速度大大增加。

9、Adagrad是什么?

自动调整学习速率:一种常见的自动调整学习速率算法

最终可以得到Adagrad算法的参数更新:wt+1←wt−η∑ti=0(gi)2gt,Adagrad算法考虑gt的反差效应,gt表示一阶导数,∑ti=0(gi)2 反映二阶导数。

10、为什么在梯度下降中,λ的选择尤为重要?

λ偏大易陷入死循环:λ偏大的话,算法会一直徘徊在最小值左右的两个点而陷入死循环;
λ偏小速率偏慢:λ偏小的话,会导致梯度下降的速率偏慢。
λ要变化,先快后慢:基于这种情况,我们不再将λ设置成为一个定值,而是随着算法不断变化。一般来说,我们选择先快后慢,即初始的λ较大,而第k次更迭的λ与k-1次的λ成正比,与1+k的开方成反比。

二、内容在总结中

 

最新文章

  1. python——Django(ORM连表操作)
  2. 让Git记住用户名和密码
  3. asp.net js 跨域方法二
  4. GitHub开源项目总结
  5. 前端开发环境搭建 Grunt Bower、Requirejs 、 Angular
  6. web前端基础——补充
  7. linux命令(6)crontab的用法和解析
  8. Linux中/usr与/var目录详解
  9. dev combobox edit 怎么设置让选项清空
  10. BeagleBone Black Linux驱动程序开发入门(1): LED驱动程序
  11. .NET中常见的内存泄露问题——GC、委托事件和弱引用
  12. PDO LIMIT bug
  13. Log4net从下载到使用例子
  14. 如何用Postman组装Request并且查看Response
  15. HybridApp Exception
  16. 如何在BIOS里设置定时关机?
  17. UVA12186
  18. HTML5 唤起 APP
  19. 19条MySQL优化准则
  20. Git日常须知

热门文章

  1. 【leetcode】955. Delete Columns to Make Sorted II
  2. Robot Framework:随机数
  3. vue-element-admin打包后白屏的问题
  4. webstorm使用说明
  5. js 获取数组中的最大值和最小值
  6. XSS的原理分析与解剖(第二篇)
  7. CentOS7简单安装mplayer和vlc!
  8. CF 1097D - Hello 2019 D题: Makoto and a Blackboard
  9. 从pcap文件中分析出数据包
  10. Webpack4篇