11.梯度下降法的思想——举足轻重的模型优化算法

引言

优化算法在机器学习和人工智能中扮演者至关重要的角色。机器学习模型的训练过程本质上是一个优化问题,即通过调整模型参数来最小化损失函数。梯度下降法(Gradient Descent)在优化算法中占据着重要的地位,因其简单、有效且易于实现。

通过阅读本篇博客,你可以:

1.掌握梯度下降法的概念

2.了解如何设置学习率

一、梯度下降法的概念

1.梯度下降法的简述

梯度下降法(Gradient Descent)是一个算法。但不是像多元线性回归那样的一个具体做回归任务的算法,而是一个非常通用的优化算法。我们可以使用它来求解模型的最优解。所有优化算法的目的都是期望以最快的速度把模型参数 \theta 求解出来,梯度下降法就是一种经典的常用的优化算法。

2.使用梯度下降法的原因

在之前的博客10.解析解方法推导线性回归——不容小觑的线性回归算法-CSDN博客中我们利用 \theta解析解公式去求解MSE损失函数为凸函数的最优解。但如果我们机器学习的损失函数是非凸函数的话,设置梯度为0会得到很多个极值,甚至可能得到极大值!

换一个角度,我们之前利用的解析解公式  \theta = (X^{T}X)^{-1}X^{T}y 来求解最优解。我们设 X^{T}X是一个 n * n 的矩阵,考虑到 X^{T}X 是一个对称正定矩阵,求逆可以使用矩阵分解来进行(可以使常数因子复杂度更低),这样就能使求逆的复杂度为 O(n^{3}) 。整体的时间复杂度受求逆操作的影响,时间复杂度会高达 O(n^{3}) 。显而易见,这个方法整体的时间复杂度是相当高的

从上述可以得出,使用 \theta 的解析解公式求解并不是机器学习甚至是深度学习常用的手段。而我们在大部分情况下会使用梯度下降法去求解最优解。

3.梯度下降的思想

上图中,横轴代表 \theta ,纵轴代表损失。我们要去寻找损失最低的点,就是 \theta 的最优解。计算机会随机初始化一个 \theta (这里的 \theta 不是一个值,而是一个向量  \omega _{0},...,\omega_{n} ),有了 \theta 之后我们就可以根据公式计算出 \hat{y} ( \hat{y} = X \theta )。然后根据 \hat{y} 与真实值 y 之间的损失去算出MSE。最后调整 \theta 再循环往复,一直到找到最优解为止。这就像我们问朋友工资是多少,他会说"你猜?"。我们肯定会随机说出一个数字,他就会告诉你猜低了或者猜高了,这样我们就可以奔着对方的方向一直猜下去,直到猜对了为止。梯度下降法就是这样的,只有得到了正确的反馈后继续猜才有意义。

4.梯度下降公式

梯度下降公式用于更新 \theta,以最小化目标函数,其基本形式为:

W^{t+1}_{j} = W^{t}_j - \eta \cdot gradient_{j}

这里的 W^{t}_{j} 就是 \theta 中的某一个,这里的 \eta 就是下图的 Learning step(学习率Learning rate),这个学习率我们就可以看作损失下降的步伐大小。

在大多数情况下,学习率都是正数。如果 W 在最低点的左侧,则梯度是负数,那么我们的 W 就会往大了调;如果 W 在最低点的右侧,则梯度是正数,那么我们的 W 就是往小了调。每次 W 的调整幅度都是 \eta \cdot graident ,就是在横轴上的移动距离。

算法的维度和特征越多,那么这个公式的调用次数就越多。由于 W_{0} 的存在,n 维的算法每次迭代要应用这个式子 n+1 次。\theta 对应的是多个维度,每个维度都可以画一个与上述一样的图。

观察上图,我们可以发现不是某一个 \theta_{0} 或 \theta_{1} 找到最小值就是最优解,而是它们一起找到 J 最小的时候才是最优解。

二、学习率的设置

1.学习率设置的原理

W^{t+1}_{j} = W^{t}_j - \eta \cdot gradient_{j}

根据上述梯度下降公式,我们知道 \eta 是学习率,设置大的学习率 W_{j} 每次调整的幅度就大,设置小的学习率 W_{j} 每次调整的幅度就小。当然,步子迈的太大也会出现问题,正如俗话说:"步子太大容易扯着蛋"。设置的学习率太大就会导致下方右图的情况出现,在两边来回震荡。反之,设置的学习率太小就会一步步往前挪,使得整体的迭代次数增加。

