1_线性回归

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

线性回归的基本要素

模型:这里我们假设价格只取决于房屋状况的两个因素,即面积area(平方米)和房龄age(年)。接下来我们希望探索价格与这两个因素的具体关系,线性回归假设输出与各个输入之间是线性关系。

数据集:我们通常收集一系列的真实数据,例如多栋房屋的真实售出价格和它们对应的面积和房龄。我们希望在这个数据上面寻找模型参数来使模型的预测价格与真实价格的误差最小。在机器学习术语里,该数据集被称为训练数据集(training data set)或训练集(training set),一栋房屋被称为一个样本(sample),其真实售出价格叫作标签(label),用来预测标签的两个因素叫作特征(feature)。特征用来表征样本的特点。

损失函数:在模型训练中,我们需要衡量价格预测值与真实值之间的误差。通常我们会选取一个非负数作为误差,且数值越小表示误差越小。一个常用的选择是平方函数。

优化函数:当模型和损失函数形式较为简单时,上面的误差最小化问题的解可以直接用公式表达出来。这类解叫作解析解(analytical solution)。本节使用的线性回归和平方误差刚好属于这个范畴。然而,大多数深度学习模型并没有解析解,只能通过优化算法有限次迭代模型参数来尽可能降低损失函数的值。这类解叫作数值解(numerical solution)。

在求数值解的优化算法中,小批量随机梯度下降(mini-batch stochastic gradient descent)在深度学习中被广泛使用。它的算法很简单:先选取一组模型参数的初始值,如随机选取;接下来对参数进行多次迭代,使每次迭代都可能降低损失函数的值。在每次迭代中,先随机均匀采样一个由固定数目训练数据样本所组成的小批量(mini-batch)\mathcal{B},然后求小批量中数据样本的平均损失有关模型参数的导数(梯度),最后用此结果与预先设定的一个正数的乘积作为模型参数在本次迭代的减小量。

学习率: \mathcal{B}代表在每次优化中,能够学习的步长的大小

批量大小: \eta是小批量计算中的批量大小batch size

总结一下,优化函数的有以下两个步骤:

(i)初始化模型参数,一般来说使用随机初始化;

(ii)我们在数据上迭代多次,通过在负梯度方向移动参数来更新每个参数。

线性回归模型从零开始的实现

生成数据集

使用线性模型\mathrm{price} = w_{\mathrm{area}} \cdot \mathrm{area} + w_{\mathrm{age}} \cdot \mathrm{age} + b来生成数据集,生成一个1000个样本的数据集。

生成数据集

使用图像来展示生成的数据

数据集可视化

读取数据集

读取数据集

初始化模型参数

初始化模型参数

定义模型

定义线性模型

定义损失函数

定义均方差损失函数

定义优化函数

定义小批量随机梯度下降函数

训练

训练模型
训练结果

线性回归模型使用pytorch的简洁实现

pytorch模块设置

生成数据集

同上。

读取数据集

使用dataloader读取数据集

定义模型

定义线性模型
多层模型

初始化模型参数

初始化模型参数
查看参数

定义损失函数

定义损失函数

定义优化函数

定义优化函数

训练

训练
训练结果

两种实现方式的比较

1. 从零开始的实现(推荐用来学习):能够更好的理解模型和神经网络底层的原理

2. 使用pytorch的简洁实现:能够更加快速地完成模型的设计与实现

作业


最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

友情链接更多精彩内容