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

news2024/12/23 13:54:21

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,变化非常微小甚至不再改变,即认为达到收敛
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】一文解决如何在终端查看 python解释器 的位置

【Linux】一文解决如何在终端查看 python解释器 的位置 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希望得到您的订阅…

【Liunx-后端开发软件安装】Liunx安装nginx

【Liunx-后端开发软件安装】Liunx安装nginx 使用安装包安装 一、简介 nginx&#xff0c;这个家伙可不是你厨房里的那位大厨&#xff0c;它可是互联网世界的“煎饼果子摊主”。想象一下&#xff0c;在熙熙攘攘的网络大街上&#xff0c;nginx挥舞着它的锅铲——哦不&#xff0c;是…

KVM安装-kvm彻底卸载-docker安装Webvirtmgr

KVM安装和使用 一、安装 检测硬件是否支持KVM需要硬件的支持,使用命令查看硬件是否支持KVM。如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的 egrep ‘(vmx|svm)’ /proc/cpuinfo关闭selinux将 /etc/sysconfig/selinux 中的 SELinux=enforcing 修改为 SELinux=d…

python知识点总结(三)

python知识点总结三 1、有一个文件file.txt大小约为10G&#xff0c;但是内存只有4G&#xff0c;如果在只修改get_lines 函数而其他代码保持不变的情况下&#xff0c;应该如何实现? 需要考虑的问题都有那些?2、交换2个变量的值3、回调函数4、Python-遍历列表时删除元素的正确做…

编曲学习:如何编写钢琴织体 Cubase12逻辑预置 需要弄明白的问题

钢琴织体是指演奏形式、方式,同一个和弦进行可以用很多种不同的演奏方法。常用织体有分解和弦,柱式和弦,琶音织体,混合织体。 在编写钢琴织体前,先定好歌曲的调。 Cubase小技巧:把钢琴轨道向上拖动打和弦轨道,就可以显示和弦!如果你有一些参考工程,不知道用了哪些和…

jenkins Pipeline接入mysql

背景&#xff1a; jenkin pipeline进化过程如下&#xff1a; Jenkins Pipeline 脚本优化实践&#xff1a;从繁琐到简洁 >>>>> Jenkins Pipeline脚本优化&#xff1a;为Kubernetes应用部署增加状态检测>>>>>> 使用Jenkins和单个模板部署多个K…

Vue+SpringBoot打造康复中心管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 普通用户模块2.2 护工模块2.3 管理员模块 三、系统展示四、核心代码4.1 查询康复护理4.2 新增康复训练4.3 查询房间4.4 查询来访4.5 新增用药 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的康复中…

电子科技大学链时代工作室招新题C语言部分---题号D

1. 题目 这道题大概的意思就是对一个整形数组的元素进行排序&#xff0c;然后按新的顺序打印原本的下标&#xff1b; 例如&#xff0c;在题目给出的Note部分&#xff0c;{a1, a2, a3, a4, a5}进行排序之后变为了{a2, a1, a4, a3, a5}&#xff0c;于是输出2 1 4 3 5。 排序的规则…

【JavaScript编程实操07】1.查找一个字符串中是否具有某个字符 2.完成数组去重

前言 1、查找一个字符串中是否具有某个字符 代码&#xff1a; 实现效果&#xff1a; 2、完成数组去重 第一种方法 代码&#xff1a; 实现效果&#xff1a; 第二种方法 代码&#xff1a; 实现效果&#xff1a; 总结 前言 本次主要是针对Javascript阶段的字符串和数组…

Python图像处理:3.七种图像分割方法

一、常见图像分割方法 (1)传统算法 阈值分割&#xff08;Thresholding&#xff09;&#xff1a;这是最简单也是应用最广泛的一种分割方法&#xff0c;通过选定一个阈值将图像转换为二值图像&#xff0c;从而分割出目标区域。这种方法适用于图像的前景和背景对比明显的情况。 …

