深度学习-线性回归

线性回归

线性回归的基本要素:模型、数据集、损失函数、优化函数

模型:为了简单起见,这里我们假设价格只取决于房屋状况的两个因素,即面积(平方米)和房龄(年)。接下来我们希望探索价格与这两个因素的具体关系。线性回归假设输出与各个输入之间是线性关系:price=wareaarea+wageage+bprice=w_{area}⋅area+w_{age}⋅age+b
数据集:我们通常收集一系列的真实数据,例如多栋房屋的真实售出价格和它们对应的面积和房龄。我们希望在这个数据上面寻找模型参数来使模型的预测价格与真实价格的误差最小。在机器学习术语里,该数据集被称为训练数据集(training data set)或训练集(training set),一栋房屋被称为一个样本(sample),其真实售出价格叫作标签(label),用来预测标签的两个因素叫作特征(feature)。特征用来表征样本的特点。
损失函数:在模型训练中,我们需要衡量价格预测值与真实值之间的误差。通常我们会选取一个非负数作为误差,且数值越小表示误差越小。一个常用的选择是平方函数。 它在评估索引为 i 的样本误差的表达式为
索引为 i 的样本误差的表达式为

l(i)(w,b)=12(y^(i)y(i))2l^{(i)}(w,b)=\frac12(\widehat{y}^{(i)}−y^{(i)})^2

L(w,b)=1ni=1nl(i)(w,b)=1ni=1n12(wx(i)+by(i))2L(w,b)=\frac1n\sum_{i=1}^nl^{(i)}(w,b)=\frac1n\sum_{i=1}^n\frac12(w^⊤x^{(i)}+b−y^{(i)})^2

线性回归模型从零开始的实现(能够更好的理解模型和神经网络底层的原理)
使用pytorch的简洁实现(能够更加快速地完成模型的设计与实现)

一、线性回归

判别模型/条件模型:建模预测变量和观测变量之间的关系。
分类:确定性判别模型(对于确定的x,有唯一y,例如y=fθ(x)y=f_\theta (x))和概率判别模型pθ(yx)p_\theta (y|x)
深度学习-线性回归
注意:一维线性回归和二次回归(一种泛化的线性模型)都是线性模型。例:y=θ0+θ1x+θ2x2y=θ_{0}+θ_{1}*x+θ_{2}*x^2仍为线性模型,若有θ1θ2xθ_{1}*θ_{2}*x则不是线性模型。
同时也有二维的线性回归模型:y=θ0+θ1x1+θ2x22y=θ_{0}+θ_{1}*x_{1}+θ_{2}*x_{2}^2
损失函数ι(yi,fθ(xi))\iota(y_{i},f_{\theta}(x_{i}))测量预测值和真实值之间的误差,越小越好。最广泛使用的回归损失函数:平方误差ι(yi,fθ(xi))=12(yifθ(xi))2\iota(y_{i},f_{\theta}(x_{i}))=\frac{1}{2}(y_{i}-f_{\theta}(x_{i}))^2

二、梯度更新方式

01批量梯度下降
其中:η\eta为学习率
深度学习-线性回归
02随机梯度下降
深度学习-线性回归
03小批量梯度下降
算法思想:批量梯度下降和随机梯度下降的结合,应用较广泛
训练步骤:深度学习-线性回归
04基本搜索步骤:随机选择一个新的参数初始化θ;根据数集和梯度算法更新θ;直到走到局部一个最小区域。
凸优化目标函数具有唯一最小点,不同的初始化参数最终也会学习到相同的最优值。
首先来看凸集的概念:
深度学习-线性回归
凸函数定义:深度学习-线性回归
学习率η\eta的选择:
学习率η\eta过小,初始点可能距离最优点太远,收敛速度慢;η\eta过大可能越过最优点,可能不收敛,甚至发散。
解决方法:可以打印出每几个迭代得到的损失JθJ_{θ},若JθJ_{\theta}没有正常下降,调整η\eta
深度学习-线性回归