深度学习_5_模型拟合_梯度下降原理

news2024/11/23 3:17:19

需求:

在这里插入图片描述

想要找到一条直线,能更好的拟合这一些点

在这里插入图片描述
如何确定上述直线就是最优解呢?

在这里插入图片描述
由计算机算出所有点与我们拟合直线的误差,常见的是均方误差

例如:P1与直线之间的误差为e1

在这里插入图片描述
将P1坐标带入直线并求误差得:

在这里插入图片描述
推广到所有点:

在这里插入图片描述
整合:

在这里插入图片描述

由于xi, yi都为已知点,那么它们就是常数

化简:

在这里插入图片描述
这个误差函数就称为代价函数,其中a, b, c为常数,w为直线得斜率

目标:

找到一个斜率w能使这条直线能更好得拟合上述所有点,反应出来的实质就是e最小

简而言之就是找到一个最优解w0使e最小

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对于最优解w0,当w > w0时w位置所对应导数(也称斜率或梯度)大于零,w < w0时导数小于零

所以为了更好的迭代出最优解,得出以下迭代公式:

在这里插入图片描述
等高线大致可以这样理解:

在这里插入图片描述
学习率过大过小都不行,太大了下降过快,太小了太慢

为什么不直接用 w = -b/2*a求解?

在这里插入图片描述
要拟合这些点,直线就得是y = k * x + b,这可有两个变量

按照上述理论求代价函数为了防止与常数向量误差,我用x = k, y = b

最后得到:

在这里插入图片描述
其中a,b,c,d,e,f均为常数

那么此方程就一个三维的了,x = -b/2a也不顶用了

求解过程:

使用梯度下降优化 k 和 b 的基本步骤:

1.初始化 k 和 b 的值。

2.定义损失函数,常见的选择是均方误差(Mean Squared Error)损失函数。
它可以表示为 loss = (1/N) * sum( (y - (kx + b))^2 ),其中 N 是点的数量,y 是真实的 y 值,x 是对应的 x 值。

3.计算损失函数关于 k 和 b 的梯度。这可以通过计算损失函数对 k 和 b 的偏导数来实现。

4.使用梯度下降算法更新 k 和 b。梯度下降的更新规则为 k = k - learning_rate * gradient_k,b = b - learning_rate * gradient_b,其中 learning_rate 是学习率,
gradient_k 和 gradient_b 是损失函数关于 k 和 b 的梯度。

重复步骤 3 和 4,直到达到停止条件(例如达到一定的迭代次数或损失函数的变化小于某个阈值)。

计算机会不断得通过这个梯度下降的过程找到最优解x, y,这也就是为什么学习次数达到一定量构建出来的模型也更精确

疑惑:

1、为什么损失函数最小对应的损失函数对k的偏导与损失函数对应b的偏导值趋近于零?

当损失函数对模型参数的偏导数趋近于零时,意味着在该参数值附近,损失函数的变化非常小,再进行参数更新可能不会有明显的改进。这时,我们可以认为模型已经接近局部最优解,损失函数的值也趋近于最小值。

具体来说,对于线性回归模型中的参数 k 和 b,损失函数对 k 的偏导数和对 b
的偏导数的趋近于零表示在当前参数值附近,沿着每个参数的变化方向,损失函数的变化非常小。这可以解释为损失函数对参数的梯度几乎为零,即在该点附近的斜率几乎为零,导致参数不会有太大的变化。

当参数的梯度趋近于零时,梯度下降算法会收敛,即停止参数更新,认为找到了局部最优解或者接近最优解。这是梯度下降算法的终止条件之一。但需要注意的是,梯度下降可能会停在局部最优解而非全局最优解,因此在实际应用中,可以通过调节学习率等参数来控制梯度下降的迭代过程,以更好地找到最优解。

2、什么是局部最优解和全局最优解?

在这里插入图片描述
这也正是为什么利用机器学习产生的模型会产生大的误差

3、怎么能确保这个最小值e是全局最小而不是局部最小

