深度学习 (线性回归 简洁实现)

介绍:

在线性神经网络中,线性回归是一种常见的任务,用于预测一个连续的数值输出。其目标是根据输入特征来拟合一个线性函数,使得预测值与真实值之间的误差最小化。

线性回归的数学表达式为:

y = w1x1 + w2x2 + ... + wnxn + b

其中,y表示预测的输出值,x1, x2, ..., xn表示输入特征,w1, w2, ..., wn表示特征的权重,b表示偏置项。

训练线性回归模型的目标是找到最优的权重和偏置项,使得模型预测的输出与真实值之间的平方差(即损失函数)最小化。这一最优化问题可以通过梯度下降等优化算法来解决。

线性回归在深度学习中也被广泛应用,特别是在浅层神经网络中。在深度学习中,通过将多个线性回归模型组合在一起,可以构建更复杂的神经网络结构,以解决更复杂的问题。

深度学习 线性神经网络(线性回归 从零开始实现)-CSDN博客

生成数据集:

python 复制代码
import numpy as np
import torch
from torch.utils import data
from d2l import torch as d2l

true_w = d2l.tensor([2, -3.4])
true_b = 4.2
features, labels = d2l.synthetic_data(true_w, true_b, 1000)

读取小批量数据集:

python 复制代码
#选取小批量样本
def load_array(data_arrays,batch_size,is_train=True):
    dataset = data.TensorDataset(*data_arrays)
    return data.DataLoader(dataset,batch_size,shuffle=is_train)

定义模型:

python 复制代码
from torch import nn#"nn"是神经网络的缩写

net = nn.Sequential(nn.Linear(2,1))#输入维度2,输出维度1

定义损失函数:

python 复制代码
loss = nn.MSELoss()#均分误差函数

定义优化函数(实例化SGD):

python 复制代码
#实例化SGD
trainer = torch.optim.SGD(net.parameters(),lr=0.03)#参数、学习率

模型训练:

python 复制代码
num_epochs=8
for epoch in range(num_epochs):
    for X, y in data_iter:#拿出一批量x,y
        l = loss(net(X), y)  # X和y的小批量损失,实际的和预测的
        trainer.zero_grad()
        l.backward()
        trainer.step()  # 使用参数的梯度更新参数
    l = loss(net(features),labels)
    print(f'epoch {epoch + 1}, loss {l:f}')

'''
epoch 1, loss 0.000175
epoch 2, loss 0.000096
epoch 3, loss 0.000095
epoch 4, loss 0.000095
epoch 5, loss 0.000095
epoch 6, loss 0.000095
epoch 7, loss 0.000095
epoch 8, loss 0.000096
'''

print(net[0].weight)
'''
Parameter containing:
tensor([[ 2.0004, -3.3990]], requires_grad=True)
'''

print(net[0].bias)
'''
Parameter containing:
tensor([4.2007], requires_grad=True)

'''
相关推荐
康康的AI博客5 小时前
腾讯王炸:CodeMoment - 全球首个产设研一体 AI IDE
ide·人工智能
中达瑞和-高光谱·多光谱5 小时前
中达瑞和LCTF:精准调控光谱,赋能显微成像新突破
人工智能
mahtengdbb15 小时前
【目标检测实战】基于YOLOv8-DynamicHGNetV2的猪面部检测系统搭建与优化
人工智能·yolo·目标检测
Pyeako5 小时前
深度学习--BP神经网络&梯度下降&损失函数
人工智能·python·深度学习·bp神经网络·损失函数·梯度下降·正则化惩罚
清 澜6 小时前
大模型面试400问第一部分第一章
人工智能·大模型·大模型面试
哥布林学者6 小时前
吴恩达深度学习课程五:自然语言处理 第二周:词嵌入(四)分层 softmax 和负采样
深度学习·ai
不大姐姐AI智能体6 小时前
搭了个小红书笔记自动生产线,一句话生成图文,一键发布,支持手机端、电脑端发布
人工智能·经验分享·笔记·矩阵·aigc
虹科网络安全6 小时前
艾体宝方案 | 释放数据潜能 · 构建 AI 驱动的自动驾驶实时数据处理与智能筛选平台
人工智能·机器学习·自动驾驶
Deepoch7 小时前
Deepoc数学大模型:发动机行业的算法引擎
人工智能·算法·机器人·发动机·deepoc·发动机行业