PyTorch 线性回归实战:从损失曲线到拟合效果全解析
🔥PyTorch 线性回归实战:从损失曲线到拟合效果全解析
在深度学习入门之旅中,线性回归是叩响算法大门的第一块基石。它不仅是最简单的机器学习模型,更是理解梯度下降、模型训练、效果评估的核心载体。本文将基于 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 流程图清晰展示损失曲线的变化规律:
图表说明:线性回归模型在训练初期,参数与最优值差距较大,梯度下降速度极快,损失值断崖式下跌;随着迭代次数增加,参数逐渐逼近最优解,梯度变小,损失下降速度放缓,最终趋于平稳。
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 三要素的完美体现
本次线性回归实战,完美印证了人工智能的核心公式:
📌 人工智能 = 数据 + 算法 + 算力
-
数据:100 个样本点决定了模型的学习上限,数据质量直接影响拟合效果;
-
算法:线性回归+梯度下降+损失计算,是驱动模型优化的核心逻辑;
-
算力:迭代轮数、批量大小依赖算力支撑,轮数越多,效果越精准。
五、总结与进阶展望
1. 核心流程回顾
-
准备数据集 → 定义模型→设置损失与优化器→模型训练;
-
绘制损失曲线,观察收敛速度;
-
计算预测值与真实值,绘制拟合图,评估效果。
2. 关键知识点
-
PyTorch 不仅能实现线性回归,更是分类任务的主流框架;
-
固定学习率存在收敛瓶颈,动态学习率是优化关键;
-
可视化是评估模型效果最直观、最高效的手段。
3. 进阶方向
下一站,我们将走进神经元与激活函数,从线性模型进阶到非线性模型,解锁深度学习更强大的表达能力,敬请期待!

要不要我帮你把这篇博客适配成公众号排版格式,加上小标题、表情符号和代码高亮?
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)