原视频地址 https://www.bilibili.com/video/BV1JE411g7XF?p=5

文章目录

  • 梯度下降是如何优化函数的
  • tips
    • 1. 使用Adagrad
    • 2. Stochastic Gradient Descent
    • 3. Feature Scaling
  • 梯度下降理论基础
  • 梯度下降的局限性

梯度下降是如何优化函数的

前情回顾:损失函数是用来衡量找到的函数对应的那一组参数的好坏的。

theta是一组参数,上标表示参数是第几组的,下标表示参数是组中的第几个。
上图是将梯度分成两个偏导数表示,下图是直接使用梯度。
把梯度看成是损失函数等高线的法线方向,现在每得到一个函数,算出梯度,然后按梯度相反方向走。

tips

1. 使用Adagrad

应当小心调节学习率,原因如下图所示:
学习率太小:过慢,效率低
学习率太大:找不到最小的损失函数值
学习率刚刚好 Just make

原则:
①学习率逐渐减小,离目标越近走得越慢。
②给不同的参数以不同的学习率。(参数独立)
例:Adagrad方法
把每一个参数的学习率都除以之前导数的均方根(均方根:将所有值平方求和, 求其均值, 再开平方)
使用Adagrad之前,学习率这样更改

使用Adagrad之后,学习率这样更改

其中

具体操作如下

化简后的Adagrad公式

这里有个矛盾的地方,最终得出的Adagrad公式,从一项看是梯度越大,学习率变化越大,从另一项看结果相反

直观解释这么做的原因
学习率可能变化是很大的,给人很大反差,除以过去的方均根可以平和掉这个反差

更科学的解释:修改参数的步伐(当前点和最低点的距离)最好正好是那个微分的整数倍,但这只在只考虑一个参数时成立,如果有多个参数呢?那个bset step则需要将二次微分(derivative)考虑进来

再回头看Adagrad公式,分号下面的方均根就是模拟了二次微分。

2. Stochastic Gradient Descent

下面介绍一个改进的参数更新方法——Stochastic Gradient Descent,直译是随机梯度下降
该方法在原梯度下降的基础上做的改进是,原先的梯度下降损失函数是所有样本的总和,现在只随机取第n个样本

也就是之前是看完所有样本再更新参数,现在遇到一个样本更新一次参数,如下图所示

3. Feature Scaling

直译是特征缩放,做什么事呢?希望不同特征的分布差不多,如下图,从左图转化到右图是我们要做的

为什么要这样做?
如下图所示,当输入的x1是1,2……而x2是100,200……那么w1对Loss函数的影响显然比w2对Loss函数的影响小得多,如下左图所示,如果对x2进行缩小,则可以使得w1和w2对Loss函数的影响差不多,如下右图所示

对于左右两图,左边想更新参数不用Adagrad公式就会很困难,右边的正圆形想更新参数则容易得多

具体方法:
常见方法
对每一维参数的第i个样本求均值m i和标准偏差sigma i
对第r维参数的第i个样本进行图中公式所示方法的更新

类似正态分布标准化

梯度下降理论基础

每次我们得到的新的theta代入到Loss函数里面,都会比上一次小,对吗?

答案是否定的。
假如现在给定一个theta的起点,圈定一个范围,可以找到这个范围内最小的Loss函数值对应的theta。

将theta更新,得到theta1

可以重复刚才过程。现在的问题是如何在那个确定的范围内找到Loss值最小时对应的theta?
就要从Taylor Series(泰勒级数)说起。
对于任一函数h(x),只要在x0这一点是无穷次可微的。就可以把h(x)写成下图所示(其中k表示微分的次数)。当x无限接近x0,可以把(x-x0)的平方项,立方项,四次方项……忽略。将h(x)表示成下图最下方形式。

例如,以h(x)=sin(x)为例,在x0=pi/4处,只考虑0次和1次,approximation(近似法)的效果还是很好的。(虽然整体看不像)

当然,泰勒级数可以有多个参数,有2个参数的如下所示

再回到梯度下降法,当刚刚圈定的范围(红圈)足够小,就可以运用泰勒级数,将损失函数L(theta)表示成下图最下行所示

这样算损失函数的最小值对应的(theta1,theta2)就变得容易。其中s,u,v都是常数。

具体求法如下,我们要找的(delta-theta1,delta-theta2)是和(u,v)反方向,且长度等于圈定的radius(半径)的。

代入u,v,发现得到的就是最初的梯度下降的公式。

但要记得的是,找到的红色圈的半径要足够小,而这个半径和学习率是成正比的。因此学习率要合适。
刚才只考虑到1次的级数,如果考虑的次数更高呢?会引入更复杂的运算,并没有梯度下降法合适。

