机器学习|什么是梯度下降(小白向)|探寻最优解之路

文章目录

  • 前言
  • 一、什么是梯度下降?
  • 二、梯度下降法一般步骤
    • 1.确定一个小目标——预测函数
    • 2.找到差距——代价函数
    • 3.明确搜索方向——梯度计算
    • 4.一步要走多远?——学习率
  • 三、梯度下降的分类
      • 批量梯度下降(Batch Gradient Descent)
      • 随机梯度下降(SGD)
      • 小批量梯度下降(Mini-batch Gradient Descent)
      • 实践建议
  • 三、总结
  • 四、后话


前言

我们身处人工智能的时代,各种算法层出不穷,令我们眼花缭乱,望而却步,那么有没有一种核心的,最基础的算法,能够作为一把钥匙帮助我们打开机器学习领域的大门呢,那就是“梯度下降法”啦,那么,什么是梯度?为什么要下降?怎么下降呢?


一、什么是梯度下降?

想象一下,你在一座大山的山顶上,你的目标是找到下山最快的路径。梯度下降算法的工作方式与此类似,只不过是在数学空间中寻找函数最小值的过程。它是一种迭代优化算法,用于最小化或最大化一个函数(在机器学习中通常是损失函数),通过沿着函数梯度的反方向移动来逐步调整参数。
OK记住这个下山的例子,我们要开始分析啦!

二、梯度下降法一般步骤

1.确定一个小目标——预测函数

机器学习的一个常见任务是:通过学习算法发现一堆数据背后的规律,然后不断改进模型,使得这个模型能够很好地做出预测。


通俗示例:
数据如下:已知房价由房子的面积,朝向,距离市中心地距离这三个因变量决定。现在有500条数据,每条数据包含一个房子的面积,朝向,距离市中心和房价。例如:房子1:面积120平,朝向正南,距离市中心3000米,房价:200万。
你需要做的:是找到一个目标函数很好的拟合这些数据,以便于我给你一条新的数据,它包括三个因变量,然后带入你的函数,预测出房价。
OK这就是一个常见任务。


现有一个坐标系:横坐标x:面积,纵坐标y:房价。有一堆样本点,你需要找到一个函数拟合这些点,是y=wx还是y=wx²? 直觉告诉你这是一条直线,那么好,现在我们从一元一次函数开始吧!这个问题中 目标函数或者说预测函数就是:y=wx。

在这里插入图片描述

2.找到差距——代价函数

问题来了,怎么判断拟合的程度好不好呢?我们可以用样本点偏离目标函数的程度表示,偏离越大,拟合越不好,反之越好。
最常用的方法是均方误差,顾名思义:就是误差平方和的平均值。
我们现在算一下平方误差,现有一个点p1(x1,y1),要算这个点的误差e1,那么如下图:

这个误差函数也被称为代价函数(cost function),为了偏离更小,也就是拟合程度更好,我们当然希望找到一个w,使得e最小,也就是求最小值点
在这里插入图片描述


这样,我们成功将样本点的拟合过程映射到了一个函数图像上:
在这里插入图片描述

3.明确搜索方向——梯度计算

梯度(gradient)就是导数,在二次函数中也就是斜率。
我们随便选择一个初始点,直觉告诉我们,往下降的方向走准没错!
在这里插入图片描述

4.一步要走多远?——学习率

往下降的方向走,方向对了,但是步子迈多大?
给出一个式子:
新w=旧w - 斜率*学习率
步子迈太大——学习率太高,例如=0.2,可能会出现以下效果
在这里插入图片描述

恰当的学习率(例如0.01)是受推崇的,效果也不错,很快找到了最低点

在这里插入图片描述


三、梯度下降的分类

梯度下降有几种变体,主要区别在于计算梯度时使用数据的不同方式:

批量梯度下降:使用所有训练数据计算梯度,是最准确但最慢的方法。
随机梯度下降(SGD):每次只使用一个训练样本来更新参数,速度快但波动较大。
小批量梯度下降:折中方案,每次使用一小批样本计算梯度,既保证了速度又减少了波动。


下面是文字解释
在机器学习中,梯度下降算法是调整模型参数以最小化损失函数的重要方法。根据如何选择数据来计算梯度,梯度下降有三种主要形式:批量梯度下降(Batch Gradient Descent)、随机梯度下降(Stochastic Gradient Descent,简称SGD)以及小批量梯度下降(Mini-batch Gradient Descent)。下面,我们将逐一探讨这三种方法的特点和适用场景。

批量梯度下降(Batch Gradient Descent)

定义:批量梯度下降使用整个训练数据集来计算梯度。这意味着,在每一次迭代中,算法都会基于所有训练样本的平均梯度来更新参数。

优点

  • 准确性:由于考虑了所有训练数据,梯度的估计更为准确,使得每次更新都朝着全局最小值的方向前进。

