机器学习 day04(梯度下降算法,学习率,偏导数,执行过程示意图)

news2024/11/16 7:22:17

1. 梯度下降
在这里插入图片描述

  • 我们可以用一种更系统的方法,来找到一组w,b,使成本函数的值最小。这个方法叫梯度下降算法,它可用于最小化任何函数,不仅仅包括线性回归的成本函数,也包括两个以上参数的其他成本函数
  • 在线性回归中,w和b的初始值是多少并不重要,所以通常将他们的初始值设为0。
  • 成本函数并不总是弓形或吊床行的函数,这代表他可能有两个及以上的最小值
  • 梯度下降算法的步骤:
    a. 初始化w和b的值,通常设为0
    b. 继续更改w和b的值,来降低J函数的值
    c. 直到J函数到达,或接近J函数的最小值

2. 例如:深度学习模型的成本函数
在这里插入图片描述

  • 梯度下降算法形象化的步骤:
    a. 选取一组w和b作为初始位置
    b. 站在初始位置上,旋转360°,找到一个最高效下到这些山谷之一的底部的方向,并迈出一小步。从数学上来讲,这个方向是最陡下降方向
    c. 站在迈出一小步后的位置上,并重复上一步的过程
    d. 站在下一个位置上,重复上一步的过程

    e. 直到发现自己站在山谷的底部,而这个J函数的局部最小值就在这

3. 梯度下降算法
在这里插入图片描述

  • 梯度下降函数中有两个关键点:学习率和偏导数
  • α:学习率,通常是介于0和1之间的一个很小的正数,如0.001。它控制下坡时迈多大的步子
  • ∂J(w,b)/∂w 和 ∂J(w,b)/∂b:成本函数J对w求偏导,成本函数J对b求偏导。它控制下坡时朝哪个方向迈步子
  • 梯度下降算法的步骤:
    a. 更新w的值为,w - α × ∂J(w,b)/∂w
    b. 更新b的值为,b - α × ∂J(w,b)/∂b
    c. 重复更新w和b的值,直到w和b不随着继续更新而发生很大的变化,即偏导数趋于0,J函数趋于局部最小值,算法收敛
  • 左边的方法是,在程序中正确的,同时更新两个参数的方法,因为他更新完w的值后,没有立即覆盖w,而是继续用旧w来更新b的值
  • 右边的方法是,错误的,非同时更新两个参数的方法,因为他更新完w的值后,立即覆盖w,转而用新w来更新b的值
  • 建议使用左边的正确的,同时更新两个参数的方法

4. 梯度下降算法中的偏导数
在这里插入图片描述

  • 为了简化理解,我们将b设为0,J函数就变成一元函数,偏导数也就变成导数,我们可以用二维图来演示
  • 导数的作用是在确定w的初始值后,决定w的变化方向,即确保J函数的值是在往J函数的局部最小值移动
  • J函数上某点的导数为J函数在该点上的切线斜率。当w初始值在J函数最小值的右侧,切线斜率为正,该点导数为正,w减正数,w减小,即J函数值向局部最小值移动。当w初始值在J函数最小值的左侧,切线斜率为负,该点导数为负,w减负数为w加正数,w增加,即J函数值向局部最小值移动

5. 梯度下降算法中的学习率
在这里插入图片描述

  • 当学习率α过小时,梯度下降算法会执行的很慢,即要许多步才能到达J函数的局部最小值
  • 当学习率α过大时,梯度下降算法每一步都会迈的很大。在这个例子中,当下一步的w超过了,前一步w关于J函数局部最小值的对称点时,J函数就会持续增大,那么该算法就达不到J函数的局部最小值,即算法不会收敛,反而会发散。

6. 梯度下降算法的特性

  • 当我们更改w和b的初始值后,会得到一个不同的局部最小值,如图:
    在这里插入图片描述
  • 当w到达某点,使J函数取局部最小值时,导数为0,梯度下降算法会保持w的值,不会让他继续改变,如图:
    在这里插入图片描述
  • 即使学习率固定,梯度下降算法也能让J函数到达局部最小值,如图:
    在这里插入图片描述
  • 越靠近J函数的局部最小值,导数就越小,下一步迈的就越小,w值的变化就越小

