线性回归
背景
李沐老师做了一个背景介绍,说美国买房需要竞价。所以根据别人的出价,那么我自己出多少合适。就需要预测价格的走势。这就需要线性回归。
简化模型
设置一个简化的模型说房价和房间数,卫生间数,居住面积有关。那么线性回归的目的就是需要求出每个x前面的w参数和b常数。
向量版本
拓展到一个n维的向量。那么线性模型就变成了向量版本。
单层神经网络
线性模型可以看做是一个单层神经网络,输入是每个自变量x输出为房价o,然后每条线上表示这个向量的权重。
损失函数
如何衡量真实值和训练的估计值之间的损失。那么需要损失函数来表示。常用的损失函数是平方损失。
训练数据的采集
收集一些数据作为这个训练样本。越多越好,这样可以更好的拟合出参数。
参数学习
那么需要计算预测值和真实值之间的平均损失来衡量损失函数。目标是使得损失函数最小。
线性函数的显示解
因为这是线性模型,所以损失是凸函数。那么就有最优解。但是在机器学习中,不关心有显示解的函数。只关心完全NP难问题。
总结
基础优化函数
梯度下降
随机选一个参数的初始值,随后求解损失函数关于w的梯度(在这一点下降最快的方向)。
η
\eta
η是学习步长。是个超参数,太短了也不好(非常消耗计算资源,在机器学习中计算梯度是最昂贵的地方,所以少用),太长了也不好(太长了容易过拟合和快速收敛)。
这里是随机采样b个样本来近似损失函数。称为小批量随机梯度下降。所有在学习的时候,计算损失函数时,会选取一个batch而不是整个样本。
同样的选择批量大小不能太大也不能太小。
detach
在pytorch里面每个张量需要从图中detach出来才能去转为numpy
yield
每次返回一个 x和y直到所有的都返回为止。
epoch
表示将整个数据扫描epoch次
with关键字
with表示try-finally的意思。表示测试
另外有一个从0开始实现版本,和使用工具包实现版本。视频里都有。重要的是理解,测试集的生成,网络模型中权重和参数的定义损失函数的定义,超参数的定义,模型的训练。以及最后损失函数输出的过程。理解清楚之后,万变不离其宗。