下图中的图 a ,是学习率设置的最理想情况,最佳步骤,只需要一步就可以得到最优解,当然,这在现实当中基本上是不可能实现的。图 b 则是设置了较小的学习率,一次次迭代直到最优解。图c 是设置比较大的学习率,我们会发现它在最优解两端不断的震荡,向最优解靠近。图 d 由于学习率设置的过大,迭代后梯度变大,梯度变大导致移动的步子更大,这样就会远离最优解,这也是我们最不愿意看到的情况。

下图展现了不同学习率设置的梯度下降法的关系,横轴代表了梯度下降的迭代次数,纵轴代表了损失的大小。我们可以看到,在相同的迭代次数下,较好的学习率可以得到更低的损失,也就意味着能更快的获得最优解。下图中的蓝色函数代表了上方的图 b ,绿色函数就代表了图 c ,黄色函数代表了图 d

 2.局部最优解和全局最优解

如下图所示,如果损失函数是非凸函数,使用梯度下降法是有可能落到局部最小值的,所以学习率不能设置的太小太稳健(毕竟风浪越大鱼越贵)。当然,局部最小值也不会产生什么大问题,因为应用层面只要有实际应用价值和堪用就好了。

总结

本篇博客重点讲述了模型优化算法梯度下降法的基本原理和相关公式。希望可以对大家起到作用,谢谢。


关注我,内容持续更新(后续内容在作者专栏《从零基础到AI算法工程师》)!!!

 

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

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

相关文章

jupyter使用pytorch

1、激活环境 以下所有命令都在Anaconda Prompt中操作。 conda activate 环境名称我的环境名称是myenv 如果不知道自己的pytorch配在哪个环境,就用下面方法挨个试。 2、安装jupyter 1、安装 pip install jupyter2、如果已经安装,检查jupyter是否已…

【机器学习(九)】分类和回归任务-多层感知机(Multilayer Perceptron,MLP)算法-Sentosa_DSML社区版

文章目录 一、算法概念二、算法原理(一)感知机(二)多层感知机1、隐藏层2、激活函数sigma函数tanh函数ReLU函数 3、反向传播算法 三、算法优缺点(一)优点(二)缺点 四、MLP分类任务实现…

多模态大模型学习(一)

参考:https://www.bilibili.com/video/BV1kT411o7a6?p2&spm_id_frompageDriver&vd_source156234c72054035c149dcb072202e6be 余弦相似度,让正样本内积趋近于1,负样本趋近于-1。度量学习。N特别大时,负样本远大于正样本&…

喜报!厦门唐普信息技术斩获 厦门火炬高新区“火炬瞪羚企业” 殊荣

近日,依据《厦门火炬高新区关于支持科技企业创新提质发展的若干措施》(厦高管规 [2024] 3 号),火炬管委会启动了 2024 年度 “火炬瞪羚企业” 认定工作。 厦门火炬高新区管委会对2024年“火炬瞪羚企业”名单进行了公示&#xff0…

机器翻译之多头注意力(MultiAttentionn)在Seq2Seq的应用

目录 1.多头注意力(MultiAttentionn)的理念图 2.代码实现 2.1创建多头注意力函数 2.2验证上述封装的代码 2.3 创建 添加了Bahdanau的decoder 2.4训练 2.5预测 3.知识点个人理解 1.多头注意力(MultiAttentionn)的理念图…

protobuf编码方式

protobuf编码方式 一个简单的例子 message Test1 {optional int32 a 1; }上述的proto文件,设置a 150,那么将其序列化后,得到的数据就是08 96 01,然后你使用protoscope工具去解析这些数据,就得到1 : 150&#xff0c…

基于深度学习的花卉智能分类识别系统

温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 传统的花卉分类方法通常依赖于专家的知识和经验,这种方法不仅耗时耗力,而且容易受到主观因素的影响。本系统利用 TensorFlow、Keras 等深度学习框架构建卷积神经网络&#…

【Linux:共享内存】

共享内存的概念: 操作系统通过页表将共享内存的起始虚拟地址映射到当前进程的地址空间中共享内存是由需要通信的双方进程之一来创建但该资源并不属于创建它的进程,而属于操作系统 共享内存可以在系统中存在多份,供不同个数,不同进…

