实例引入——房价预测
设想一个房价预测的场景,假设出租房屋的价格受面积、使用年限、地段等因素影响。我们现在有一系列标明价格的房屋的面积、使用年限、地段的信息,还有一些没有标明价格的房屋信息,现在要我们做的就是使用已有的信息,预测未知的房屋价格。
将上述问题抽象为一个回归问题:为一个或多个自变量与因变量建模。
称为线性回归是假设自变量和因变量之间的关系是线性的(即系数是线性的),函数不一定得是一次函数。
线性模型
损失函数
建立完模型之后我们还需要一种度量模型质量的方法。我们可以很直观的想到衡量两点差距的方法是用距离,类似于这样的想法,我们引入损失函数来量化目标的实际值与预测值之间的差距。
定义公式如下:
这里乘以常数1/2是为了之后求导后常系数为1.
由于平方误差的二次方,会导致估计值和观测值之间较大的差异导致更大的损失。我们可以计算训练集n个样本上的损失均值(MSE)
最终,我们的目标就是寻找一组参数(w,b),使得所有训练样本上的总损失最小,即
观测误差(正态分布与平方损失)
上述损失函数是度量的估计值与真实值之间的差距。但,从现实世界采集的数据多多少少都会带点噪声,我们不能完全认为观测到的(采集的)数据就是真实数据(也有可能是噪声)。于是我们可以将线性函数描述成如下的样子:
,其中
因此我们可以写出通过给定的x观测到特定的y的似然:
将极大似然改为最小化负对数似然:
现在我们只需要假设是某个固定常数就可以忽略第一项,第二项除了
外,其余部分和前面介绍的均方误差(损失函数)是一样的。因此,在高斯噪声的假设下,最小化均方误差等价于对线性模型的极大似然估计
随机梯度下降
在前面我们已经得到了度量模型好坏的公式和一个优化方程,现在只需要一个求解参数的办法。前面的损失函数可以看作关于自变量的二次函数,我们知道对方程自变量求导后令导数等于令可以得到函数的一个极值点。其实求损失函数最小就相当于找损失函数的极值点。
随机梯度下降,随机是指每次迭代随机选取小批量的样本进行计算更新参数,梯度就是求导,梯度的含义是某一函数在该点处的方向导数沿着该方向取得最大值(沿梯度的方向走,函数增长的越快,所以要沿梯度的反方向走,才能更快走到最小值处),下降是指我们每次更新参数都是沿着负梯度的方向上更新。
求解步骤如下:
- 初始化模型参数的值
- 对每次迭代,首先随机抽样一个小批量B
- 计算小批量的平均损失关于模型参数的导数
- 将梯度乘以一个预先确定的正数
,并从当前参数的值中减掉
- 不断迭代,直到损失值收敛
公式表示如下: