Review

在解决问题时一般分为三个步骤:
步骤一:选择一个function set
步骤二:找到loss function
步骤三:最小化loss function找到function set中最优的function。

步骤三中常用的方法就是梯度下降(Gradient Descent)。

θ∗=argmin⁡θL(θ)\theta^*=arg\,\min_{\theta}L(\theta)θ∗=argminθ​L(θ)
L: loss function
θ\thetaθ: parameters
目标是最小化loss function,并找到使loss function 最小的θ\thetaθ,其中θ\thetaθ是function set的参数组成的vector。
假设θ有两个参数{θ1,θ2},梯度下降的做法如下:

  1. 随机从loss function上任意一点开始,随机的使θ=θ0\theta=\theta_0θ=θ0​,其中θ0=[θ10θ20]\theta_0=\begin{bmatrix} \theta_1^0 \\ \theta_2^0 \\ \end{bmatrix}θ0​=[θ10​θ20​​]
  2. 更新θ\thetaθ
  • θ1=[θ11θ21]=[θ10θ20]−η[∂L(θ10)∂θ1∂L(θ20)∂θ2]\theta_1=\begin{bmatrix} \theta_1^1 \\ \theta_2^1 \\ \end{bmatrix}=\begin{bmatrix} \theta_1^0 \\ \theta_2^0 \\ \end{bmatrix}-\eta \begin{bmatrix} \frac {\partial L(\theta_1^0 )}{\partial \theta_1} \\ \frac {\partial L(\theta_2^0 )}{\partial \theta_2} \\ \end{bmatrix}θ1​=[θ11​θ21​​]=[θ10​θ20​​]−η[∂θ1​∂L(θ10​)​∂θ2​∂L(θ20​)​​]
  • θ2=[θ12θ22]=[θ11θ21]−η[∂L(θ11)∂θ1∂L(θ21)∂θ2]\theta_2=\begin{bmatrix} \theta_1^2 \\ \theta_2^2 \\ \end{bmatrix}=\begin{bmatrix} \theta_1^1 \\ \theta_2^1 \\ \end{bmatrix}-\eta \begin{bmatrix} \frac {\partial L(\theta_1^1 )}{\partial \theta_1} \\ \frac {\partial L(\theta_2^1 )}{\partial \theta_2} \\ \end{bmatrix}θ2​=[θ12​θ22​​]=[θ11​θ21​​]−η[∂θ1​∂L(θ11​)​∂θ2​∂L(θ21​)​​]
  • 将这个动作一直重复下去…
    可以简写为:θk+1=θk−η∇L(θk)\theta^{k+1}=\theta^k-\eta\nabla L(\theta^k)θk+1=θk−η∇L(θk)
    ∇L(θ)=[∂L(θ1)∂θ1∂L(θ2)∂θ2]\nabla L(\theta)=\begin{bmatrix} \frac {\partial L(\theta_1 )}{\partial \theta_1} \\ \frac {\partial L(\theta_2 )}{\partial \theta_2} \\ \end{bmatrix}∇L(θ)=[∂θ1​∂L(θ1​)​∂θ2​∂L(θ2​)​​]

直观理解就是对每个参数在当前位置上求偏微分,这个偏微分就是当前点在这个参数方向上的梯度,向这个梯度的反方向走就可以走到一个更低的点,这个更低的点代表着loss function的值更小。如下图,横轴是θ1\theta_1θ1​纵轴是θ2\theta_2θ2​,初始点θ0\theta_0θ0​是随机选择的。

Learning Rate:η\etaη

learning rate可以理解为步长,就是在梯度反方向上走多长,learning rate是监督学习中重要的超参,它决定了能否走到一个足够优的点,也决定了多久能走到一个足够优的点,就是他决定了目标函数能否收敛到局部最小值也决定了收敛速度,所以learning rate的选择十分重要。

蓝色的线表示一个比较小的learning rate,这就导致目标函数收敛速度非常慢;绿线和黄线表示了一个比较大的learning rate,这就导致目标函数无法收敛甚至会发散。红色的线是比较合适的learning rate。

Adaptive Learning Rates

假设在一个不规则的曲面上进行梯度下降,在每个方向上的梯度都是不断变化的,这种情况下,使用统一的learning rate会导致在梯度较小的时候收敛太慢,在梯度较大的时候learning rate又相对过大,会出现无法收敛甚至发散的情况。
比较常用且简单的方法:每隔几步就将学习率降低一些。

  • 一开始离目的地很远,所以我们使用较大的学习率
  • 经过几次下降后,我们离目的地很近,所以我们降低了学习率
  • 例如:1t\frac 1tt1​decay:ηt=ηt+1\eta^t=\frac \eta{\sqrt{t+1}}ηt=t+1​η​
    Learning rate cannot be one-size-fits-all,所以对于不同的参数要有不同的learning rates

Adagrad

adagrad也是一种梯度下降方法,在普通的梯度下降的基础上对于learning rates:η\etaη除以之前所有一阶微分的RME。

Stochastic Gradient Descent

