给定一个数据点集合
X
X
X和对应的目标值
y
y
y,线性模型的目标就是找到一条使用向量
w
w
w和位移
b
b
b描述的线,来尽可能地近似每个样本
X
[
i
]
X[i]
X[i]和
y
[
i
]
y[i]
y[i]。用数学符号来表示就是:
y
^
=
X
w
+
b
\hat{y} = Xw + b
y^=Xw+b
并最小化所有数据点上的平方误差
∑
i
=
1
n
(
y
^
i
−
y
i
)
2
.
\sum_{i=1}^n (\hat{y}_i-y_i)^2.
i=1∑n(y^i−yi)2.
接下来,一起来写一个线性回归模型,然后再通过 nn 包构建一个线性回归模型。
用torch.nn来构建模型
在PyTorch中 nn 包定义了一系列基本组件,这些组件(Modules)涵盖了大部分构建神经网络会使用的各种层。一个组件(Modules)的输入是Variable,经过组件之后,输出又是另一个 Variable。
当然nn包中还包含了大部分我们平时使用的损失函数。
最后torch.optim中还含有很多我们平时使用的优化算法,用来更新梯度。(我们上面使用的就是梯度下降法,只不过上面是我们自己手写,现在可以直接调用了)
刚才,我们使用的是Tensor和autograd来构建线性回归的模型,现在,我们来使用torch.nn来快速构建一个线性回归模型.