推荐5款压箱底的宝贝,某度搜索就有

​ 今天要给大家推荐5款压箱底的宝贝软件了,都是在某度搜索一下就能找到的好东西。 1.桌面壁纸——WinDynamicDesktop ​ WinDynamicDesktop是一款创新的桌面壁纸管理工具,能根据用户的地理位置和时间自动更换壁纸。软件内置多个美丽的动态壁纸主题&am…

苹果电脑系统重磅更新——macOS Sequoia 15 系统 新功能一 览

有了 macoS Sequoia,你的工作效率将再次提升:快速调整桌面布局,一目了然地浏览网页重点,还可以通过无线镜像功能操控你的iPhone。 下面就来看看几项出色新功能,还有能够全面发挥这些功能的 App 和游戏。 macOS Sequo…

智能新突破:AIOT 边缘计算网关让老旧水电表图像识别

数字化高速发展的时代,AIOT(人工智能物联网)技术正以惊人的速度改变着我们的生活和工作方式。而其中,AIOT 边缘计算网关凭借其强大的功能,成为了推动物联网发展的关键力量。 这款边缘计算网关拥有令人瞩目的 1T POS 算…

使用build_chain.sh离线搭建匹配的区块链,并通过命令配置各群组节点的MySQL数据库

【任务】 登陆Linux服务器,以MySQL分布式存储方式安装并部署如图所示的三群组、四机构、 七节点的星形组网拓扑区块链系统。其中,三群组名称分别为group1、group2和group3, 四个机构名称为agencyA、agencyB、agencyC、agencyD。p2p_port、cha…

powerbi计算销售额累计同比增长率——dax

目录 效果展示: 一、建立日期表 二、建立度量值 1.销售收入 2.本年累计销售额 3.去年累计销售额 4.累计同比增长率 三、矩阵表制作 效果展示: 数据包含2017-2019年的销售收入数据 一、建立日期表 日期表建立原因及步骤见上一篇文章https://blog…

数据处理与统计分析篇-day11-RFM模型案例

会员价值度模型介绍 会员价值度用来评估用户的价值情况,是区分会员价值的重要模型和参考依据,也是衡量不同营销效果的关键指标之一。 价值度模型一般基于交易行为产生,衡量的是有实体转化价值的行为。常用的价值度模型是RFM RFM模型是根据…

UNI-SOP应用场景(1)- 纯前端预开发

在平时新项目开发中,前端小伙伴是否有这样的经历,hi,后端小伙伴们,系统啥时候能登录,啥时候能联调了,这是时候往往得到的回答就是,再等等,我们正在搭建系统呢,似曾相识的…

20个数字经济创新发展试验区建设案例【2024年发布】

数据简介:国家数字经济创新发展试验区的建设是一项重要的国家战略,旨在推动数字经济与实体经济的深度融合,促进经济高质量发展。自2019年10月启动以来,包括河北省(雄安新区)、浙江省、福建省、广东省、重庆…

通过OpenScada在ARMxy边缘计算网关上实现数字化转型

随着工业4.0概念的普及,数字化转型已成为制造业升级的关键路径之一。在此背景下,边缘计算技术因其能够有效处理大量数据、减少延迟并提高系统响应速度而受到广泛关注。ARMxy边缘计算网关,特别是BL340系列,凭借其强大的性能和灵活的…

Linux网络之UDP与TCP协议详解

文章目录 UDP协议UDP协议数据报报头 TCP协议确认应答缓冲区 超时重传三次握手其他问题 四次挥手滑动窗口流量控制拥塞控制 UDP协议 前面我们只是说了UDP协议的用法,但是并没有涉及到UDP协议的原理 毕竟知道冰箱的用法和知道冰箱的原理是两个层级的事情 我们首先知道计算机网…

使用API有效率地管理Dynadot域名,设置域名服务器(NS)

前言 Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮箱&…

在虚幻引擎中实现Camera Shake 相机抖动/震屏效果

在虚幻引擎游戏中创建相机抖动有时能让画面更加高级 , 比如 遇到大型的Boss , 出现一些炫酷的特效 加一些短而快的 Camera Shake 能达到很好的效果 , 为玩家提供沉浸感 创建Camera Shake 调整Shake参数 到第三人称或第一人称蓝图 调用Camera Shake Radius值越大 晃动越强