彻底学会系列:一、机器学习之梯度下降(1)

1 梯度下降概念

1.1 概念

梯度下降是一种优化算法,用于最小化一个函数的值,特别是用于训练机器学习模型中的参数,其基本思想是通过不断迭代调整参数的值,使得函数值沿着梯度的反方向逐渐减小,直至达到局部或全局最小值

1.2 理解

在实际业务中,一般多个特征对应一个目标结果值。即对一个多维复杂的方程组的每一维的特征权重进行计算,以求出这个方程局部或全局最小值。如果使用正规方程的进计算,计算量太大,时间及财力消耗巨大。采用梯度下降方法,选定一个经验初始值,一步步沿着梯度的反方向进行计算,使方程解尽快达到收敛,并得出最优解。

1.3 分类

  • 批量梯度下降(Batch Gradient Descent)
  • 随机梯度下降(Stochastic Gradient Descent)
  • 小批量梯度下降(Mini-batch Gradient Descent)

1.4 应用

梯度下降法是机器学习和优化领域中最常用的优化算法之一,被广泛应用于训练神经网络、线性回归、逻辑回归等各种机器学习模型中

2 梯度下降公式

2.1 表达公式

θ n + 1 = θ n − α ∗ g r a d i a n t \theta^{n+1} = \theta^n - \alpha * gradiant θn+1=θnαgradiant

其中 α \alpha α表示学习率, g r a d i e n t gradient gradient表示梯度

θ n + 1 = θ n − α ∗ ∂ J ( θ ) ∂ θ \theta^{n+1} = \theta^n - \alpha * \frac{\partial J (\theta )}{\partial \theta} θn+1=θnαθJ(θ)

另一种写法

2.2 图示

在这里插入图片描述

2.3 每一维求解,一起找到 J ( θ ) J(\theta) J(θ)最小值

θ 0 n + 1 = θ 0 n − α ∗ ∂ J ( θ ) ∂ θ 0 \theta_0^{n+1} = \theta_0^n - \alpha * \frac{\partial J (\theta )}{\partial \theta_0} θ0n+1=θ0nαθ0J(θ)
θ 1 n + 1 = θ 1 n − α ∗ ∂ J ( θ ) ∂ θ 1 \theta_1^{n+1} = \theta_1^n - \alpha * \frac{\partial J (\theta )}{\partial \theta_1} θ1n+1=θ1nαθ1J(θ)
θ m n + 1 = θ m n − α ∗ ∂ J ( θ ) ∂ θ m \theta_m^{n+1} = \theta_m^n - \alpha * \frac{\partial J (\theta )}{\partial \theta_m} θmn+1=θmnαθmJ(θ)

在这里插入图片描述

3 梯度下降学习率

3.1 概念

梯度下降算法中的学习率learning rate 是一个非常重要的超参数,它控制了每次参数更新的步长大小。学习率决定了在梯度下降过程中参数更新的速度和稳定性

3.2 理解

为得到局部或全局最小函数值,特征权重按梯度反方向逐渐减小,这个减去的值,就叫作学习率或步长

3.3 调整策略

  • 固定学习率: 将学习率设置为一个固定的常数,例如0.01或0.001。这是最简单的学习率调整策略,但可能不够灵活,无法适应不同问题和数据的特性。

  • 学习率衰减(Learning Rate Decay): 在训练过程中逐渐减小学习率,以使模型在接近最优解时更加稳定。常见的衰减策略包括指数衰减、分段衰减等。

  • 自适应学习率(Adaptive Learning Rate): 根据参数更新的情况动态地调整学习率。例如,AdaGrad、RMSProp、Adam等优化算法会根据梯度的历史信息来自适应地调整学习率,以更有效地更新参数。

  • 学习率搜索(Learning Rate Search): 在训练过程中动态地搜索最优的学习率。例如,可以使用学习率范围测试(Learning Rate Range Test)等方法来估计合适的学习率范围。

3.4 应用

  • 学习率设置得太小,参数更新的步长就会很小,导致收敛速度缓慢,需要更多的迭代次数才能收敛到最优解,或者在达到最优解之前就提前停止。

  • 学习率设置得太大,参数更新的步长就会很大,可能导致算法无法收敛,甚至发生震荡或发散。

    使用 η \eta η 表示学习率,下图3种学习率情况
    在这里插入图片描述

3.5 设置学习率