为了确保找到的最小值是全局最小而不是局部最小,我们可以采用以下方法:
1、使用随机初始化参数的方法。通过多次运行算法并随机初始化参数,可以增加找到全局最小的概率。
2、调整学习率。如果学习率过大,可能会导致算法在最小值附近震荡而无法收敛到全局最小;如果学习率过小,则算法可能会陷入局部最小。因此,需要适当调整学习率的大小。
3、使用动量法或自适应学习率法等优化算法。这些算法可以在梯度变化缓慢时加速收敛,而在梯度变化剧烈时减小更新幅度,从而避免陷入局部最小。
4、添加正则化项。正则化项可以限制模型的复杂度,防止模型过度拟合训练数据,从而提高模型的泛化能力。同时,正则化项也可以使损失函数更加平滑,减少陷入局部最小的可能性。

学习渠道:梯度下降 & Chatgdp

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

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

相关文章

买充电桩你必须要知道三件事

分享一套开源充电桩云平台&#xff08;v2.5.1&#xff09;-- 支持二轮(电动自行车)、四轮(电动汽车) 中国电动汽车充电基础设施促进联盟的信息部主任&#xff0c;仝宗旗&#xff0c;在2022年接受了《中国汽车报》采访的时候&#xff0c;提到过一个数据。 电动车主在小区成功安…

计算机考研自命题(5)

1、C语言–求和 1、展开式求和。输入一个实数x&#xff0c;计算并输出下式的和&#xff0c;直到最后一项的绝对值小于0.00001.计算结果保留2位小数&#xff0c;试编程。 S x x/2&#xff01; x/3&#xff01; … /* 算法思想&#xff1a;定义一个求阶乘的函数fact(), 头文件调…

未能为 SSL/TLS 安全通道建立信任关系

在 Windows早期版本&#xff08;Windows server 2008&#xff09;上运行web请求相关代码&#xff0c;提示错误&#xff1a;未能为 SSL/TLS 安全通道建立信任关系。 打开IE直接访问相关网址&#xff0c;按照提示信任网站&#xff0c;安装证书&#xff1a; 选择&#xff1a;将所有…