随机梯度下降法不同于批量梯度下降,随机梯度下降是每次迭代使用一个样本来对参数进行更新。使得训练速度加快。
Gradient Descent:对于全部的样本进行求和
L=∑n(y^n−(b+∑wixin))2L=\sum_n(\hat y^n-(b+\sum w_ix_i^n))^2L=∑n​(y^​n−(b+∑wi​xin​))2
θi=θi−1−η∇L(θi−1)\theta^i=\theta^{i-1}-\eta\nabla L(\theta^{i-1})θi=θi−1−η∇L(θi−1)
Stochastic Gradient Descent:随机选择一个样本xnx^nxn
Ln=(y^n−(b+∑wixin))2L^n=(\hat y^n-(b+\sum w_ix_i^n))^2Ln=(y^​n−(b+∑wi​xin​))2
θi=θi−1−η∇L(θi−1)\theta^i=\theta^{i-1}-\eta\nabla L(\theta^{i-1})θi=θi−1−η∇L(θi−1)
所以SGD的速度更快。

Feature Scaling

对于不同的特征,很可能比例不同,例如一个模型y=b+w1x1+w2x2y=b+w_1x_1+w_2x_2y=b+w1​x1​+w2​x2​,有两个特征x1x_1x1​和x2x_2x2​,x1x_1x1​的范围是[-1,1],x2x_2x2​的范围[-100,100],这导致x1x_1x1​和x2x_2x2​对目标函数的不同,同时可能梯度下降的速度会减慢。

李宏毅 Gradient Descent总结相关推荐

  1. 201-3-19李宏毅机器学习视频笔记七(游戏解释Gradient Descent)

    视频部分: 视频7:使用帝国时代游戏解释Gradient Descent 李宏毅机器学习(2017)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili https://www.bilibili.co ...

  2. 台大李宏毅Machine Learning 2017Fall学习笔记 (4)Gradient Descent

    台大李宏毅Machine Learning 2017Fall学习笔记 (4)Gradient Descent 这节课首先回顾了利用梯度下降法优化目标函数的基本步骤,然后对梯度下降法的应用技巧和其背后的 ...

  3. 【李宏毅机器学习】04:梯度下降Gradient Descent

    李宏毅机器学习04:梯度下降Gradient Descent 文章目录 李宏毅机器学习04:梯度下降Gradient Descent 一.梯度下降方法 二.梯度下降的改进方法 Tip 1: Tunin ...

  4. [李宏毅 机器学习笔记] Gradient Descent

    文章目录 前言 1 Gradient Descent 总结 前言   学习李宏毅老师的课程,所作的笔记,文中使用的PPT均来自李宏毅老师讲演PPT. 1 Gradient Descent   我们为了 ...

  5. 【ML】 李宏毅机器学习一:Regression、Gradient Descent(python实现)

    我的GitHub地址:https://github.com/taw19960426/DeepLearning存放与之对应的python代码 1.Regression 1.1 Introduction ...

  6. 【李宏毅2020 ML/DL】补充:Meta Learning - Gradient Descent as LSTM

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本次笔记补充视频 BV1JE411g7XF 的缺失部分.上节课李老师讲了元学习中的参数初始化方法:MAML 与 ...

  7. 李宏毅 机器学习 2016 秋:3、Gradient Descent

    文章目录 三.Gradient Descent 3.1 Tuning your learning rates 3.2 Stochastic Gradient Descent 3.3 Feature S ...

  8. gradient descent,计算图,backpropagation

    先了解计算图,再了解backpropagation,还有链式规则,最后gradient descent 李宏毅机器学习gradient descent,计算图,backpropagation(bp算法 ...

  9. Gradient Descent和Back propagation在做什么?

    Gradient Descent梯度下降 实际上你要用一个Gradient Descent的方法来train一个neural network的话你应该要怎么做? 到底实际上在train neural ...

  10. 机器学习中的梯度下降( Gradient Descent)算法

    前言 梯度下降(Gradient Descent,GD)算法主要分为三种:批量梯度下降(Batch Gradient Descent,BGD)算法.随机梯度下降(Stochastic Gradient ...

最新文章

  1. 关于中台,你可能不知道的那些事
  2. PL/SQL高级编程
  3. Atitit.jpg png格式差别以及解决jpg图片不显示的问题
  4. XXL-CONF v1.4.1 发布,分布式配置管理平台
  5. LaTeX输入单个点、横向多个点、竖向多个点、斜向多个点
  6. Pandas数据挖掘与分析时的常用方法
  7. 完整全面的Java资源库(包括构建、操作、代码分析、编译器、数据库、社区等等)...
  8. Delphi工具之TDUMP
  9. Linux学习笔记(二):cd命令的使用
  10. linux lsof 端口 字母,linux lsof/netstat查看进程和端口号相关命令:
  11. 【面试题总结】2、反转字符串的几种形式
  12. MVC 中使用uploadify上传图片遇到的蛋疼问题
  13. Mac—Excel转图片
  14. 今天申请了亚马逊新加坡站点
  15. 2019年春运首日 上海三大火车站预计发送旅客35.9万人次
  16. 大数据下的密码学技术挑战
  17. 如何点击验证码刷新验证码的问题解决方法?
  18. 【IT-Windows】某些设置由你的组织来管理
  19. mPEG-OPSS MPEG-SPDP 甲氧基PEG巯基吡啶
  20. Linux 安装mysql5.7.29源码安装【亲自测试】

热门文章

  1. Engineer05
  2. hdu4757(可持久化 Trie )
  3. 传输信道加密Stunnel配置
  4. 从KRE到XRE:ASP.NET 5中正在消失的那些K
  5. postfix+dovecot+maildrop+mailscanner+clamav+spamassassin搭建rhel6平台邮件服务器
  6. SpringCloud微服务(01):Eureka组件,管理服务注册与发现
  7. LeetCode - 709. To Lower Case
  8. Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法
  9. day09-线程与进程
  10. 配置springMVC