1. 机器学习中为什么需要梯度下降

梯度下降是机器学习中常见优化算法之一,梯度下降法有以下几个作用:
(1)梯度下降是迭代法的一种,可以用于求解最小二乘问题。
(2)在求解机器学习算法的模型参数,即无约束优化问题时,主要有梯度下降法(Gradient Descent)和最小二乘法。
(3)在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。
(4)如果我们需要求解损失函数的最大值,可通过梯度上升法来迭代。梯度下降法和梯度上升法可相互转换。
(5)在机器学习中,梯度下降法主要有随机梯度下降法和批量梯度下降法。

2. 梯度下降法缺点

梯度下降法缺点有以下几点:
(1)靠近极小值时收敛速度减慢。
(2)直线搜索时可能会产生一些问题。
(3)可能会“之字形”地下降。
梯度概念也有需注意的地方:
(1)梯度是一个向量,即有方向有大小。
(2)梯度的方向是最大方向导数的方向。
(3)梯度的值是最大方向导数的值。

3. 梯度下降法直观理解

梯度下降法经典图示如下图所示:

梯度下降法经典图示
形象化举例,由上图所示,假如最开始,我们在一座大山上的某处位置,因为到处都是陌生的,
不知道下山的路,所以只能摸索着根据直觉,走一步算一步,在此过程中,每走到一个位置的时候,都会求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后继续求解当前位置梯度,向这一步所在位置沿着最陡峭最易下山的位置走一步。不断循环求梯度,就这样一步步地走下去,一直走到我们觉得已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了某一个局部的山势低处。
由此,从上面的解释可以看出,梯度下降不一定能够找到全局的最优解,有可能是一个局部的最优
解。当然,如果损失函数是凸函数,梯度下降法得到的解就一定是全局最优解。
核心思想归纳
  • 初始化参数,随机选取取值范围内的任意数;
  • 迭代操作
a)计算当前梯度;
b)修改新的变量;
c)计算朝最陡的下坡方向走一步;
d)判断是否需要终止,如否,返回a);
  • 得到全局最优解或者接近全局最优解。

4. 梯度下降法算法描述

5. 如何对梯度下降法进行调优

实际使用梯度下降法时,各项参数指标不能一步就达到理想状态,对梯度下降法调优主要体现在以下几个方面:
  • 算法迭代步长选择
在算法参数初始化时,有时根据经验将步长初始化为1。实际取值取决于数据样本。可以从大到小,多取一些值,分别运行算法看迭代效果,如果损失函数在变小,则取值有效。如果取值无效,说明要增大步长。但步长太大,有时会导致迭代速度过快,错过最优解。步长太小,迭代速度慢,算法运行时间长。
  • 参数的初始值选择
初始值不同,获得的最小值也有可能不同,梯度下降有可能得到的是局部最小值。如果损失函数是凸函数,则一定是最优解。由于有局部最优解的风险,需要多次用不同初始值运行算法,关键损失函数的最小值,选择损失函数最小化的初值。
  • 标准化处理
由于样本不同,特征取值范围也不同,导致迭代速度慢。为了减少特征取值的影响,可对特征数据标准化,使新期望为0,新方差为1,可节省算法运行时间。

6. 随机梯度和批量梯度区别

6.1. 批量梯度下降的求解思路

6.2. 随机梯度下降的求解思路

6.3. 小批量(Mini-Batch)梯度下降的求解思路

6.4. 在线梯度下降(Online GD)的求解思路

7. 各种梯度下降法性能比较

下表简单对比随机梯度下降(SGD)、批量梯度下降(BGD)、小批量梯度下降(Mini-batch
GD)、和Online GD的区别:

参考文献

深度学习500问