【IO】JavaIO流:字节流、字符流、缓冲流、转换流、序列化流等

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ IO流 Java IO1. 认识IO2. FileOutputStream(写…

基于springboot+vue网吧管理系统52

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…

FFMPEG之example编译

FFMPEG源码下载:Download FFmpeg 编译需配置的库: sudo apt-get install yasm sudo apt-get install libsdl1.2-dev sudo apt-get install libsdl2-dev 编译流程: ./configure --disable-x86asm --prefix=路径 --enable-shared 按照提示添加 --dis…

全志R128将LVGL运行在SPI TFT GUI上

LVGL 与 SPI TFT GUI 本次使用的是 Dshan_Display Module&#xff0c;如下图&#xff1a; 引脚配置如下&#xff1a; R128 DevkitTFT 模块PA12CSPA13SCKPA18MOSIPA9PWMPA20RESETPA19RS3V33.3VGNDGND 载入方案 我们使用的开发板是 R128-Devkit&#xff0c;需要开发 C906 核心…

【网络安全 --- xss-labs靶场通关(11-20关)】详细的xss-labs靶场通关思路及技巧讲解,让你对xss漏洞的理解更深刻

如果需要安装各种系统&#xff0c;虚拟机&#xff0c;工具等等关注我&#xff0c;已经在出系统的课程了 一&#xff0c;靶场安装 超详细的靶场安装教程如下&#xff0c;提供工具&#xff0c;靶场&#xff0c;镜像等 【网络安全 --- xss-labs靶场】xss-labs靶场安装详细教程&…

uniapp canvas 无法获取 webgl context 的问题解决

uniapp canvas 无法获取 webgl context 的问题解决 一、问题描述 在 uniapp 中做一个查看监控视频的页面&#xff0c;用到的是 JSMpeg 这个库&#xff0c;原理就是前后台通过 websocket 不断推送新画面内容到前端&#xff0c;前端通过这个 JSMpeg 渲染到前端页面中指定的 can…

selenium4 元素定位

selenium4 9种元素定位 ID driver.find_element(By.ID,"kw")NAME driver.find_element(By.NAME,"tj_settingicon")CLASS_NAME driver.find_element(By.CLASS_NAME,"ipt_rec")TAG_NAME driver.find_element(By.TAG_NAME,"area")LINK_T…

10.22A*算法,华容道,状态压缩

A* P1379华容道 问题是要从初始布局用最少的步骤到目标布局&#xff0c;每次只能动0周围的格子&#xff0c;就是华容道&#xff1b; 怎么用算法的思路解决&#xff1f; 状态压缩思路 每个数字就代表当前的状态&#xff0c;队列和map函数都记录的是当前的状态数&#xff0c;…

众和策略:跨界收购算力公司 高新发展斩获3连板

高新展开23日开盘再度一字涨停&#xff0c;截至发稿&#xff0c;该股报21.74元&#xff0c;涨停板上封单超200万手。至此&#xff0c;该股已连续3个生意日涨停。 公司18日晚间宣布生意预案&#xff0c;拟通过发行股份及支付现金的方式购买高投电子集团持有的华鲲振宇30%股权、…

P1451 求细胞数量 题解

文章目录 题目描述输入格式输出格式样例样例输入样例输出 数据范围与提示思路及部分实现完整代码 题目描述 一矩形阵列由数字 0 0 0 到 9 9 9 组成&#xff0c;数字 1 1 1 到 9 9 9 代表细胞&#xff0c;细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞&#x…

10.23归并排序

课上 归并排序 最大时&#xff0c;就是两个都是完全倒序&#xff0c;但注意一定有一个序列先用完&#xff0c;此时剩一个序列只有一个元素&#xff0c;不用比较&#xff0c;直接加入&#xff0c;所以就是nn-1, 最小时&#xff0c;是都是完全有序&#xff0c;且一个序列中的元…

ZYNQ移植ARM CMSIS_DSP库

移植方法 Vitis中新建一个Application Project&#xff0c;选择HelloWord模板。按下面步骤移植CMSIS_DSP&#xff1a; 下载CMSIS_DSP&#xff0c;拷贝如下文件夹到Vitis工程&#xff1a; SourceIncludePrivateIncludeComputeLibrary (only if you target Neon) 对Source路径下…

古铜色的P1.2直径1.2米无边圆形(饼)创意LED显示屏绽放上海苏河湾万象天地展厅

我们公司的圆形LED显示屏是专门根据业主的独特需求开模定制的。为了满足各种不同的规格和要求&#xff0c;我们已经成功地对多个点间距与直径进行了精密的开模设计&#xff0c;且工艺技术成熟稳定&#xff0c;能够保证快速的交期。 这种圆形LED显示屏是通过独特的开模定制方式…

基础课6——计算机视觉

1.计算机视觉的概念与原理 1.1概念 计算机视觉&#xff08;CV&#xff09;是人工智能的一个重要发展领域&#xff0c;属于计算机科学的一个分支&#xff0c;它企图让计算机能像人类一样通过视觉来获取和理解信息。计算机视觉的应用非常广泛&#xff0c;包括但不限于图像识别、…

HIMA F3236 F7553 面向制造业的可视化人工智能

HIMA F3236 F7553 面向制造业的可视化人工智能 近年来&#xff0c;出现了一种分析高触摸制造的新解决方案:基于图像传感器数据的人工智能驱动分析。与时间和运动研究或Gemba Walks不同&#xff0c;分析从不停止&#xff0c;系统更不容易出现人为错误和偏差。 直到最近&#…

Vue3获取proxy对象的值而不是引用的方式

情景 vue3中定义一个响应式对象&#xff1a; let obj1 reactive({userName:"tom", age:5, hobby:{a:"av",b:"bv"}}); 打印obj1&#xff0c;结果为proxy对象 定义第二个响应式对象&#xff1a; let obj2 reactive({userName:"",ag…

2023年中国二手车交易行业发展历程及趋势分析:整体规模仍保持稳定增长[图]

二手车交易主要内容包括&#xff1a;二手车评估前期工作、技术状况鉴定、寄卖、置换业务、价格评估、交易实务。主要手续包括车务手续、车辆保养维修手续、税费手续。 二手车交易行业分类 资料来源&#xff1a;共研产业咨询&#xff08;共研网&#xff09; 未来&#xff0c;二…