线性回归
线性回归的基本要素
模型定义
模型训练(训练数据 损失函数 优化算法)
模型预测
线性回归的表示方法
神经网络图(单层神经网络)
矢量计算表达式
import torch
from time import time
a=torch.ones(1000)
b=torch.ones(1000)
start=time()
c=torch.zeros(1000)
for i in range(1000):
c[i]=a[i]+b[i]
print(time()-start)
0.008514165878295898
start=time()
d=a+b
print(time()-start)
0.0
𝑦̂ (1)=𝑥(1)1𝑤1+𝑥(1)2𝑤2+𝑏, 𝑦̂ (2)=𝑥(2)1𝑤1+𝑥(2)2𝑤2+𝑏, 𝑦̂ (3)=𝑥(3)1𝑤1+𝑥(3)2𝑤2+𝑏.
a=torch.ones(3)
b=10
print(a+b)
tensor([11., 11., 11.])
广义上讲,当数据样本数为n ,特征数为d时,线性回归的矢量计算表达式为
𝒚̂ =𝑿𝒘+𝑏
其中模型输出 批量数据样本特征 ,权重 , 偏差 。相应地,批量数据样本标签 。设模型参数 ,我们可以重写损失函数为
ℓ(𝜽)=12𝑛(𝒚̂ −𝒚)⊤(𝒚̂ −𝒚)
小批量随机梯度下降的迭代步骤将相应地改写为
𝜽←𝜽−𝜂||∑𝑖∈∇𝜽ℓ(𝑖)(𝜽),
其中梯度是损失有关3个为标量的模型参数的偏导数组成的向量:
∇𝜽ℓ(𝑖)(𝜽)=[∂ℓ(𝑖)(𝑤1,𝑤