机器学习中的梯度下降法相关推荐

  1. [云炬python3玩转机器学习] 6-4 在线性回归模型中使用梯度下降法

    在线性回归模型中使用梯度下降法 In [1]: import numpy as np import matplotlib.pyplot as plt import datetime;print ('R ...

  2. Python机器学习:梯度下降法004实现线性回归中的梯度下降法

    直接上代码 import numpy as np import matplotlib.pyplot as plt 生成模拟数据 np.random.seed(666) x = 2 * np.rando ...

  3. 单变量线性回归中的梯度下降法求解代价函数的最小值

    1. 什么是代价函数 在线性回归中我们有一个像这样的训练集,m代表了训练样本的数量,比如 m = 47.而我们的假设函数, 也就是用来进行预测的函数,是这样的线性函数形式, 则代价函数可以表示为: 我 ...

  4. 机器学习:用梯度下降法实现线性回归

    之前在 机器学习算法数学基础之 -- 线性代数篇 中,总结过求解线性回归的两种方法: 最小二乘法 梯度下降法 这篇文章重点总结一下梯度下降法中的一些细节和需要注意的地方. 梯度下降法是什么 假设有一个 ...

  5. 机器学习:随机梯度下降法

    1.梯度下降 1)什么是梯度下降? 因为梯度下降是一种思想,没有严格的定义,所以用一个比喻来解释什么是梯度下降. 简单来说,梯度下降就是从山顶找一条最短的路走到山脚最低的地方.但是因为选择方向的原因, ...

  6. 机器学习中,梯度下降算法的问题引入

    来源 | 动画讲编程 今天讲解的内容是梯度下降算法. 梯度下降算法在机器学习中的应用十分广泛,该算法的最主要目的是通过迭代的方法找到目标函数的最小值,经常用来解决线性回归和逻辑回归等相关问题.本节课主 ...

  7. 机器学习知识点(五)梯度下降法Java实现

    梯度下降法,就是利用负梯度方向来决定每次迭代的新的搜索方向,使得每次迭代(步长)能使待优化的目标函数逐步减小.梯度下降法是2范数下的最速下降法,用来求解函数的最小值,无约束优化. 看数学定义都晦涩,网 ...

  8. 李宏毅机器学习课程3~~~梯度下降法

    梯度下降法描述 梯度下降法是为了找到最优的目标函数,寻找的过程就是沿着损失函数下降的方向来确定参数变化的方向.参数更新的过程就是一个不断迭代的过程,每次更新参数学到的函数都会使得误差损失越来越小,也就 ...

  9. 吴恩达深度学习 —— 2.9 逻辑回归中的梯度下降法

    这一节讨论怎么计算偏导数来实现逻辑回归的梯度下降法,它的核心关键点是其中有几个重要法公式用于实现逻辑回归的梯度下降法. 这里将使用导数流程图来计算梯度,必须承认,用导数流程图来计算逻辑回归的梯度下降有 ...

最新文章

  1. 目标检测回归损失函数简介:SmoothL1/IoU/GIoU/DIoU/CIoU Loss
  2. 2021年昆明师专附中高考成绩查询,昆明高中4大名校,2019高考成绩厉害了,快看看是哪些?...
  3. 当前最主流的商业模式,普通老板如何打造强大后端实现躺赚的秘诀!
  4. Scrapy使用问题整理(转载)
  5. windows符号服务器地址
  6. 【招聘(北京)】东方国信 工业互联网
  7. 201触摸ic应用电路_有源电力滤波器的设计原理及应用前景-安科瑞蒋超萍
  8. Linux安装nextcloud教程,WSL下安装nextcloud
  9. 别人教我学计算机的作文,我学会了电脑作文(通用3篇)
  10. 深度解析,AI如何让创新变得更简单
  11. office哪个版本最好用?都有哪些版本
  12. ubuntu屏幕截图工具
  13. c语言结构体数组怎么初始化,c语言结构体数组初始化
  14. Matlab Coder杂记
  15. vue form表单验证清除
  16. Git+Vscode+ToroiseGit+码云
  17. Java-超市购物小票案例-详细介绍
  18. 【项目源码】JSP超市积分管理系统源码下载
  19. 苯酚物理化学性质及用途
  20. css 背景效果_css透明度怎么设置?三种css图片透明度的设置方法

热门文章

  1. 第七课 环境变量PATH,cp、mv及查看文档cat/more/less/head/tail命令
  2. linux成长笔录——week_1
  3. 关于Unity四元数相乘先后顺序的问题
  4. Request To JavaBean(请求对象转换为JavaBean对象)
  5. LinkedBlockingQueue应用实例
  6. JDK5中的控制台输入
  7. 使用WinPcap和libpcap类库读写pcap文件(002)PCAP文件格式
  8. vue使用pwa_如何使用HTML,CSS和JavaScript从头开始构建PWA
  9. 如何一起破解图形化Python调试器
  10. (C++)1016 部分A+B 正整数