赞
踩
1、线性回归
模型
为了简单起见,这里我们假设价格只取决于房屋状况的两个因素,即面积(平方米)和房龄(年)。接下来我们希望探索价格与这两个因素的具体关系。线性回归假设输出与各个输入之间是线性关系:
损失函数
在模型训练中,我们需要衡量价格预测值与真实值之间的误差。通常我们会选取一个非负数作为误差,且数值越小表示误差越小。一个常用的选择是平方函数。 它在评估索引为i的损失函数为i的样本误差的表达式为:
优化函数 - 随机梯度下降
在求数值解的优化算法中,小批量随机梯度下降(mini-batch stochastic gradient descent)在深度学习中被广泛使用。它的算法很简单:先选取一组模型参数的初始值,如随机选取;接下来对参数进行多次迭代,使每次迭代都可能降低损失函数的值。在每次迭代中,先随机均匀采样一个由固定数目训练数据样本所组成的小批量(mini-batch)β, 然后求小批量中数据样本的平均损失有关模型参数的导数(梯度),最后用此结果与预先设定的一个正数的乘积作为模型参数在本次迭代的减小量。
学习率:η 代表在每次优化中,能够学习的步长的大小
批量大小: B是小批量计算中的批量大小batch size
pytorch命令
gather:
y.gather(dim = ,index = ) dim =1表示按行寻找 index表示索引为几的位置
yield 可看做 return
view可看做reshape
一个元素张量用item()可以得到元素值
w = torch.tensor(np.random.normal(0, 0.01, (num_inputs, 1)), dtype=torch.float32) #初始化w
b = torch.zeros(1, dtype=torch.float32) #初始化b
w.requires_grad_(requires_grad=True) #求w梯度
b.requires_grad_(requires_grad=True) #b的梯度
y_hat = torch.mm(X, w) + b #线性模型
loss = (y_hat - y.view(y_hat.size())) ** 2 / 2 #损失值
loss.backward() #反向传播
torch.tensor(np.random.normal(0, 0.01, size=labels.size()), dtype=torch.float)
sotfmax分类
softmax主要解决问题:
1.由于输出层的输出值的范围不确定,难以直观上判断这些值的意义。例如,模型输出值10表示“很置信”图像类别为猫,因为该输出值是其他两类的输出值的100倍。但如果,那么输出值10却又表示图像类别为猫的概率很低。
2.另一方面,由于真实标签是离散值,这些离散值与不确定范围的输出值之间的误差难以衡量。
softmax分类模型矢量计算表达式为:
交叉熵损失函数:
print(X.sum(dim=0, keepdim=True)) #dim=0表示按列求和,dim=1表示按行 keepdim表示是否按原来的维度保留行特征或者列特征
多层感知机
激活函数包括:
1、relu激活函数 范围[0,+∞)
2、sigmoid激活函数 范围(0,1)
3、tanh激活函数 范围(-1,1)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。