学习率的是一个经验,把它设置成一个比较小的正整数,0.1、0.01、0.001、0.0001,just make
在这里插入图片描述

4 梯度下降实验步骤

  1. 随机设置最优解 θ \theta θ
  2. 随机生成一组数值 w 0 、 w 1 、 w 2 、 w n w_0、w_1、w_2、w_n w0w1w2wn, 期望 为 0 方差 为 1 的正太分布数据。 、
  3. 求梯度 g ,梯度代表曲线某点上的切线的斜率,沿着切线往下就相当于沿着坡度最陡峭的方向下降
  4. if g < 0, 变大,if g > 0, 变小
  5. 判断是否收敛 convergence,如果收敛跳出迭代,如果没有达到收敛,回第 3 步,继续迭代3~4步

收敛的判断标准是: 随着迭代进行损失函数Loss,变化非常微小甚至不再改变,即认为达到收敛
在这里插入图片描述

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

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

相关文章

如何在webapp中手动部署

前言&#xff1a;这个有不知道怎么下载Tomcat的可以看我这篇博客的前面&#xff0c;有相关链接&#xff0c;下载好后我那边也有如何运行成功的 在idea中配置tomcat服务器&#xff0c;部署一个项目-CSDN博客 接下来进入这篇博客的正题&#xff01;怎么手动部署 先找到我们下载…

java.lang.NoSuchMethodException异常解决

标题 java.lang.NoSuchMethodException异常的正确解决方法摘要&#x1f680; 异常介绍&#x1f9d0; 异常原因分析&#x1f6e0; 解决方法核对方法名称和参数使用正确的方法签名调整方法访问权限 &#x1f4dd; 解决步骤详解&#x1f5a5; 代码案例演示❓ QA部分Q: 如何区分jav…

Linux环境开发工具之yum

前言 前面我们已经对基本的指令和权限进行了介绍&#xff0c;本期开始我们将介绍常用的开发工具。例如&#xff1a;软件包管理器yum。 本期内容介绍 Linux上安装软件的方式 什么是yum yum的相关操作 yum的本地配置和yum源 一、Linux上安装软件的方式 在介绍Linux上如何安装一…

uboot的移植——移植uboot官方的uboot到x210开发板(2)

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 参考内容 1、uboot的移植——移植uboot官方的uboot到x210开发板&#xff08;1&#xff09; 2、uboot启动流程——C阶段的start_armboot函数-CSDN博客 3、以官方uboot移植uboot(SD卡驱动移植)-CSDN博…

Linux 块设备驱动

Linux 三大驱动分别是&#xff1a;字符设备驱动、块设备驱动、网络设备驱动。 块设备是针对存储设备的&#xff0c;比如 SD 卡、EMMC、NAND Flash、Nor Flash、SPI Flash、机械硬盘、固态硬盘等。因此块设备驱动其实就是这些存储设备驱动&#xff0c;块设备驱动相比字符设备驱…

【洞察】区块链、web3、元宇宙等技术共同催生出了什么样的商业未来?

下文为中国信息通信研究院云计算与大数据研究所所长何宝宏为思二勋所著的《分布式商业生态战略&#xff1a;数字商业新逻辑与企业数字化转型新策略》一书所作的推荐序。 近两年来&#xff0c;区块链已从鲜为人知发展到尽人皆知且众说纷纭&#xff0c;从产业初期的静默发展到产…

若你有才能,最好能遇上识才之人,高俅发迹的故事很好诠释了千里马与伯乐的关系

若你有才能&#xff0c;最好能遇上识才之人&#xff0c;高俅发迹的故事很好诠释了千里马与伯乐的关系 其实&#xff0c;“千里马”和“伯乐”都是中国古代传说里的角色。伯乐是古代一个善于相马&#xff08;识别马的好坏&#xff09;的人&#xff0c;而“千里马”则是指一匹能跑…

2、FreeRTOS之队列管理

