当前位置: 首页 > news >正文

从“下山”到AI引擎:全面理解梯度下降(下)

📘 梯度下降的学习率选择与线性回归实现 —— 从理论到可视化

✍️ 作者注:本文是学习笔记整理,内容覆盖学习率 α\alphaα 的选择策略、梯度下降的自适应特性,以及在线性回归中的完整实现与可视化。通过直觉、公式和代码,你将全面理解为什么梯度下降是机器学习最核心的优化算法之一。


一、引言:为什么学习率如此重要?

在前面的学习中,我们知道梯度下降的更新公式是:

w:=w−αdJdw w := w - \alpha \frac{dJ}{dw} w:=wαdwdJ

其中,α\alphaα(学习率,Learning Rate) 决定了每一步更新的“步长”。

  • 如果 α\alphaα 过小 → 训练极慢
  • 如果 α\alphaα 过大 → 参数震荡甚至发散
  • 如果 α\alphaα 适中 → 快速收敛,训练高效

可以说,学习率的选择往往决定了梯度下降能否成功


二、极端情况分析:太小 vs 太大

1. 学习率太小 🐢

  • 每次更新几乎看不到效果
  • 收敛需要成千上万次迭代
  • 计算和时间成本非常高

👉 虽然最终能收敛,但效率低下,不推荐。


2. 学习率太大 🚀

  • 更新步长过大,跨过最优解
  • 参数在两边来回震荡
  • 严重时,损失函数不断上升,算法发散

👉 这是灾难性的情况,必须避免。


3. 直观示例

假设当前 w=0w=0w=0,梯度 dJdw=2\frac{dJ}{dw}=2dwdJ=2

  • α=0.1\alpha=0.1α=0.1
    w_new=0−0.1×2=−0.2w\_{\text{new}} = 0 - 0.1 \times 2 = -0.2w_new=00.1×2=0.2 ✅ 合理

  • α=10\alpha=10α=10
    w_new=−20w\_{\text{new}} = -20w_new=20 ❌ 直接跳过碗底


三、理想情况:适中且自动减速

梯度下降有一个“智能”特性:即使学习率固定,算法也能自适应调整步长

阶段梯度大小步长行为
远离最小值快速下降
接近最小值缓慢逼近
到达最小值00自动停止

👉 这意味着:梯度下降不需要我们每一步手动调节学习率,它天然具备收敛性


四、局部最小值与停止条件

当导数为零时,更新公式变为:

wnew=w−α⋅0=w w_{\text{new}} = w - \alpha \cdot 0 = w wnew=wα0=w

  • 参数不再变化
  • 即使继续运行,结果保持不变
  • 算法自然收敛

在实践中,我们通常设置最大迭代次数收敛阈值,避免无限循环。


五、学习率选择策略(实战指南)

学习率行为推荐度
太小收敛慢
太大震荡/发散
适中收敛快、稳定

🔧 调参方法

  1. α=0.01\alpha=0.01α=0.010.0010.0010.001 开始尝试
  2. 观察成本函数下降曲线
  3. 若震荡 → 减小 α\alphaα
  4. 若过慢 → 增大 α\alphaα

六、梯度下降与线性回归结合

线性回归 中,我们的目标是:

f(x)=wx+b f(x) = wx + b f(x)=wx+b

成本函数(均方误差):

J(w,b)=12m∑i=1m(f(x(i))−y(i))2 J(w,b) = \frac{1}{2m}\sum_{i=1}^{m}(f(x^{(i)}) - y^{(i)})^2 J(w,b)=2m1i=1m(f(x(i))y(i))2

对应的偏导数:

∂J∂w=1m∑(f(x(i))−y(i))⋅x(i)∂J∂b=1m∑(f(x(i))−y(i)) \begin{align*} \frac{\partial J}{\partial w} &= \frac{1}{m}\sum (f(x^{(i)}) - y^{(i)}) \cdot x^{(i)} \\ \frac{\partial J}{\partial b} &= \frac{1}{m}\sum (f(x^{(i)}) - y^{(i)}) \end{align*} wJbJ=m1(f(x(i))y(i))x(i)=m1(f(x(i))y(i))

更新公式:

w:=w−α⋅∂J∂wb:=b−α⋅∂J∂b \begin{align*} w &:= w - \alpha \cdot \frac{\partial J}{\partial w} \\ b &:= b - \alpha \cdot \frac{\partial J}{\partial b} \end{align*} wb:=wαwJ:=bαbJ


七、为什么有 12m\frac{1}{2m}2m1

  • 1m\frac{1}{m}m1:取平均,不随样本数变化
  • 12\frac{1}{2}21:求导时抵消平方项的 2,简化计算

👉 让公式更简洁,计算更高效。


八、线性回归算法伪代码

初始化 w=0, b=0
设置学习率 alpha
设置迭代次数 epochs重复直到收敛:计算预测值 y_pred = w*x + b计算误差 err = y_pred - y计算梯度:dw = (1/m) * Σ(err * x)db = (1/m) * Σ(err)更新参数(同步更新):w = w - alpha * dwb = b - alpha * db

九、Python实现

