【AI】浅谈梯度下降算法(理论篇)

news2024/11/16 12:54:38

前言

在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent) 是最常采用的方法之一,另一种常用的方法是最小二乘法。

目前正在学习这方面相关的内容,因此简单谈谈与梯度下降法相关的内容。

梯度

在微积分里面,对多元函数的参数求 ∂∂∂ 偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。

比如函数 f(x,y)f(x, y)f(x,y),分别对 xxx, yyy 求偏导数,求得的梯度向量就是 (∂f∂x, ∂f∂y)T(\frac{∂f}{∂x}, \frac{∂f}{∂y})^T(∂x∂f​, ∂y∂f​)T,简称 gradf(x,y)grad \quad f(x,y)gradf(x,y) 或者 ▽f(x,y)▽f(x,y)▽f(x,y)。对于在点 (x0,y0)(x_0,y_0)(x0​,y0​) 的具体梯度向量就是 (∂f∂x0, ∂f∂y0)T(\frac{∂f}{∂x_0}, \frac{∂f}{∂y_0})^T(∂x0​∂f​, ∂y0​∂f​)T 或者 ▽f(x0,y0)▽f(x_0,y_0)▽f(x0​,y0​),如果是3个参数的向量梯度,就是 (∂f∂x, ∂f∂y,∂f∂z)T(\frac{∂f}{∂x}, \frac{∂f}{∂y},\frac{∂f}{∂z})^T(∂x∂f​, ∂y∂f​,∂z∂f​)T,以此类推。

那么这个梯度向量求出来有什么意义呢?他的意义从几何意义上讲,就是函数变化增加最快的地方。具体来说,对于函数 f(x,y)f(x,y)f(x,y),在点 (x0,y0)(x_0,y_0)(x0​,y0​),沿着梯度向量的方向,即 (∂f∂x0, ∂f∂y0)T(\frac{∂f}{∂x_0}, \frac{∂f}{∂y_0})^T(∂x0​∂f​, ∂y0​∂f​)T 的方向,是 f(x,y)f(x,y)f(x,y) 增加最快的地方。或者说,沿着梯度向量的方向,更加容易找到函数的最大值。反过来说,沿着梯度向量相反的方向,也就是 −(∂f∂x0, ∂f∂y0)T-(\frac{∂f}{∂x_0}, \frac{∂f}{∂y_0})^T−(∂x0​∂f​, ∂y0​∂f​)T 的方向,梯度减少最快,也就是更加容易找到函数的最小值

梯度下降

 

梯度下降法(英语:Gradient descent)是一个一阶最优化算法,通常也称为最陡下降法,但是不该与近似积分的最陡下降法(英语:Method of steepest descent)混淆。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的 反方向 的规定步长距离点进行迭代搜索。如果相反地向梯度 正方向 迭代进行搜索,则会接近函数的局部极大值点;这个过程则被称为梯度上升法

上述对梯度下降法的描述来自于维基百科,简单概括一下就是 选取适当的初值 x0x_0x0​,不断迭代更新 xxx 的值,极小化目标函数,最终收敛