梯度下降的局限性

会停在微分值是0但不是我们要找的全局最小值的地方。如:saddle point(驻点)和local minima(局部最小值点)。

hung-yi lee_p5-7_Gradient Descent(梯度下降)相关推荐

  1. Gradient Descent梯度下降(透彻分析)

    ----------首先了解什么是梯度? 官方解释: 梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为 ...

  2. Gradient descent --梯度下降(to be continued)

    1.资料 An overview of gradient descent optimization algorithms

  3. Stochastic Gradient Descent ( 随机梯度下降 )

    Stochastic Gradient Descent (SGD) ( 随机梯度下降( SGD ) ) 是一种简单但非常有效的方法,用于在诸如(线性)支持向量机和 逻辑回归 之类的凸损失函数下的线性分 ...

  4. 梯度下降的线性回归用python_运用TensorFlow进行简单实现线性回归、梯度下降示例...

    线性回归属于监督学习,因此方法和监督学习应该是一样的,先给定一个训练集,根据这个训练集学习出一个线性函数,然后测试这个函数训练的好不好(即此函数是否足够拟合训练集数据),挑选出最好的函数(cost f ...

  5. 吴恩达《Machine Learning》精炼笔记 2:梯度下降与正规方程

    作者 | Peter 编辑 | AI有道 今天带来第二周课程的笔记:梯度下降与正规方程. 主要内容: 多维特征 多变量梯度下降 梯度下降法实践 正规方程 多维特征Multiple Features 还 ...

  6. 批梯度下降 随机梯度下降_梯度下降及其变体快速指南

    批梯度下降 随机梯度下降 In this article, I am going to discuss the Gradient Descent algorithm. The next article ...

  7. python解zuobiaoxi方程_吴恩达《Machine Learning》精炼笔记 2:梯度下降与正规方程

    作者:Peter 红色石头的个人网站: 红色石头的个人博客-机器学习.深度学习之路​www.redstonewill.com 今天带来第二周课程的笔记:梯度下降与正规方程. 主要内容: 多维特征 多变 ...

  8. 梯度下降和导数的作用

    导数概念 导数是用来反映函数局部性质的工具.对于一个函数来说, 函数在某一点的导数描述了这个函数在这一点附近的变化率.      如果函数的自变量和取值都是实数的话,函数在某一点的导数就是该函数所代表 ...

  9. Lesson 4.34.4 梯度下降(Gradient Descent)基本原理与手动实现随机梯度下降与小批量梯度下降

    Lesson 4.3 梯度下降(Gradient Descent)基本原理与手动实现 在上一小节中,我们已经成功的构建了逻辑回归的损失函数,但由于逻辑回归模型本身的特殊性,我们在构造损失函数时无法采用 ...

最新文章

  1. UI控件库分享:DWZ(j-UI)、LigerUI、Linb
  2. mysql编码无效_mysql的严格模式与无效字符编码问题
  3. linux scp 跨服务器,scp跨服务器拷贝,后台运行
  4. 使用代码执行organization unit determination逻辑
  5. ASP.NET Zero--5.配置权限
  6. message:MCODE参数不存在,mobile类型mcode参数必需
  7. xy坐标正负方向_【笛卡尔坐标系】
  8. 数据库系统实训——实验九——函数
  9. Binary Tree Zigzag Level Order Traversal
  10. Win32汇编---控件的超类化感想
  11. 使用 Segue 傳送選取的 Table Cell 內容到下一個 View
  12. 正则表达式 —— 括号与特殊字符
  13. paip.vs2010 开发ASP浏览时的设置
  14. ffmpeg java_Java 调用 FFMPEG 的坑人之处
  15. 微软应用商城下载ShareX老出错
  16. 完美解决Macbook安装win 10调节亮度的问题
  17. python删除excel某行的格式_Python+Xlwings 删除Excel的行和列
  18. 软件观念革命:交互设计精髓_万字干货,交互设计精髓105条设计原则(附中英PDF资料)...
  19. 人人都能成为闪电网络节点:第4章连接别的节点
  20. [业界] 关于诺基亚,上来吐槽两句埃洛普,顺便爆点料。

热门文章

  1. 微信小程序去除左上角返回的按钮
  2. Storybook 5.0正式发布:有史以来变化最大的版本\n
  3. 《树莓派开发实战(第2版)》——1.15 使用蓝牙设备
  4. centos6.5 rsync+inotify同步配置笔记
  5. Velocity 入门(一)
  6. Kotlin语法(基础)
  7. 解决远程桌面无法连接问题
  8. 如何通过参数来切换图表和数据
  9. 工程师进阶之路(四)
  10. DivCSS网页布局中CSS无效的十个常见原因