xQueueReceive() 用于从队列中接收 ( 读取&#xff09;数据单元。接收到的单元同时会从队列 中删除。 xQueuePeek() 也是从从队列中接收数据单元&#xff0c;不同的是并不从队列中删出接收到 的单元。 uxQueueMessagesWaiting()用于查询队列中当前有效数据单元个数。 写队列任…

简介:项目管理九大知识五大过程

前言 项目管理&#xff08;Project Management,PM/Management by Projects,MBP&#xff09; 在有限的资源约束下&#xff0c;运用系统的观点、方法和理论&#xff0c;对项目涉及的全部工作进行有效地管理。即从项目的投资决策开始到项目结束的全过程进行计划、组织、指挥、协调…

【首次抽奖】16G、32G免费送!云服务器选购推荐 京东云 阿里云 腾讯云对比 幻兽帕鲁 雾锁王国 省钱学生党

好消息&#xff1a;抽奖活动开启&#xff01;时间&#xff1a;3月17日——3月24日 最高奖品&#xff1a;16G 6个月&#xff1b;32G 3个月 抽奖规则&#xff1a;B站点赞评论关注即可参与抽奖&#xff0c;3.24日公布获奖名单。 抽奖地址&#xff1a; 【首次抽奖】16G、32G免费…

TTS 擂台: 文本转语音模型的自由搏击场

对文本转语音 (text-to-speech, TTS) 模型的质量进行自动度量非常困难。虽然评估声音的自然度和语调变化对人类来说是一项微不足道的任务&#xff0c;但对人工智能来说要困难得多。为了推进这一领域的发展&#xff0c;我们很高兴推出 TTS 擂台。其灵感来自于LMSys为 LLM 提供的…

检索增强生成(RAG)应用的构建:LangChain与LlamaIndex的比较与选择

对于我要做RAG应用&#xff0c;我应该使用两者中的哪一个。或者说还是都使用&#xff1f; 在人工智能领域&#xff0c;检索增强生成&#xff08;RAG&#xff09;应用正变得越来越受欢迎&#xff0c;因为它们能够结合大型语言模型&#xff08;LLMs&#xff09;的自然语言处理能力…

不允许你不知道的Python私有属性和私有方法

​ 1.为什么要使用私有属性和私有方法 嘿&#xff0c;各位Python爱好者们&#xff0c;你们有没有遇到过这样的情况&#xff1a;你正在编写一个类&#xff0c;里面有一些属性或方法&#xff0c;你并不想让它们被外部直接访问或修改&#xff0c;但又需要某种方式来控制它们的访问…

【C/C++】C语言开发者必读:迈向C++的高效编程之旅

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方…

VUE3项目学习系列--Axios二次封装(五)

Axios中文文档 | Axios中文网 (axios-http.cn) Axios 是一个基于 promise 网络请求库&#xff0c;作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequ…

【回归预测】基于SSA-BP(麻雀搜索算法优化BP神经网络)的回归预测 多输入单输出【Matlab代码#69】

文章目录 【可更换其他算法&#xff0c;获取资源请见文章第6节&#xff1a;资源获取】1. BP神经网络2. 麻雀搜索算法3. SSA-BP神经网络模型的构建4. 部分代码展示5. 仿真结果展示 【可更换其他算法&#xff0c;获取资源请见文章第6节&#xff1a;资源获取】 1. BP神经网络 BP&…

新手向-从VNCTF2024的一道题学习QEMU Escape

[F] 说在前面 本文的草稿是边打边学边写出来的&#xff0c;文章思路会与一个“刚打完用户态 pwn 题就去打 QEMU Escape ”的人的思路相似&#xff0c;在分析结束以后我又在部分比较模糊的地方加入了一些补充&#xff0c;因此阅读起来可能会相对轻松&#xff08;当然也不排除这是…

python之前端css样式(一)

css ID选择器 #c1{color:red;#边框为红色border:1px solid red; } <div id"c2">中国移动</div> 类选择器 .xx{color:blue; } <div class"xx">中国联通</div> 标签选择器 li{color: pink; } <ul><li>北京</li…

STM32输入捕获模式测频率

STM32频率的测量&#xff1a;高频适合使用的方法是测频法&#xff0c;低频适合使用的是测周法&#xff0c;&#xff08;其中使用测频法测量频率比较稳定&#xff0c;使用测周法测量频率的方式没有这么稳定&#xff0c;因为测周法只会通过一次的测量就能得出结果所以测试出来的频…

任务管理器进程结束错了,电脑显示白屏该怎么办

电脑就是一个全白&#xff0c;吓人的一批&#xff0c;毕竟以前出过cmd运行出错&#xff0c;然后黑屏&#xff0c;最后只能重装系统。这里出现白屏是还好的&#xff0c;切换了另外的用户&#xff0c;发现电脑上原来的文件还在&#xff0c;所有按下面的方法就解决了。 1.打开任务…