机器学习 - 梯度下降

场景

上一章学习了代价函数,在机器学习中,代价模型是用于衡量模型预测值与真实值之间的差异的函数。它是优化算法的核心,目标是通过调整模型的参数来最小化代价模型的值,从而使模型的预测结果更接近真实值。常见的代价模型是均方误差(Mean Squared Error,MSE),它衡量了模型预测值与真实值之间的平方差的平均值。上一章曾经简单得用它预测过房价,MSE可以表示为:

J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta_0, \theta_1) = \frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)}) - y^{(i)})^2 J(θ0,θ1)=2m1i=1m(hθ(x(i))y(i))2
其中, J ( θ 0 , θ 1 ) J(\theta_0, \theta_1) J(θ0,θ1) 是代价模型, h θ ( x ( i ) ) h_\theta(x^{(i)}) hθ(x(i)) 是模型对第 i i i 个样本的预测值, y ( i ) y^{(i)} y(i) 是第 i i i 个样本的真实值, m m m 是训练样本数量。
梯度下降算法是一种优化算法,用于最小化代价模型。它通过迭代的方式,沿着代价函数的负梯度方向更新模型的参数,以逐步接近最优解。在每次迭代中,梯度下降算法计算代价函数对于每个参数的偏导数(即梯度),然后按照一定的学习率更新参数。
具体来说,在线性回归中,梯度下降算法的更新规则可以表示为:

θ 0 : = θ 0 − α ∂ J ( θ 0 , θ 1 ) ∂ θ 0 \theta_0 := \theta_0 - \alpha \frac{\partial J(\theta_0, \theta_1)}{\partial \theta_0} θ0:=θ0αθ0J(θ0,θ1)

θ 1 : = θ 1 − α ∂ J ( θ 0 , θ 1 ) ∂ θ 1 \theta_1 := \theta_1 - \alpha \frac{\partial J(\theta_0, \theta_1)}{\partial \theta_1} θ1:=θ1αθ1J(θ0,θ1)

其中, α \alpha α 是学习率,控制参数更新的步长。

想象

你可以想象你在黄山上,你要到达上山得最低点,每一次你都会根据你自己现在得位置选择向哪里行动,例如:你现在得位置在这里
在这里插入图片描述
现在往下走,你可以往下迈一小步,也可以迈一大步。
在这里插入图片描述
你往下走了,这无可非议,当你走到这里得时候,
在这里插入图片描述
你认为已经在最下面了,已经找不到哪里才是更下了,这时候变不再走了。

这个过程可以描述为:假设你在一个山谷中寻找最低点,你的目标是找到山谷的最低处。
首先,你选择一个起始点,可以是山谷的任意位置。然后,你观察当前位置的海拔高度,这可以看作是目标函数的值。
接下来,你想找到一个下山的方向,即找到一个使海拔高度下降最快的方向。这个方向可以通过计算当前位置的梯度来确定。梯度是一个向量,指示了在当前位置函数值增长最快的方向。
你会朝着梯度的反方向移动一小步,这样你就能够下山。这个步长可以通过学习率来控制,学习率决定了你每次迈出的步子有多大。
然后,你到达了新的位置,你再次观察海拔高度,并计算新位置的梯度。你会继续朝着梯度的反方向移动,不断重复这个过程,直到达到停止条件。
停止条件可以是达到最大迭代次数、函数值变化小于某个阈值或者梯度的范数(长度)小于某个阈值等。这样,你就能够找到山谷的最低点,也就是目标函数的最小值点。
总结起来,梯度下降算法可以被看作是在山谷中寻找最低点的过程。通过计算函数的梯度,朝着梯度的反方向移动一小步,不断重复这个过程,直到达到停止条件,从而找到目标函数的最小值点。

结束

这都是一些梯度下降算法的概念,其实结合起来比较简单了,首先上一章的代价函数是找一个最接近y的值,这一章梯度算法实际上就是,当然,你可以理解为,我初始化我的两个变量 Y = A + BX
A,B为(0,0),随后你选择步长为0.01,迭代一千次,带入公式反复计算

        for j in range(parameters):
            term = np.multiply(error, X[:,j])
            temp[0,j] = theta[0,j] - ((alpha / len(X)) * np.sum(term))  
        theta = temp
        ---代价函数 TODO---
    return theta, cost