7. 用于一个变量的线性回归的梯度下降算法
在这里插入图片描述

  • 注意:f w,b (xⁱ) = w × xⁱ + b 是一个变量的线性回归模型,且在每一步要同时更新w和b的值
  • 简化公式的过程,如图:
    在这里插入图片描述
  • 成本函数是非凸函数时,J函数会有多个局部最小值。例如深度学习模型的成本函数,如图:
    在这里插入图片描述
  • 成本函数是凸函数时,J函数具有碗型功能,且只有一个全局最小值,除此之外没有其他局部最小值。例如线性回归的平方误差成本函数,如图:
    在这里插入图片描述
    8. 批量梯度下降算法
    在这里插入图片描述
  • 当梯度下降的每一步(w和b每一次变化),我们都在查看所有的训练示例(i都是从1到训练集的最后一个数,m=47),该梯度下降称为批量梯度下降

9. 梯度下降算法的执行过程示意图
在这里插入图片描述

  • 左上角为一个变量的线性回归模型图,包含训练集(❌)
  • 右上角为成本函数(J函数)的等高线图
  • 下方为成本函数(J函数)的曲面图

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

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

相关文章

C#:在datagridview中每行添加图片,点击图片删除整行

今天要讲的是关于datagridview中的操作。 首先现在winform界面中拉取一个datagridview控件,如下图所示: 然后需要在控件中添加如下图所示的三列数据: 其中第一列的数据类型选择如下图所示的DataGridViewImageColumn,另外两列的数…

基于matlab使用 CSI-RS 的 NR 下行链路发射端波束细化

一、前言 此示例演示了使用 5G 工具箱中的信道状态信息参考信号 (CSI-RS) 的下行链路发射端波束细化过程。该示例展示了如何在散射环境中向不同方向传输多个CSI-RS资源,以及如何根据参考信号接收功率(RSRP)测量结果选择…

PHP调用api接口,电商平台商品详情API接口(封装可高并发)

PHP传递参数 1、通过GET方式接收调用api接口传递的参数。 2、使用switch语句,当GET接收到不同的值时,调用不同的函数。 3、分别创建one(),two(),three()三个函数用于返回api接口调用后返回的数据。 4、在浏览器打开…

反弹shell原理与实现

一、什么是反弹shell? 反弹shell(Reverse Shell)是一种常用于网络攻击中的技术,其目的是让攻击者通过远程控制程序获取被攻击计算机的权限。反弹shell技术通常是通过在受害者计算机上运行一个程序(称为“后门”&#…

CF55D-Beautiful numbers (数位dp)

l c m ( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ) 2520 lcm(1,2,3,4,5,6,7,8,9)2520 lcm(1,2,3,4,5,6,7,8,9)2520 若 x x x 能被它自己的所有非零位的数字整除,即能被它们的最小公倍数整除, x ≡ 0 ( m o d l c m ( { d i g i t [ i ] } ) ) x \equiv 0…

十大常见行业 BI 可视化应用

智能商业指的是利用互联网、物联网、自动化、人工智能等新一代信息技术,在一定程度上对市场判断、发展决策、业务复盘、业务预测等商业行为实现智能化、自动化,整个过程基本不需要人类参与。 很多企业部署了商业智能BI系统,这是一种包含了数…

Node 02-fs模块

fs 模块 fs 全称为 file system ,称之为 文件系统 ,是 Node.js 中的 内置模块 ,可以对计算机中的磁盘进行操作。 本章节会介绍如下几个操作: 文件写入文件读取文件移动与重命名文件删除文件夹操作查看资源状态 文件写入 文件写入…

ubuntu常用命令

查询进程: ps -ef 杀死进程 kill -9 killall -9 chrome killall chromedriver 杀死所有chrome ps ef 查看运行的任务 ps -ef | grep python top 查看运行任务详情 后台启动Python脚本 可以使用下面的命令来启动上面的脚本,让Python在后台运行。 nohup…

Matlab论文插图绘制模板第87期—模值赋色的三维箭头图

在之前的文章中,分享了Matlab三维箭头图的绘制模板: 进一步,如果我们想对每一个箭头赋上颜色,以更加直观地表示其模值的大小,该怎么操作呢? 那么,来看一下模值赋色的三维箭头图的绘制模板。 先…

设计模式 -- 多例模式

前言 月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂) 央是一片海洋,海乃百川,代表着一块海绵(吸纳万物) 泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出) 月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容 希望大家一起坚持这个过程,也同…

