news 2026/4/24 7:35:33

小批量梯度下降(MBGD)手算教程:以房价预测为例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小批量梯度下降(MBGD)手算教程:以房价预测为例

本教程将通过一个完整的、逐步手算的例子,带你彻底理解小批量梯度下降(Mini-Batch Gradient Descent, MBGD)算法的工作原理。我们将使用一个简化的房价预测模型,并展示模型参数是如何在一轮训练中被更新的。

一、问题定义与场景设定

我们的目标是训练一个线性回归模型来预测房价。

1. 模型公式
我们假设房价(yyy)由三个特征线性决定:房龄(x1x_1x1)、面积(x2x_2x2)和房间数(x3x_3x3)。模型公式如下:
y^=w1x1+w2x2+w3x3+b \hat{y} = w_1 x_1 + w_2 x_2 + w_3 x_3 + by^=w1x1+w2x2+w3x3+b
其中,y^\hat{y}y^是模型的预测房价,我们的目标是学习到最佳的参数w1,w2,w3w_1, w_2, w_3w1,w2,w3bbb

2. 待学习参数
模型共有4 个需要学习的参数:

  • w1w_1w1: 房龄的权重
  • w2w_2w2: 面积的权重
  • w3w_3w3: 房间数的权重
  • bbb: 偏置项(可以理解为基准房价)

3. 训练数据
我们有一个包含6个样本的微型数据集:

样本房龄 (x1x_1x1)面积 (x2x_2x2)房间数 (x3x_3x3)真实房价 (yyy)
15902200
231003280
310702150
411203350
58802180
621103320

4. 超参数设置
在开始训练前,我们需要设定几个关键的超参数:

  • 小批量大小 (Batch Size):2。这意味着我们每次会使用2个样本进行计算和参数更新。
  • 学习率 (Learning Rate,η\etaη):0.0001。它控制了我们每次更新参数的步长大小。
  • 初始参数:为了简化计算,我们将所有参数的初始值设为0:w1=0,w2=0,w3=0,b=0w_1=0, w_2=0, w_3=0, b=0w1=0,w2=0,w3=0,b=0
二、核心计算原理

MBGD的核心思想是:每次从数据集中取出一个小批量(Mini-Batch)的样本,计算这个小批量上所有样本的平均梯度,然后用这个平均梯度来更新模型参数。

1. 损失函数 (Loss Function)
我们使用均方误差(MSE)的变体作为损失函数,来衡量单个样本的预测误差。对于单个样本,其损失为:
loss=12(y^−y)2 loss = \frac{1}{2} (\hat{y} - y)^2loss=21(y^y)2
(公式中的12\frac{1}{2}21是为了在求导时简化计算)

2. 梯度计算 (Gradient Calculation)
梯度指明了损失函数增长最快的方向,我们需要沿着梯度的反方向更新参数以降低损失。对于单个样本,其损失函数对每个参数的偏导数(即梯度)如下:

  • 令误差e=y^−ye = \hat{y} - ye=y^y
  • ∂loss∂w1=e⋅x1\frac{\partial loss}{\partial w_1} = e \cdot x_1w1loss=ex1
  • ∂loss∂w2=e⋅x2\frac{\partial loss}{\partial w_2} = e \cdot x_2w2loss=ex2
  • ∂loss∂w3=e⋅x3\frac{\partial loss}{\partial w_3} = e \cdot x_3w3loss=ex3
  • ∂loss∂b=e\frac{\partial loss}{\partial b} = ebloss=e

提问:为什么等于e⋅x1e \cdot x_1ex1,这是通过链式法则求出来的。

∂loss∂w1=∂loss∂e⋅∂e∂y^⋅∂y^∂w1\frac{\partial loss}{\partial w_1} = \frac{\partial loss}{\partial e} \cdot \frac{\partial e}{\partial \hat{y}} \cdot \frac{\partial \hat{y}}{\partial w_1}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 7:35:24

收入分析包含哪些内容?全面收入分析如何助力企业经营?

又是一年财报季,你是不是又在为整理乱七八糟的营收数据头疼?各个部门报上来的数字对不上,销售说业绩大涨,财务算出来却根本不是那么回事。我做了这么多年数据分析,接触了上百家企业后发现,收入分析做得好不…

作者头像 李华
网站建设 2026/4/24 7:33:21

Yolov8安装教程超详细不踩坑版本

Yolov8 安装教程超详细不踩坑1 创建环境,打开终端2 激活环境3 官网安装 pytorch4 验证安装成功5 YOLOv8的安装6 打开项目,选择刚刚创建的yolov8环境7 安装yolov8源码8 验证yolov8安装成功9 模型的测试10 试试修改源码测试1 创建环境,打开终端…

作者头像 李华
网站建设 2026/4/24 7:27:17

怎样5分钟搞定游戏插件框架:BepInEx实用安装手册

怎样5分钟搞定游戏插件框架:BepInEx实用安装手册 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx 如果你想让Unity游戏拥有更多自定义功能、模组或插件,那么…

作者头像 李华
网站建设 2026/4/24 7:24:48

从“傻小子”到“贴心助手”:大模型背后那三场训练课

你相信吗?今天能陪你聊天、帮你写代码的AI,最初只是一个只会“猜下一个字”的傻小子。它到底经历了怎样的“魔鬼训练”,才变得这么懂你?答案全在这三堂课里。一、先说个笑话:AI的“幼年”是啥样?想象一下&a…

作者头像 李华