θ 0 : = θ 0 − α ∂ J ( θ 0 , θ 1 ) ∂ θ 0 \theta_0 := \theta_0 - \alpha \frac{\partial J(\theta_0, \theta_1)}{\partial \theta_0} θ0:=θ0αθ0J(θ0,θ1)

θ 1 : = θ 1 − α ∂ J ( θ 0 , θ 1 ) ∂ θ 1 \theta_1 := \theta_1 - \alpha \frac{\partial J(\theta_0, \theta_1)}{\partial \theta_1} θ1:=θ1αθ1J(θ0,θ1)

类比:每一个下山的脚步就是步长alpha ,alpha 越大,下降越快,暂时可以这么理解。

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

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

相关文章

哪些因素会影响游戏服务器开发的性能?

在游戏开发中,服务器性能是一个关键因素,它影响着游戏的运行速度、稳定性以及玩家的游戏体验。游戏服务器需要处理大量的数据和请求,因此其性能受到多种因素的影响。本文将探讨影响游戏服务器开发性能的几个关键因素。 ​1、硬件资源 服务器…

互联网加竞赛 基于深度学习的目标检测算法

文章目录 1 简介2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 1 简介 &#x1f5…

PySpark(二)RDD基础、RDD常见算子

目录 RDD RDD五大特性 RDD创建 RDD算子 常见的Transformation算子 map flatMap mapValues reduceByKey groupBy filter distinct union join intersection glom groupByKey groupByKey和reduceByKey的区别 ? sortBy sortByKey 常见的action算子 countByKey…

Zoho联合知了标讯,为CRM系统加入智能招投标功能

随着我们在国内合作伙伴的名单不断扩充,CRM管理系统也在持续上线新功能。去年,Zoho联合知了标讯发布了智能招投标功能,集成在自己的CRM系统中,对有招投标需求的企业来说提供了莫大的便利。接下来,让我为您介绍&#xf…

【粉丝福利社】一书读懂物联网:基础知识+运行机制+工程实现(文末送书-完结)

🏆 作者简介,愚公搬代码 🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主&#xf…

On the Spectral Bias of Neural Networks论文阅读

1. 摘要 众所周知,过度参数化的深度神经网络(DNNs)是一种表达能力极强的函数,它甚至可以以100%的训练精度记忆随机数据。这就提出了一个问题,为什么他们不能轻易地对真实数据进行拟合呢。为了回答这个问题,研究人员使用傅里叶分析…

vue3 + vite:打包部署后,动态组件渲染404问题解决

问题描述: 当需要渲染动态组件,动态的组件路径配置在数据库中时,如下图,本地运行能正常访问,用vite打包部署后,生产上改路径为404. 起初认为是,vite打包后的文件都是.js, 当页面加载后从数据库…

chisel之scala 语法

Chisel新手教程之Scala语言(1) Value & variable Value是immutable的,当它被分配一个数据后,无法进行重新分配。用 val 表示。 Variable是mutable的,可以重复赋值。用 var 表示。示例如下: val a …

vue2 el-table新增行内删除行内(两种写法)里面第一个是树组件,第二个是数字组件,第一个数组件只能勾选最后一个节点

第一种 <template><div class"time_table"><div style"margin-bottom: 10px"><el-button click"addRowFn">新增</el-button></div><el-form ref"costForm" :model"formData">&l…

普渡机器人CEO预测2024年服务机器人市场将扩大

原创 | 文 BFT机器人 根据普渡科技有限公司的报告&#xff0c;商用服务机器人在东亚地区的应用比其他地方更为广泛。然而&#xff0c;预计到2024年&#xff0c;全球其他地区也将迎头赶上。这家总部位于中国深圳的公司自豪地宣称&#xff0c;它已经成为中国最大的此类机器人出口…

