在线性神经网络中,线性回归是一种常见的任务,用于预测一个连续的数值输出。其目标是根据输入特征来拟合一个线性函数,使得预测值与真实值之间的误差最小化。
线性回归的数学表达式为:y = w1x1 + w2x2 + … + wnxn + b
其中,y表示预测的输出值,x1, x2, …, xn表示输入特征,w1, w2, …, wn表示特征的权重,b表示偏置项。
训练线性回归模型的目标是找到最优的权重和偏置项,使得模型预测的输出与真实值之间的平方差(即损失函数)最小化。这一最优化问题可以通过梯度下降等优化算法来解决。
线性回归在深度学习中也被广泛应用,特别是在浅层神经网络中。在深度学习中,通过将多个线性回归模型组合在一起,可以构建更复杂的神经网络结构,以解决更复杂的问题。
from torch import nn#"nn"是神经网络的缩写net = nn.Sequential(nn.Linear(2,1))#输入维度2,输出维度1
loss = nn.MSELoss()#均分误差函数
#实例化SGD
trainer = torch.optim.SGD(net.parameters(),lr=0.03)#参数、学习率
num_epochs=8
for epoch in range(num_epochs):for X, y in data_iter:#拿出一批量x,yl = 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}')