梯度下降

一 、为什么要用到梯度下降?

正规方程的缺陷:

  1. 非凸函数问题:损失函数非凸时,导数为0会得到多个极值点(非唯一解)

  2. 计算效率低:逆矩阵运算时间复杂度 O(n3),特征量翻倍时计算时间增为8倍(16特征需512秒)。

 

结论:梯度下降是高效求解大规模、非凸问题的通用优化算法。

二、梯度下降核心思想

目标:以最快的速度找到损失函数 loss的最小值点(最优参数 W)。

原理类比

人在山地走向谷底,每一步沿当前最陡峭下坡方向行走。

步骤 1:判断 “下坡最陡的方向”

你低头观察脚下的地面:

  • 左边地面微微向下倾斜,坡度较缓;

  • 正前方地面明显向下倾斜,坡度最陡;

  • 右边地面甚至有点向上倾斜(上坡)。

这里的 “坡度” 就是梯度—— 它不仅告诉你 “哪个方向是下坡”,还告诉你 “哪个方向下坡最陡”(梯度的方向),以及 “陡到什么程度”(梯度的大小)。

步骤 2:沿最陡方向走一小步

既然正前方下坡最陡,你就朝着正前方走一步(步长不能太大,否则可能踩空或错过转弯)。这一步对应参数更新

  • 方向:沿 “最陡下坡方向”(负梯度方向,因为梯度本身是 “上坡最陡” 的方向);

  • 步长:对应 “学习率”(不能太大,否则可能直接冲到山的另一侧;也不能太小,否则走得太慢)。

步骤 3:重复调整方向,逐步逼近山脚

走完一步后,你站在新的位置,再次观察脚下的坡度(重新计算梯度),发现此时 “左前方” 变成了最陡的下坡方向。于是你调整方向,沿左前方再走一步…… 这个过程不断重复:每次都根据当前位置的坡度调整方向,走一小步,直到走到坡度几乎为 0 的平地(山脚)

  • 梯度 g是损失函数 loss对参数 W 的偏导数。

    • 如果 g < 0, w 就变大 ; 如果g > 0 , w 就变小(目标左边是斜率为负右边为正 )

  • 沿梯度反方向更新参数:W=W−α⋅g(α 为学习率)。

  • 然后判断是否收敛(loss变化很小就收敛),如果收敛就跳出迭代,如果没收敛就再次更新参数 W...

三、单参数(w)梯度下降实现

1. 更新公式