import numpy as np# 数据集:y = 2x + 1
X = np.array([1, 2, 3, 4])
Y = np.array([3, 5, 7, 9])# 初始化
w, b = 0.0, 0.0
alpha = 0.01
epochs = 1000for i in range(epochs):y_pred = w * X + berror = y_pred - Ydw = np.mean(error * X)db = np.mean(error)w -= alpha * dwb -= alpha * dbif i % 200 == 0:cost = np.mean(error ** 2) / 2print(f"迭代{i}: w={w:.4f}, b={b:.4f}, cost={cost:.4f}")print(f"最终结果: w={w:.2f}, b={b:.2f}")

运行结果:w≈2,b≈1w \approx 2, b \approx 1w2,b1


十、可视化梯度下降过程

  1. 拟合直线随迭代变化

    • 初始直线与数据点差距较大
    • 随着更新,逐渐逼近数据
  2. 成本函数下降曲线

    • 起初下降迅速
    • 后期趋于平缓
    • 最终收敛
  3. 等高线图/三维曲面图

    • 展示 $J(w,b)$ 的形状
    • 梯度下降轨迹从高处逐步走向谷底

十一、批量梯度下降(BGD)

  • 每次迭代使用全部样本计算梯度
  • 更新方向更准确
  • 计算成本较高
  • 适合小规模数据集

👉 在后续学习中,还会遇到 随机梯度下降(SGD)小批量梯度下降(Mini-batch SGD)


十二、总结与思考

  1. 学习率决定收敛速度与稳定性
  2. 梯度下降天然具备自适应步长
  3. 线性回归的成本函数是凸函数 → 保证全局最优
  4. 梯度下降是所有机器学习优化的基石

✍️ 结语
梯度下降不仅是数学公式,更是机器学习的灵魂。掌握学习率的选择与线性回归的实现,你就真正迈出了 AI 学习的第一步。 🚀


文章转载自:

http://rOmTS1nV.mdfxn.cn
http://mfr85TJc.mdfxn.cn
http://uIEWxVY8.mdfxn.cn
http://sZqTHySX.mdfxn.cn
http://UGycr8JQ.mdfxn.cn
http://8H564A45.mdfxn.cn
http://tRkpoNgu.mdfxn.cn
http://e4qXEC0T.mdfxn.cn
http://PQd8nAyu.mdfxn.cn
http://iaJDDFRq.mdfxn.cn
http://GyK6lINd.mdfxn.cn
http://I2dRWQTJ.mdfxn.cn
http://I7Y9UxIZ.mdfxn.cn
http://wvotBuX0.mdfxn.cn
http://xovX7fWV.mdfxn.cn
http://bakwXZGX.mdfxn.cn
http://v1Uom8IQ.mdfxn.cn
http://KWXLQIrY.mdfxn.cn
http://Pr5c1L8c.mdfxn.cn
http://BLJd6mGm.mdfxn.cn
http://xjr8vEc8.mdfxn.cn
http://r2Xy3Bdn.mdfxn.cn
http://DBQzasI7.mdfxn.cn
http://7qfTVbcw.mdfxn.cn
http://nU3tXJ99.mdfxn.cn
http://bw6ZP6Nl.mdfxn.cn
http://RcXYQHIy.mdfxn.cn
http://K4A9ldXr.mdfxn.cn
http://P3adDfLU.mdfxn.cn
http://oDLapKky.mdfxn.cn
http://www.dtcms.com/a/369765.html

相关文章:

  • Linux应用(2)——标准/目录IO
  • 问题三ai思路
  • 玳瑁的嵌入式日记D33-0905(IO多路复用)
  • GigaDevice(兆易创新)GD25Q64CSJGR 64Mbit FLASH
  • FEMDRW032G-88A19江波龙,工业级宽温EMMC存储FEMDRW032G采用eMMC5.1协议,具备32GB存储容量提供方案
  • Interior AI-AI驱动的室内设计工具
  • 裸机程序(3)
  • ai连接怡和达进行非标选型 抓包失败
  • 嵌入式系统学习Day31(多路IO复用)
  • vim 常用快捷键汇总
  • 1.进程与线程:区别、通信方式、同步方式
  • The Algorithmic Foundations of Differential Privacy - 4
  • 各种背包问题简述
  • Python反向迭代完全指南:从基础到高性能系统设计
  • CRYPT32!ASN1Dec_SignedDataWithBlobs函数分析之CRYPT32!ASN1Dec_AttributesNC的作用是得到三个证书
  • vcenter管理的4台安装了esxi机器组成的HA,故障后自恢复理解
  • 智慧医疗——解读医院智慧管理分级评估标准体系【附全文阅读】
  • C++ map和set
  • js闭包问题
  • 【教学类-36-10】20240905(通义万相)-A4各种大小的鱼制作“吐泡泡的鱼”01版
  • 【工具变量】上市公司企业海外业务收入数据集(2003-2024年)
  • 从技术选型到现场配置:DDC 楼宇自控系统全流程落地方案(2025 版)
  • 阿里云ecs 2h2g 实际可用内存不足的情况
  • 【React】性能提升方案:Reat.memo, useMemo,useCallback用法详解
  • 文心快码已支持Kimi-K2-0905模型
  • 6.ImGui-颜色(色板)
  • biocmanager安装 库 老是提示网络连接错误 才尝试各种办法
  • 雨后阳光为何更强烈?
  • 数据加盐处理(密码加盐)
  • 本地 Ai 离线视频去水印字幕!支持字幕、动静态水印去除!