在深度学习入门之旅中,线性回归是叩响算法大门的第一块基石。它不仅是最简单的机器学习模型,更是理解梯度下降、模型训练、效果评估的核心载体。本文将基于 PyTorch 完整实现线性回归,手把手带你绘制损失曲线、样本散点、拟合折线,彻底吃透模型训练的全流程。

一、前期准备:线性回归代码基底已就绪

在开始可视化分析前,我们已经完成 PyTorch 线性回归的核心代码编写:构建数据集、定义模型、设置损失函数与优化器、执行 100 轮迭代训练,得到了训练后的权重w、偏置b,以及每轮迭代的平均损失loss_list

接下来的核心工作,是通过可视化直观呈现模型训练效果,让抽象的算法逻辑变成可感知的图形结果。


二、第一步:绘制损失曲线——洞察模型收敛速度

模型训练的核心目标是最小化损失值,损失曲线则是衡量模型收敛快慢、训练是否有效的关键依据。

1. 核心代码实现


import matplotlib.pyplot as plt
# 训练轮数:100轮
epochs = range(100)
# 绘制损失曲线
plt.plot(epochs, loss_list, color='#1f77b4', linewidth=2)
# 设置图表标题
plt.title('Loss Value Curve During Training', fontsize=14)
# 添加网格,提升可读性
plt.grid(True, linestyle='--', alpha=0.7)
# 展示图像
plt.show()

2. 损失曲线特征分析

我们可以用 Mermaid 流程图清晰展示损失曲线的变化规律:

训练开始

前40轮

损失快速下降
梯度下降效率最高

40轮之后

损失下降趋缓
模型逐步收敛

100轮训练结束
损失趋于稳定

图表说明:线性回归模型在训练初期,参数与最优值差距较大,梯度下降速度极快,损失值断崖式下跌;随着迭代次数增加,参数逐渐逼近最优解,梯度变小,损失下降速度放缓,最终趋于平稳。

3. 优化方向:动态学习率

当前代码使用固定学习率,这也是后期收敛变慢的原因之一。

  • 前期(0-40 轮):可设置较大学习率,加速参数更新,减少迭代次数;

  • 后期(40 轮之后):需设置较小学习率,精细调整参数,避免模型震荡。

该优化方案将在进阶课程中详细讲解,大幅提升模型训练效率。


三、第二步:样本点与拟合线——验证模型预测能力

仅看损失曲线不够直观,绘制样本点与预测拟合线,才能直接判断模型对数据的拟合效果。

1. 绘制原始样本散点图

原始数据集包含 100 个样本点(x, y),用散点图呈现数据分布,是拟合分析的基础。


# 绘制样本散点图
plt.scatter(x, y, color='#ff7f0e', s=50, alpha=0.6, label='Original Sample Points')
plt.grid(True, linestyle='--', alpha=0.7)
plt.legend()
plt.show()

关键说明:若不重新调用plt.show(),样本点会与损失曲线绘制在同一张图中;分开调用plt.show(),可生成两张独立图表,清晰区分不同可视化结果。

2. 计算预测值与真实值

拟合线的核心是基于训练参数计算预测值,基于初始参数计算真实值


import torch
# 计算模型预测值(训练后的w、b)
y_pred = torch.tensor([v * w + b for v in x])
# 计算真实值(初始权重27.478,初始偏置14.5)
y_true = torch.tensor([v * 27.478 + 14.5 for v in x])
  • y_pred:模型通过 100 轮训练学到的预测结果;

  • y_true:数据原始的真实标签,用于对比评估。

3. 绘制拟合对比折线图

将预测值与真实值放在同一张图中,直观展示拟合效果:


# 绘制预测值折线(红色)
plt.plot(x, y_pred, color='#d62728', linewidth=2.5, label='Predict Value')
# 绘制真实值折线(蓝色)
plt.plot(x, y_true, color='#1f77b4', linewidth=2.5, label='True Value')
# 添加图例
plt.legend(fontsize=12)
# 添加网格
plt.grid(True, linestyle='--', alpha=0.7)
plt.show()

4. 拟合效果深度分析

我们用表格量化对比 100 轮训练后的模型效果:

指标 数值表现 效果判定
预测值与真实值偏差 极小,近乎重合 优秀
100 轮训练收敛状态 完全收敛 合格
泛化能力 适配样本分布 良好
核心结论:仅 100 轮训练,模型就实现了高精度拟合;若将训练轮数提升至 500 轮,预测值会无限逼近真实值,偏差进一步缩小。

四、底层逻辑:AI 三要素的完美体现

本次线性回归实战,完美印证了人工智能的核心公式:

📌 人工智能 = 数据 + 算法 + 算力

  1. 数据:100 个样本点决定了模型的学习上限,数据质量直接影响拟合效果;

  2. 算法:线性回归+梯度下降+损失计算,是驱动模型优化的核心逻辑;

  3. 算力:迭代轮数、批量大小依赖算力支撑,轮数越多,效果越精准。


五、总结与进阶展望

1. 核心流程回顾

  1. 准备数据集 → 定义模型→设置损失与优化器→模型训练;

  2. 绘制损失曲线,观察收敛速度;

  3. 计算预测值与真实值,绘制拟合图,评估效果。

2. 关键知识点

  • PyTorch 不仅能实现线性回归,更是分类任务的主流框架;

  • 固定学习率存在收敛瓶颈,动态学习率是优化关键;

  • 可视化是评估模型效果最直观、最高效的手段。

3. 进阶方向

下一站,我们将走进神经元与激活函数,从线性模型进阶到非线性模型,解锁深度学习更强大的表达能力,敬请期待!


PyTorch 线性回归实战:从损失曲线到拟合效果全解析

要不要我帮你把这篇博客适配成公众号排版格式,加上小标题、表情符号和代码高亮?

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