在进行算法推导时,我们还需要注意一些概念:

  1. 步长(Learning rate):步长决定了在梯度下降迭代的过程中,每一步沿梯度负方向前进的长度。
  2. 特征(feature):指的是样本中输入部分,比如2个单特征的样本 (x(0),y(0))(x^{(0)},y^{(0)})(x(0),y(0)),(x(1),y(1))(x^{(1)},y^{(1)})(x(1),y(1)),则第一个样本特征为 x(0)x^{(0)}x(0),第一个样本输出为 y(0)y^{(0)}y(0)。
  3. 假设函数(hypothesis function):在监督学习中,为了拟合输入样本,而使用的假设函数,记为 hθ(x)h_θ(x)hθ​(x)。比如对于单个特征的 m 个样本 (x(i),y(i))(i=1,2,...,m)(x^{(i)},y^{(i)})(i=1,2,...,m)(x(i),y(i))(i=1,2,...,m),可以采用拟合函数如下: hθ(x)=θ0+θ1xh_θ(x)=θ_0+θ_1xhθ​(x)=θ0​+θ1​x。
  4. 损失函数(loss function):为了评估模型拟合的好坏,通常用损失函数来度量拟合的程度。损失函数极小化,意味着拟合程度最好,对应的模型参数即为最优参数。在线性回归中,损失函数通常为样本输出和假设函数的差取平方。 比如对于 m 个样本 (xi,yi)(i=1,2,...,m)(x_i,y_i)(i=1,2,...,m)(xi​,yi​)(i=1,2,...,m),采用线性回归,损失函数为:

    J(θ0,θ1)=∑i=1m(hθ(xi)−yi)2J(θ_0,θ_1)=∑_{i=1}^m(h_θ(x_i)−y_i)^2J(θ0​,θ1​)=i=1∑m​(hθ​(xi​)−yi​)2

    其中 xix_ixi​ 表示第 iii 个样本特征,yiy_iyi​ 表示第 iii 个样本对应的输出,hθ(xi)h_θ(x_i)hθ​(xi​) 为假设函数。

算法推导

先决条件: 在线性回归的前提下,确认优化模型的假设函数和损失函数。

1、确定当前位置的损失函数的梯度,对于 θiθ_iθi​,其梯度表达式如下:

∂∂θiJ(θ0,θ1...,θn)\frac{∂}{∂θ_i}J(θ_0,θ_1...,θ_n)∂θi​∂​J(θ0​,θ1​...,θn​)

2、用步长 ααα (这里指机器学习中的学习率更为合适) 乘以损失函数的梯度,得到当前位置下降的距离,即

α∂∂θiJ(θ0,θ1...,θn)α\frac{∂}{∂θ_i}J(θ_0,θ_1...,θ_n)α∂θi​∂​J(θ0​,θ1​...,θn​)

3、确定是否所有的 θiθ_iθi​,梯度下降的距离都小于 εεε,如果小于 εεε 则算法终止,当前所有的 θi(i=0,1,...n)θ_i(i=0,1,...n)θi​(i=0,1,...n) 即为最终结果,否则进入步骤4;

4、更新所有的 θθθ,对于 θiθ_iθi​,其更新表达式如下,更新完毕后继续转入步骤1;

θi=θi−α∂∂θiJ(θ0,θ1...,θn)θ_i=θ_i−α\frac{∂}{∂θ_i}J(θ_0,θ_1...,θ_n)θi​=θi​−α∂θi​∂​J(θ0​,θ1​...,θn​)

TIP

损失函数如前面先决条件所述:

J(θ0,θ1...,θn)=12m∑j=0m(hθ(x0(j),x1(j),...,xn(j))−yj)2J(θ_0,θ_1...,θ_n)=\frac{1}{2m}∑_{j=0}^m(h_θ(x^{(j)}_0,x^{(j)}_1,...,x^{(j)}_n)−y_j)^2J(θ0​,θ1​...,θn​)=2m1​j=0∑m​(hθ​(x0(j)​,x1(j)​,...,xn(j)​)−yj​)2

则在算法过程步骤1中对于 θiθ_iθi​ 的偏导数计算如下:

∂∂θiJ(θ0,θ1...,θn)=1m∑j=0m(hθ(x0(j),x1(j),...,xn(j))−yj)xi(j)\frac{∂}{∂θ_i}J(θ_0,θ_1...,θ_n)=\frac{1}{m}∑_{j=0}^m(h_θ(x^{(j)}_0,x^{(j)}_1,...,x^{(j)}_n)−y_j)x_i^{(j)}∂θi​∂​J(θ0​,θ1​...,θn​)=m1​j=0∑m​(hθ​(x0(j)​,x1(j)​,...,xn(j)​)−yj​)xi(j)​

由于样本中没有 x0x_0x0​,上式中令所有的 x0jx^j_0x0j​ 为1,步骤4中 θiθ_iθi​ 的表达式更新如下:

θi=θi−α1m∑j=0m(hθ(x0(j),x1(j),...,xn(j))−yj)xi(j)θ_i=θ_i−α\frac{1}{m}∑_{j=0}^m(h_θ(x^{(j)}_0,x^{(j)}_1,...,x^{(j)}_n)−y_j)x_i^{(j)}θi​=θi​−αm1​j=0∑m​(hθ​(x0(j)​,x1(j)​,...,xn(j)​)−yj​)xi(j)​

从这个例子可以看出当前点的梯度方向是由所有的样本决定的;

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

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

相关文章

13T搅拌运输车冷却系统改进设计

目 录 摘 要 1 Abstract 2 1绪论 5 1.1选题背景及意义 5 1.2研究现状 6 1.2.1 影响13T混凝土搅拌运输车冷却系统的因素以及目前存在的问题 6 1.2.2目前存在的问题 6 1.2.3现代冷却系统研究现状及发展方向 7 1.3研究主要内容 8 2 13T混凝土搅拌运输车冷却系统组成功用和选型 9 2…

m基于PTS+TR的OFDM系统PAPR联合抑制算法matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 部分传输序列(Partial Transmit Sequence , PTS)由于其不受载波数量限制,并且能够有效的,无失真的降低OFDM信号峰均比,而受到广泛关注。部分传输序列算…