链表中的倒数第k个结点 合并两个链表 分割链表 链表的回文结构

前言 &#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏: &#x1f354;&#x1f35f;&#x1f32f;C语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f349;本篇简介:>:分析力扣中有关链表的部分题目. 目录 前言一、链表中倒…

【冲击蓝桥篇】动态规划(下):你还在怕动态规划!?进来!答题模板+思路解析+真题实战

&#x1f389;&#x1f389;欢迎光临&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;特别推荐给大家我的最新专栏《数据结构与算法&#xff1a;初学者入门指南》&#x1f4d8;&am…

Java项目:60 ssm基于JSP的乡镇自来水收费系统+jsp

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 系统可以提供信息显示和相应服务&#xff0c; 其管理员管理水表&#xff0c;审核用户更换水表的请求&#xff0c;管理用户水费&#xff0c;包括抄表以…

运动想象 (MI) 迁移学习系列 (9) : 数据对齐(EA)

运动想象迁移学习系列:数据对齐&#xff08;EA&#xff09; 0. 引言1. 迁移学习算法流程2. 欧式对齐算法流程3. 与RA算法进行对比4. 实验结果对比5. 总结欢迎来稿 论文地址&#xff1a;https://ieeexplore.ieee.org/abstract/document/8701679 论文题目&#xff1a;Transfer Le…

【Spring Cloud】Sentinel限流

控制台下载https://github.com/alibaba/Sentinel/releases # 控制台启动 java -Dserver.port10888 -Dcsp.sentinel.dashboard.serverlocalhost:10888 -Dproject.namesentinel-dashboard -jar sentinel-dashboard.jar引入依赖 <dependency><groupId>com.alibaba.c…

hadoop分布式环境ssh设置免密登陆之后目标主机更换无法连接解决

在进行hadoop分布式环境搭建时&#xff08;三台机&#xff0c;master&#xff0c;slave1&#xff0c;slave2&#xff09;&#xff0c;后期slave2系统出现问题&#xff0c;更换新机后&#xff0c;master与slave2文件传输失败&#xff1a; 以为是秘钥过期的问题&#xff0c;更换…

微信小程序调用百度智能云API(菜品识别)

一、注册后生成应用列表创建应用 二、找到当前所需使用的api菜品识别文档 三、点链接看实例代码 这里需要使用到如下几个参数&#xff08;如下&#xff09;&#xff0c;其他的参数可以不管 client_id &#xff1a; 就是创建应用后的API Keyclient_secret&#xff1a; 就是创建…

连续八年在3·15发布新酿造年份国标酒,国台真实年份印记深入人心

对许多酱酒爱好者来说&#xff0c;每年的315已经成为与国台的年度约定日。 自2017年开始&#xff0c;国台都会在这个特殊的日子发布新酿造年份的国台国标酒&#xff0c;至今已连续8年。回首往届盛会依旧历历在目&#xff0c;这一天已然成为国台与所有国粉的约定日&#xff0c;…

【K8S】docker和K8S(kubernetes)理解?docker是什么?K8S架构、Master节点 Node节点 K8S架构图

docker和K8S理解 一、docker的问世虚拟机是什么&#xff1f;Docker的问世&#xff1f;docker优点及理解 二、Kubernetes-K8SK8S是什么&#xff1f;简单了解K8S架构Master节点Node节点K8S架构图 一、docker的问世 在LXC(Linux container)Linux容器虚拟技术出现之前&#xff0c;业…

Anaconda几个优势

目录 简介优势一、虚拟环境&#xff0c;方便配置版本二、版本清晰可见三、快速打开虚拟环境下的jupyter 简介 Anaconda是一个流行的开源Python和R编程语言的发行版&#xff0c;用于科学计算、数据科学和机器学习任务。它包含许多常用于这些领域的包和库&#xff0c;如NumPy、Sc…