缺点

  • 计算成本高:需要在每个迭代步骤中处理整个数据集,这在大数据集上可能导致非常慢的收敛速度。
  • 内存需求:必须将所有训练数据保留在内存中,这对于大规模数据集来说可能是个问题。

随机梯度下降(SGD)

定义:随机梯度下降在每次迭代时只使用单个训练样本来计算梯度并更新参数。这意味着更新过程是基于随机选择的样本进行的。

优点

  • 计算效率:由于每次迭代只需要处理一个样本,SGD在大型数据集上的计算速度远快于批量梯度下降。
  • 避免局部最小值:随机性可以帮助模型跳出局部最小值,更有可能找到全局最小值。

缺点

  • 波动性:由于每次更新都依赖于单个样本,更新过程可能非常不稳定,导致损失函数的值在迭代过程中大幅波动。

小批量梯度下降(Mini-batch Gradient Descent)

定义:小批量梯度下降是批量梯度下降和随机梯度下降的一种折中方案。它在每次迭代中使用一个小批量的样本集合来计算梯度。

优点

  • 速度与稳定性:相比批量梯度下降,小批量梯度下降的计算速度更快,同时比随机梯度下降更稳定,因为它减少了噪声的影响。
  • 硬件效率:现代GPU和CPU设计往往对处理小批量数据特别有效,这使得小批量梯度下降在实践中成为首选。

缺点

  • 设置难度:需要选择合适的小批量大小,太小会导致波动性,太大则会降低算法的速度优势。

实践建议

在实际应用中,小批量梯度下降因其综合了速度和稳定性的优势而被广泛采用。批量大小的选择通常是一个经验参数,需要根据具体问题和可用资源来决定。对于大多数情况,小批量梯度下降提供了梯度下降算法的最佳平衡点,是深度学习和机器学习项目中的标准选择。

三、总结

梯度下降的一般过程:

  1. 定义代价函数(const function)
  2. 选择起始点(starting point)
  3. 计算梯度(gradient)
  4. 按照学习率前进(learning rate)
    重复3 4 步骤,直至函数收敛。

四、后话

以上只是一个简单例子,实际的目标函数可能相当复杂,可能几十个因变量决定一个函数值,那对应的代价函数当然也会很复杂了。
你的代价函数可能是七拐八拐,可能是一个复杂的三维曲面,可能是一个我们无法想象的几十维度的函数图像。
在这里插入图片描述

在这里插入图片描述

这也就是“为什么不用初中知识 直接求这个代价函数最小值点呢,为什么还要一步一步梯度下降呢”这个问题的答案啦!因为给你一个10元函数,你怎么求呢 对吧。而无论多少维度,都是可以梯度下降去求的!


梯度下降算法是机器学习中不可或缺的一部分,它帮助我们在高维空间中找到最优解。无论是调整神经网络的权重,还是优化线性回归模型,梯度下降都是实现这些任务的关键工具。希望本文能帮助你对这一概念有了更深入的理解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/871292.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2007-2022年上市公司资源节约数据

2007-2022年上市公司资源节约数据 1、时间:2007-2022年 2、来源:上市公司年报、社会责任报告、上市公司网站信息 3、指标:水资源节约、电力节约、原煤节约、天然气节约、汽油节约、柴油节约、集中供热节约、折算成统一标准煤共计节约 4、…

flume--数据从kafka到hdfs发生错误

解决: #1.将flume自带的依赖删除 mv /opt/installs/flume1.9/lib/guava-11.0.2.jar /opt/installs/flume1.9/lib/guava-11.0.2.jar.bak #2.将hadoop的依赖发送到flume下 cp /opt/installs/hadoop3.1.4/share/hadoop/common/lib/guava-27.0-jre.jar /opt/installs/f…

有哪些同声传译软件?精选5款实用工具

在浪漫之都巴黎,每一步都踏着历史与艺术的韵律。从埃菲尔铁塔下仰望的震撼,到塞纳河畔悠闲的咖啡时光,打卡巴黎地标已不再满足于传统方式。 如今,#打卡巴黎地标的方式nextlevel了#,科技与文化的碰撞开启了全新的体验篇…

『基础』线性代数-1行列式

行列式是什么-运算规则 排列:不同的 n 元排列共有 n! 个 逆序:小数排在大数后面,叫逆序;一个排列中逆序的总和叫做这个排列的逆序数,记为 τ ( j 1 , . . . , j n ) \tau(j_1,...,j_n) τ(j1​,...,jn​) 逆序数的计…

IP SSL证书的未来趋势:适应不断变化的安全挑战

随着网络攻击手段的不断进化和用户对隐私保护意识的增强,IP SSL证书作为保障网络安全的关键组件之一,也在不断地发展和完善。本文将探讨IP SSL证书的未来趋势,以及如何适应这些不断变化的安全挑战。 当前状况与挑战 网络安全意识提升&#…

LORA通信详解

