我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。

已经有人记了笔记(很用心,强烈推荐):
https://github.com/Sakura-gh/ML-notes

本节对应笔记:

本节内容综述

  1. 首先复习:GradientLoss的等高线的法线方向;
  2. 接下来是关于梯度下降的技巧,一是“小心地调正学习率”,有没有方法自动地调学习率呢?Adaptive Learning Rates是一个基础的方法。但还不够好。
  3. 一个更复杂的、典型的方法是Adagrad,介绍了其简单的推导与公式的理解。
  4. Stochastic Gradient Descent;
  5. Feature Scaling;
  6. Gradient Descent为何有效?以及本身存在局部最优的算法。

小细节

Tuning your learning rate carefully & Adagrad

【李宏毅2020 ML/DL】P5-7 Gradient Descent_1-3

Adagrad就是将不同参数的learning rate分开考虑的一种算法,对于某个参数,迭代到后面速度会越来越慢,当然这只是adaptive算法中最基础的。

【李宏毅2020 ML/DL】P5-7 Gradient Descent_1-3

在 Adagrad 里存在“矛盾”?

【李宏毅2020 ML/DL】P5-7 Gradient Descent_1-3

解释一:i=0t(gi)2\sqrt{\sum^t_{i=0}(g^i)^2}gtg^t相互构成“比”的关系,用于表示一种反差,如下图。

【李宏毅2020 ML/DL】P5-7 Gradient Descent_1-3

解释二:李宏毅老师解释,“gradient越大,离最低点越远这件事情在有多个参数的情况下是不一定成立的”。如下图(c比a里最低点更近,但是其梯度更大)。

【李宏毅2020 ML/DL】P5-7 Gradient Descent_1-3

类似牛顿法思想,最合适的方法是将二次微分作为分母。但是求二次微分可能计算量更大,因此,使用 Adagrad 求近似。

【李宏毅2020 ML/DL】P5-7 Gradient Descent_1-3

Stochastic Gradient Descent

对于:L=n(y^n(b+wixin))2L=\sum_n(\hat{y}^n - (b+ \sum w_i x_i^n))^2

正常的Gradient Descent:

  • θi=θi1ηL(θi1)\theta^i = \theta^{i-1} - \eta \nabla L(\theta^{i-1})

Stochastic Gradient Descent:

  • Pick an example xnx^n
  • Ln=(y^n(b+wixin))2L^n = (\hat{y}^n - (b + \sum w_i x_i^n))^2
  • Loss for only one example
  • θi=θi1ηLn(θi1)\theta^i = \theta^{i-1} - \eta \nabla L^n(\theta^{i-1})

【李宏毅2020 ML/DL】P5-7 Gradient Descent_1-3

显然,后者迭代次数更多,更加灵活,带来效果更好。

Feature Scaling

特征缩放:

  • 当特征的分布范围很不一样时,最好将这些不同feature的归为相同范围。

【李宏毅2020 ML/DL】P5-7 Gradient Descent_1-3

如下图,显然做了 feature scaling 后,方向更加正确。

【李宏毅2020 ML/DL】P5-7 Gradient Descent_1-3

feature scaling 方法有很多:

  • 比如标准化xirxirmiσix_i^r \leftarrow \frac{x_i^r - m_i}{\sigma_i}

Gradient Descent为何有效

考虑泰勒展开,在数学上可以推导出,最优的下降方向就是求梯度。不考虑二阶及以上梯度,因为这样带来的时间效率得不偿失。

此外,Gradient Descent有可能陷入局部最优。

李老师用帝国时代我的世界举例,非常生动。很优秀,名不虚传。

相关文章:

  • 2022-01-07
  • 2022-01-06
  • 2021-06-24
  • 2021-09-12
  • 2021-07-03
  • 2021-11-17
  • 2021-04-05
  • 2021-04-18
猜你喜欢
  • 2021-11-23
  • 2021-10-11
  • 2021-08-27
  • 2021-05-14
  • 2021-09-14
  • 2021-09-15
  • 2021-09-19
相关资源
相似解决方案