2. 参数α更新逻辑
    位置梯度 gg更新方向操作
    最小值左侧g<0w 增大w=w−(负值)→右移 
    最小值右侧g>0w 减小w=w−(正值)→左移 

    示例流程(初始 w=0.2,α=0.01):

    1. 计算 : 假设w=0.2时g=0.24 → w_new=0.2−0.01×0.24=0.1976

    2. 迭代更新直至收敛(g最小)。

    # 定义总损失
    def loss(w):return 10*(w**2)-15.9*w+6.5# 定义梯度
    def g(w):return 20*w-15.9# 定义模型
    def model(x,w):return x*w# 绘制模型
    def draw_line(w):pt_x = np.linspace(0,5,100)pt_y = model(pt_x,w)plt.plot(pt_x,pt_y)#随机初始化w
    w =10# 迭代
    for i in range(100):print('w:',w,'loss:',loss(w))# 学习率lr = 1/(i+100)# 更新ww = w-lr*g(w)x=np.array([4.2,4.2, 2.7, 0.8, 3.7, 1.7, 3.2])
    y=np.array([3.8,2.7, 2.4, 1.,  2.8, 0.9, 2.9])   
    plt.plot(x,y,'o')
    draw_line(w)
    plt.show()

    四、学习率(α)

    学习率α是控制参数更新的 “步长”,是影响收敛的核心超参数:

    • 过小:收敛缓慢,需大量迭代;
    • 过大:可能跳过最优解,导致损失震荡甚至发散;

    一般我们把它设置为0.1,0.01,0.001甚至更小。一般情况下学习率在迭代过程中是不变的,但是也可以设置为动态调整,即随着迭代次数逐渐变小,越接近目标W '步子'迈的更小,以更精准地找到W。

    五、多参数(如 w0,w1)梯度下降实现

    假设损失函数是有两个w1,w2特征的椎体

    1. 初始化:随机生成正态分布参数 W(如 w0,w1)。

    2. 计算梯度g:求当前 loss 的梯度 g

    3. 更新参数:W=W−α⋅g

    4. 收敛判断

      • loss变化量 < 阈值

      • 或达到预设迭代次数(如1000次)。

    5. 终止:满足条件则输出 W;否则返回步骤2。

    假设loss = (100w1 + 200w2 +1000)**2

    import numpy as np
    # 假设总损失
    def loss(w1,w2):return (100*w1 + 200*w2 +1000)**2
    ​
    # 梯度
    # 以w1为参数的梯度
    def g1(w1,w2):return 2*(100*w1 + 200*w2 +1000)*100
    ​
    # 以w2为参数的梯度
    def g2(w1,w2):return 2*(100*w1 + 200*w2 +1000)*200
    ​
    # 初始化w1,w2
    w1 = 10
    w2 = 10
    for i in range(50):print('w1:',w1,'w2:',w2,'loss:',loss(w1,w2))w1,w2 = w1-0.001*g1(w1,w2), w2-0.01*g2(w1,w2)
    ​

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

    如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    淘宝 API HTTP/2 多路复用与连接优化实践:提升商品数据采集吞吐量

    一、引言​随着电商行业的蓬勃发展&#xff0c;对淘宝平台商品数据的采集需求日益增长。无论是市场调研公司分析市场趋势、电商平台整合商品资源&#xff0c;还是商家进行竞品分析&#xff0c;都需要高效、稳定地获取大量淘宝商品数据。然而&#xff0c;传统的 HTTP 协议在面对…

    javascript中call、apply 和 bind 的区别详解

    文章目录深入浅出&#xff1a;JavaScript 中的 call、apply 和 bind一、三位魔法师的共同使命二、各显神通的魔法师们1. call - 即时通讯专家2. apply - 批量处理高手3. bind - 预约服务大师三、魔法师们的对比表格四、魔法师们的实际应用1. 借用方法2. 函数柯里化3. 事件处理五…

    【PHP】接入百度AI开放平台人脸识别API,实现人脸对比

    目录 一、需求 二、准备工作 1、申请服务 2、创建应用&#xff0c;获取开发密钥 3、官方开发文档 4、测试人像图片 三、PHP接入 1、鉴权&#xff0c;获取access_token 2、人脸对比 四、完整代码 一、需求 现在人脸识别、人脸对比技术越来越成熟&#xff0c;使用越来越…

    【东枫科技】DreamHAT+

    DreamHAT 是一款顶部附加硬件 (HAT) 套件&#xff0c;可为 Raspberry Pi 提供 60GHz 毫米波雷达供您使用。 全尺寸 HAT 包含一个英飞凌 BGT60TR13C 芯片&#xff0c;具有单个发射天线和三个接收器&#xff08;TX/RX&#xff09;&#xff0c;通过 GPIO 引脚和 SPI 连接到 Raspbe…

    Spring Boot + MongoDB:从零开始手动配置 MongoConfig 实战

    前言 你以为只要写上 spring.data.mongodb.*,就能一劳永逸,MongoDB 立马听话?别天真,这只是入门级操作,像是拿个自动挡钥匙,开个小车溜达溜达,远远算不上高手操作。当项目需求变得复杂,连接字符串需要灵活配置,或者多数据源并行作战时,自动配置的魔法显得捉襟见肘。…

    建筑节能目标下,楼宇自控系统以高效运行助力节能减碳

    随着全球气候变化问题日益严峻&#xff0c;节能减排已成为各国政府和企业的重要任务。在建筑领域&#xff0c;楼宇自控系统&#xff08;Building Automation System, BAS&#xff09;作为实现建筑节能目标的关键技术&#xff0c;正发挥着越来越重要的作用。根据中国政府发布的《…

    LOVON——面向足式Open-Vocabulary的VLN导航:LLM做任务分解、YOLO11做目标检测,最后L2MM将指令和视觉映射为动作,且解决动态模糊

    前言 因为项目需要(比如我们在做的两个展厅讲解订单)&#xff0c;近期我一直在研究VLN相关&#xff0c;有些工作哪怕暂时还没开源(将来可能会开源)&#xff0c;但也依然会解读&#xff0c;比如好处之一是构建完整的VLN知识体系&#xff0c;本文便是其中一例 我在解读过程中&am…

    在线免费的AI文本转语音工具TTSMaker介绍

    TTSMaker是一个在线的文本转语音工具&#xff0c; 支持多语言和中文方言&#xff0c;不同的语言和方言单次转换的字符上限从200-10000 不同&#xff0c;转换的效果还不错&#xff0c;听不出明显的AI痕迹。 工具的网址是&#xff1a;https://ttsmaker.cn/。 工具的界面如上&…

    【AI问答】PromQL中interval和rate_interval的区别以及Grafana面板的配置建议

    问题1&#xff1a;interval和rate_interval的区别 在PromQL中确实有 $__rate_interval 这个特殊的变量&#xff0c;它与 $__interval 有不同的用途和计算方式。 $__interval vs $__rate_interval 1. $__interval 含义&#xff1a;Grafana计算出的基本时间间隔计算方式&#xff…

    STM32学习记录--Day5

    今天了解了&#xff1a;中断中断有多个类别包括&#xff1a;USART中断&#xff0c;I2C中断等&#xff1b;并通过NVIC来分配中断的优先级EXTIEXTI的内部结构&#xff1a;EXTI线&#x1f527; ​​一、EXTI系统核心架构​​1. ​​中断源输入&#xff08;左上区域&#xff09;​​…

    CentOS7下同步时间的几种方式(NTP 、Chrony和systemd-timesyncd)

    文章目录前言一、NTP (Network Time Protocol) & ntpd1.原理2. 安装与配置(ntp 包)3.NTPd 优缺点对比二、Chrony1.原理2.安装与配置 (chrony 包)3. 优点4. 缺点三、systemd-timesyncd1.原理2.安装与配置 (systemd 自带)3. 优点4. 缺点四、手动同步工具1.ntpdate(已废弃&…

    Web3:在 VSCode 中基于 Foundry 快速构建 Solidity 智能合约本地开发环境

    相关文章推荐链接Web3专栏https://blog.csdn.net/qq_42392981/category_13016259.html在 VSCode 中基于 Foundry 快速构建 Solidity 智能合约本地开发环境引言1. 开发环境准备&#xff08;Windows&#xff09;1.1 安装 VSCode1.2 安装推荐插件1.3 安装 Foundry1.4 验证 Forge 和…

    Implement recovery based on PITR using dump file and binlog

    模拟生产场景中需要基于某个事务点的恢复&#xff0c;使用存量备份与存量binlog 生成测试数据 (rootlocalhost) [(none)]> create database NanJing; Query OK, 1 row affected (0.01 sec) (rootlocalhost) [test]> use NanJing; Database changed (rootlocalhost) [NanJ…

    HTML-取消div,a等标签点击效果

    一、背景当标签被设置onclick事件之后&#xff0c;在有些手机浏览器中&#xff0c;点击这些标签&#xff0c;会有点击变色效果。想要取消点击变色效果。通过为div和标签元素添加-webkit-tap-highlight-color样式属性&#xff0c;可以有效地解决这一问题二、解决方案已a标签示例…

    VR 三维重建:开启沉浸式体验新时代

    在科技飞速发展的今天&#xff0c;VR&#xff08;虚拟现实&#xff09;技术已经逐渐渗透到我们生活的各个领域&#xff0c;为我们带来了前所未有的沉浸式体验。而 VR 三维重建作为 VR 技术的重要应用之一&#xff0c;更是让人们能够身临其境地感受各种场景&#xff0c;无论是旅…

    iTwinjs 几何 - Curve

    CurvePrimitive 常用的见下 LineSegment3d直线段两点直线边、杆件、骨架LineString3d折线多点连续直线轮廓线、路径Arc3d圆弧 / 椭圆弧圆心 半径 起止角圆孔、圆角、弧段BezierCurve3d贝塞尔曲线端点 控制点平滑过渡、动画轨迹BSplineCurve3dB 样条 / NURBS控制点 节点矢…

    iPhone 恢复出厂设置是否会删除所有内容?

    当你的 iPhone 经常崩溃、出现黑屏死机、卡在加载屏幕上等问题时&#xff0c;你可能会考虑进行恢复出厂设置来修复它。或者在其他情况下&#xff0c;如果你要将使用多年的设备交给新主人&#xff0c;出于安全考虑&#xff0c;也需要进行恢复出厂设置。那么&#xff0c;恢复出厂…

    机器学习②【字典特征提取、文本特征处理(TF-IDF)、数据标准化与归一化、特征降维】

    文章目录先言一、特征工程概述二、特征提取1.字典特征提取&#xff08;特征离散化&#xff09;2.文本特征提取2.1英文文本提取2.2中文文本提取&#xff08;jieba分词器&#xff09;3.TfidfVectorizer TF-IDF文本特征词的重要程度特征提取三、数据归一化与标准化1.MinMaxScaler …

    3、CC3200串口DMA

    先说下CC3200存在2个16*8的fifos, 分别用于发送和接收 当fifos被disable时&#xff0c;将会作为一个1字节深度的保持寄存器&#xff0c; 所以无论fifos是开是关&#xff0c;发送和接收都绕不开fifos DMA 由于发送和接收都绕不过fifos,所以DMA也绕不开FIFOS. MAP_UARTFIFOLevelS…

    从游戏NPC到手术助手:Agent AI重构多模态交互,具身智能打开AGI新大门

    注&#xff1a;此文章内容均节选自充电了么创始人&#xff0c;CEO兼CTO陈敬雷老师的新书《GPT多模态大模型与AI Agent智能体》&#xff08;跟我一起学人工智能&#xff09;【陈敬雷编著】【清华大学出版社】 清华《GPT多模态大模型与AI Agent智能体》书籍配套视频课程【陈敬雷…