LORA(Long Range Radio)是一种低功耗广域网(LPWAN)技术,专门设计用于物联网(IoT)设备的远距离通信。其长距离传输和低功耗特性使其在智能城市、环境监测、农业等领域中得到了广泛应用。 一、LOR…

音频分割软件有什么?最方便的音频分割软件分享给你

一段长音频就像是一本厚重的百科全书,而音频剪辑师的任务,就是要将这本书拆分成数个章节,每章都有其独立的主题和内容,这非常考验剪辑师们的音频分割技巧。 幸运的是,随着技术的发展,市面上出现了许多优秀…

每日一题——贪心算法

860. 柠檬水找零 - 力扣(LeetCode) 这道题目乍一看可能没有什么头绪,但是当你仔细想想就会明白一个道理,那就是,《论电子支付的重要性》哈哈哈哈,言归正传,其实很简单无非就是找钱,…

5个值得关注的AI模型比较平台

AI 正在以极快的速度发展,每周都有新的 AI 模型进入市场。就在一周前,Mixtral AI 发布了一款新模型 Mixtral 8x22B Instruct。它在 MMLU 等多个基准测试中在开源模型中保持了整整 26 小时的性能领先地位。紧接着,LLaMa 3 进入现场&#xff0c…

如何用Python构建高校爬虫与k-means算法实现专业评分可视化分析

🍊作者:计算机毕设匠心工作室 🍊简介:毕业后就一直专业从事计算机软件程序开发,至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长:按照需求定制化开发项目…

风清扬/基于Java语言的高能耗企业 水-电-气-热-油-空压机等数据采集系统-能源管理系统-在线监测系统

基于Java语言的高能耗企业 水-电-气-热-油-空压机等数据采集系统-能源管理系统-在线监测系统 介绍适用场景软件架构软件功能数字大屏安装教程参与贡献特技 基于Java语言的高能耗企业 水-电-气-热-油-空压机等数据采集系统-能源管理系统-在线监测系统 介绍 能源管理系统能源管…

python实现自动化生成pdf报告

easypdf使用手册 1. 项目介绍1.1 关于1.2 easypdf 有什么优势1.2 easypdf 可以用来做什么1.3 项目框架1.4 项目教程视频 2. 安装项目环境2.1 安装Python32.2在Windows上安装Python32.3 在Mac上安装Python32.4 在Linux上安装Python32.5 在Windows上安装Pycharm2.6 在Mac上安装Py…

声明式事务及编程式事务

目录 1.事务说明 2.事务及数据库的隔离级别 3.事务的传播行为 4.声明是事务 5.编程式事务 6.避免长事务的方式 1.事务说明 数据库的事务是一组操作的集合,这些操作要么全部成功,要么全部失败。用于确保事务的一致性及完整性,事务的主要…

PHP导出生成PDF文件开源组件:mPDF使用详情

最近在使用php要实现一个把旅游线路导出成pdf文件下载,在全网搜索了一遍有几个常用的开源组件,在PHP中生成PDF文件,比如FPDF、TCPDF、mPDF等。在对比了一圈后就 mPDF开源地址: https://github.com/mpdf/mpdf mPDF版本说明 PHP…

探索地理空间分析的新世界:Geopandas的魔力

文章目录 探索地理空间分析的新世界:Geopandas的魔力背景:为何选择Geopandas?这个库是什么?如何安装这个库?五个简单的库函数使用方法场景应用:Geopandas在实际工作中的应用常见bug及解决方案总结 探索地理…

鲲鹏服务器安装Kafka

由于项目需求,需要在鲲鹏云主机上安装Kafka,并且要求安装的版本为2.3.X。下面主要从以下几个步骤说明如何安装: 1、下载kafka的安装文件 2、上传到服务器 3、修改配置 4、启动 5、使用工具测试 服务器信息 CPU信息 [rootecs02 ~]# lscpu A…

集团数字化转型方案(六)

集团数字化转型方案旨在通过引入前沿技术,如人工智能(AI)、大数据分析、云计算和物联网(IoT),全面提升业务运营效率和市场竞争力。该方案首先实现业务流程的自动化,减少人工干预,通过…

第1章-05-通过浏览器控制台安装JQuery.js库

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年CSDN全站百大博主。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于专栏:Web爬虫入门与实战精讲。 🎉欢迎 👍点赞✍评论⭐收…

自抗扰控制ADRC原理解析及案例应用

1. ADRC基本原理 1.1 ADRC的基本概念 自抗扰控制(Active Disturbance Rejection Control,ADRC)是一种先进的控制策略,由韩京清研究员于1998年提出。ADRC的核心思想是将系统内部和外部的不确定性因素视为总扰动,并通过…

网络编程:OSI协议,TCP/IP协议,IP地址,UDP编程

目录 国际网络通信协议标准: 1.OSI协议: 2.TCP/IP协议模型: 应用层 : 传输层: 网络层: IPV4协议 IP地址 IP地址的划分: 公有地址 私有地址 MA…