docker镜像制作: 构建UI镜像

前端构建docker镜像 事前准备 安装nodejs cd/usr/local/ wgethttps://npm.taobao.org/mirrors/node/v12.16.2/node-v12.16.2-linux-x64.tar.gz tar-zxvfnode-v12.16.2-linux-x64.tar.gz rm-rfnode-v12.16.2-linux-x64.tar.gz mvnode-v12.16.2-linux-x64node echoexportNODE_HO…

Matlab绘图案例,MATLAB画图大法,附详细代码

目录 1. 使用subplot创建多个子图 2. 绘制误差棒图 3. 绘制条形堆积图 4. 绘制堆积面积图 5. 绘制直方图并拟合曲线 6. 绘制等高线图 7. 绘制光滑的曲线 8. 绘制彩虹图 9. 绘制带有错误标记的散点图 10. 绘制水平堆积条形 11. 绘制饼图 12. 绘制极坐标图 13. 绘制…

怎样写好一本书

如果把“怎样写好一本书?”这个问题抛给ChatGPT,他的回答仍然像模像样。 虽然他回答的几点都没有错,但是,我个人认为,如果你想要写一本书并出版,那么首先应该考虑的是找一家出版社合作。毕竟,出…

关于HMC7044使用FXCO8晶振不能锁定的问题

查看FXCO8时钟输出波形: 查阅HMC7044手册,查看相关管教的电平要求: 可以看出共模要求有差异,不满足设计。 同时查看CVHD950的时钟输出电路。 可以看出共模1.6V,共模满足要求。不过这个幅度2.4V。也是满足设计要求的。 查看HMC7044关于输入电平标准(单端)的相关描…

HCIE-Cloud Computing LAB常见问题收集谱

第一题:FusionCompute 扩容CNA与对接共享存储 FusionCompute:关联存储资源失败 物理阵列里面太多没清理的了。然后去排查问题,存储地址也正确,管理接口也互联,IQN号也修改了,结果是启动器快满了 排查网…

记录机器学习时遇到的一些问题(纯新手

库 anaconda&spyder spyder运行报错ModuleNotFoundError: No module named ‘skleran’ 遂使用Anaconda Prompt 命令conda install sklearn 仍然报错,利用PYTHONPATH Manager增加路径(过程中搜索sklearn包地址) 仍然报错,发…

微信小程序如何判断刘海屏

发现问题 测试在测试项目过程中,发现IPhone13按钮显示不全,但是IPhone 14 pro 没问题。 正常情况 非正常情况 找到原因 小程序没有适配全部刘海屏 刘海屏: 指的是手机屏幕正上方由于追求极致边框而采用的一种手机解决方案。因形似刘海儿而得名。刘海…

【Java基础】消灭魔法值-常量枚举详述

🚩 本文已收录至专栏:JAVA基础 👍希望能对你有所帮助 一.引入 在开发中我们经常会遇到用一个值(诸如数字或字符串)表示一种状态的情况,例如: 用 1 表示男,用 0 表示女用 0 表示状态…

被裁员了,要求公司足额补缴全部公积金,一次补了二十多万!网友兴奋了,该怎么操作?...

被裁员后,能要求公司补缴公积金吗? 一位网友问: 被裁员了,要求公司把历史公积金全部足额缴纳,现在月薪2.3万,但公司每个月只给自己缴纳300元公积金,结果一次补了二十多万,一次性取出…

步进频雷达信号脉冲压缩仿真matlab

步进频雷达信号脉冲压缩仿真matlab 发射与回波信号模型仿真分析 发射与回波信号模型 步进频率信号发射得的是一串窄带的相参脉冲,每个脉冲的载频之间是均匀线性步进的,经过相参本振对目标回波信号进行混频、采样,再对同距离门的采样值做逆傅里…