基于QPSO-LSTM的短期风电负荷MATLAB预测程序

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 参考文献 基于QPSO-LSTM的短期风电负荷预测模型——谭才兴&#xff08;完全复现&#xff09; 程序简介 传统的LSTM神经网络超参数和拓扑结构通常是基于经验和试验确定&#xff0c;但这种方法容易受到人为因…

uniapp中配置开发环境和生产环境

uniapp在开发的时候&#xff0c;可以配置多种环境&#xff0c;用于自动切换IP地址&#xff0c;用HBuilder X直接运行的就是开发环境&#xff0c;用HBuilder X发布出来的&#xff0c;就是生产环境。 1.使用HBuilder X创建原生的uniapp程序 选择vue3 2.什么都不改&#xff0c;就…

【SAR成像】基于RD、CS和ωk算法的合成孔径雷达成像算法原理与实现

基于RD、CS和ωk算法的合成孔径雷达成像算法实现 前言SAR基本概念雷达获取数据的几何关系低斜视角下的回波信号模型 RADARSAT-1主要参数数据预处理数据读取与再封装数据补零 成像算法坐标轴的产生RD算法距离压缩距离徙动矫正方位压缩 CS算法第一次相位相乘 变标后的信号第二次相…

由亚马逊云科技 Graviton4 驱动的全新内存优化型实例 Amazon EC2 实例(R8g),现已开放预览

下一代 Amazon Elastic Compute CloudAmazon EC2) 实例的预览版现已公开 提供。全新的 R8g 实例 搭载新式 Graviton4 处理器&#xff0c;其性价比远超任何现有的内存优化实例。对于要求较高的内存密集型工作负载&#xff0c;R8g 实例是不二之选&#xff1a;大数据分析、高性能数…

热数据存储在HDFS,冷备数据存储于对象存储中

1.场景分析 生产环境均为腾讯云服务器&#xff0c;日志数据计划存储于HDFS中&#xff0c;由于日志数据较大&#xff08;压缩后1T/天&#xff09;&#xff0c;不断扩充云盘成本消耗大。鉴于对象存储的存储成本较为低廉&#xff0c;但是日常频繁使用会产生流量费用。 鉴于此&…

ES6中新增Array.of()函数的用法详解

new Array()方法 ES6为Array增加了of函数用一种明确的含义将一个或多个值转换成数组。因为用new Array()构造数组的时候&#xff0c;是有二意性的。 构造时&#xff0c;传一个参数&#xff0c;实际上是指定数组的长度&#xff0c;表示生成多大的数组。 构造时&#xff0c;传…

(源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模

本篇文章是: 2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模的源码版本,包含具体建模代码到生成模型步骤。那么废话不多说直接开始展示建模过程建模: 数据预处理 之前我给大家提供的一年的风暴数据是远远不够的,要做时…

前端excel带样式导出 exceljs 插件的使用

本来用的xlsx和xlsx-style两个插件&#xff0c;过程一步一个坑&#xff0c;到完全能用要消灭好多bug。这时发现了exceljs&#xff0c;真香&#x1f600; 案例 <!DOCTYPE html> <html><head><meta charset"utf-8" /><meta name"view…

iOS图像处理----探索图片解压缩到渲染的全过程以及屏幕卡顿

一&#xff1a;图像成像过程 ①、将需要显示的图像&#xff0c;由CPU和GPU通过总线连接起来&#xff0c;在CPU中输出的位图经总线在合适的时机上传给GPU &#xff0c;GPU拿到位图做相应位图的图层渲染、纹理合成。 ②、将渲染后的结果&#xff0c;存储到帧缓存区&#xff0c;帧…

Linux 驱动开发基础知识——设备树的语法驱动开发基础知识(九)

个人名片&#xff1a; &#x1f981;作者简介&#xff1a;学生 &#x1f42f;个人主页&#xff1a;妄北y &#x1f427;个人QQ&#xff1a;2061314755 &#x1f43b;个人邮箱&#xff1a;2061314755qq.com &#x1f989;个人WeChat&#xff1a;Vir2021GKBS &#x1f43c;本文由…