m基于matlab的无线光通信CDMA闭环链路功率控制算法仿真,对比了OOK,2PPM,4PPM,8PPM,16PPM

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 在光通信领域,多址技术主要有WDM(波分复用)、TDM(时分复用)及OCDMA(光码分多址)三种方式。OCDMA技术从70年代中期开始出现,现在引起了人们的广泛重视。将CDMA(码分…

谁能拒绝一个会动的皮卡丘挂件

说在前面 🎈相信很多80、90后的朋友,对QQ宠物印象非常深刻,每次开机宠物就会自动跑出来。曾经很多人想饿死他,但失败了;也有很多人一上线就退出,但就是不愿因取消“开机自动开启”的勾选。2018年09月15日&a…

基于simulink的直升机控制系统

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 直升机机体减振为目标,研究基于自适应滤波技术的前馈控制问题.为了模拟机体的力学特性以及旋翼对机体的激振作用,采用了FIR,SIIR等滤波模型进行识别和控制.通过对作动器和与之相适应的滤…

【MyBatis】二、入门程序

第一个程序 一、resources目录 放在resources目录的一般是资源文件、配置文件&#xff0c;直接放在该路径的资源相当于放到了类的根路径下。 二、开发步骤 1.打包方式jar <!--打包方式jar--><packaging>pom</packaging>2.引入依赖 mybatis依赖 mysql驱动…

网页设计成品DW静态网页Html5响应式css3——电影网站bootstrap制作(4页)

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录一、网页介绍一…

求圆心到点的直线与圆的相交点

求圆心到点的直线与圆的相交点 点B为圆上一动点&#xff0c;已知圆心O(x2,y2), 圆外点A(x1,y1)&#xff0c;圆半径r值&#xff0c;求B(x,y)坐标。 由图可知,产生下面两个公式。 m/n y1-y2/x1-x2 m^2n^2r^2 由上面的公式可以得出 n的长度计算公式为n^2 r^2 / [ (y1-y2 / x1-x…

昨日,一老师课前预测日本赢球,结果令人惊叹

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 世界杯是当前最为热门的一个体育赛事&#xff0c; 也是很多小伙伴最为喜欢的一个体育运动之一 而在昨日第四场&#xff1a;F组第一轮&#xff0c;比赛时间&#xff1a;2022年11月23日 21:00 德国VS日本 被一老师成功预测…

视频怎么加水印?这里有你想要的答案

现在不管是游戏解说&#xff0c;还是一些网课视频&#xff0c;亦或是视频博主制作的vlog&#xff0c;我们都能看到这些视频带上了水印&#xff0c;它不仅可以防止其他人随意盗用视频&#xff0c;还可以很好地为自己作宣传&#xff0c;吸引流量。不过还是有很多小伙伴没有著作权…

大部分PHP程序员,都搞不懂如何安全代码部署【二】(nginx篇)

在此之前发布了 代码安全部署的&#xff0c;里面写的nginx 配置安全写了一点点&#xff0c;今天具体补充一下nginx 的配置 nginx站点目录及文件URL访问控制 一、根据扩展名限制程序和文件访问 利用nginx配置禁止访问上传资源目录下的PHP、Shell、Perl、Python程序文件。配置…

基于图像识别的小车智能寻迹控制系统

目录 摘要…… I Abstract II 基于图像识别的智能寻迹控制系统设计 I Design of Intelligent tracking Control system based on Image recognition II 目录 III 第1章 绪论 1 1.1 课题背景 1 1.1 国内外文献综述 1 1.2 论文研究内容 2 第2章 基于图像识别的智能寻迹控制系统方…

代码随想录训练营第30天|LeetCode 332.重新安排行程、51. N皇后、 37. 解数独、回溯总结

参考 代码随想录 题目一&#xff1a;LeetCode 332.重新安排流程 这道题目有几个难点&#xff1a; 一个行程中&#xff0c;如果航班处理不好容易变成一个圈&#xff0c;成为死循环有多种解法&#xff0c;字母序靠前排在前面&#xff0c;让很多同学望而退步&#xff0c;如何该…

没有项目管理经验,可以参加PMP考试吗?

咱们先来了解一下PMP&#xff0c;PMP认证是一项针对项目管理的资格认证&#xff0c;属于管理学中的经济/项目管理&#xff0c;也是目前职业资格认证中含金量较高的&#xff0c;堪比MBA、MPA。 许多大型私企和外企在招聘项目管理者和项目组成员的时候都优先考虑持有PMP认证的人…

【问题】Nginx部署vue项目进行跳转二级路由报404无法找到目标页面问题和Nginx部署vue项目访问不了接口

Nginx部署vue项目进行跳转二级路由报404无法找到目标页面问题和Nginx部署vue项目访问不了接口 文章目录Nginx部署vue项目进行跳转二级路由报404无法找到目标页面问题和Nginx部署vue项目访问不了接口Nginx部署vue项目进行跳转二级路由报404无法找到目标页面问题**问题** &#x…

社区垃圾分类督导AI盒子应用的痛点难点分析

载止于2022年底&#xff0c;我司A社区垃圾分类督导AI视频分析盒子已经在华东(上海、杭州、无锡等地&#xff09;&#xff0c;华南地区&#xff08;深圳等地&#xff09;大量上线&#xff0c;本人负责垃圾分类算法AI盒子的开发历时5年之久&#xff0c;从多年试点到现在规模上线使…

react源码分析:组件的创建和更新

这一章节就来讲讲ReactDOM.render()方法的内部实现与流程吧。 因为初始化的源码文件部分所涵盖的内容很多&#xff0c;包括创建渲染、更新渲染、Fiber树的创建与diff&#xff0c;element的创建与插入&#xff0c;还包括一些优化算法&#xff0c;所以我就整个的React执行流程画了…

算法入门 | 二叉树的递归遍历、递归创建系列(递归)

目录 1. 二叉树的遍历规则 2. 二叉树的结构体设计 【leftchild data rightchild】 3. 二叉树的递归先序、中序、后序遍历 4. 利用已知字符串&#xff08;二叉树的先序序列&#xff09;递归创建一棵二叉树 &#xff08;1&#xff09;购买节点函数 &#xff08;2&#xff…

【附源码】计算机毕业设计JAVA移动学习网站

【附源码】计算机毕业设计JAVA移动学习网站 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JAVA mybati…

阻止网络钓鱼诈骗的技巧

根据 Verizon 的2022 年数据泄露调查报告&#xff0c;25% 的数据泄露始终涉及网络钓鱼。 这是怎么发生的&#xff1f;参与网络钓鱼的欺诈者往往是一些掌握发文技巧的内容作者。他们知道如何创造一种紧迫感&#xff0c;让您点击通知并阅读消息。 很多用户落入了他们的陷阱&…