抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

回归模型

一个房子的价格取决于多个因素,例如房屋状况,位置,占地面积等

如果仅考虑面积和房龄,可设面积为x1x_1,房龄为x2x_2,价格为yy这样我们就能建立起一套基于x1x_1x2x_2的线性方程来计算yy的值

y^=w1x1+w2x2+b\hat{y}=w_1x_1+w_2x_2+b

其中wiw_i称为权重,bb称为偏差.它们均为标量.模型的输出y^\hat{y}是对真实价格yy的估计,它们之间不可避免地存在误差

模型训练

为了训练上面地回归模型,我们需要收集一些真实地数据,这些数据地集合被称为训练集,其中地某一项被称为样本

假设对于上面的线性回归模型,我们收集了nn个样本,则我们就能通过下面的表达式来计算出预测值

y^(i)=w1x1(i)+w2x2(i)+b\hat{y}^{(i)}=w_1x_1^{(i)}+w_2x_2^{(i)}+b

损失函数

由于估计值不可避免地与实际值存在偏差,为了量化偏差的大小,提出了损失函数的概念,下面的函数能够计算一个样本的偏差

Loss(i)(w1,w2,b)=12(y^(i)y(i))2Loss^{(i)}(w_1,w_2,b)=\frac 1 2 \left ({\hat{y}}^{(i)}-y^{(i)} \right )^2

该函数的实质是方差,前面的系数12\frac 1 2是为了在求导后能够抵消掉平方,使其在形式上更简单

因此,损失函数的值越小,表示估计值越精确.当损失函数为00时,说明估计值完全等于实际值

在计算整个训练集的偏差时,通常用样本误差的平均值来衡量预测质量

Loss(i)(w1,w2,b)=12ni=1n(w1x1(i)+w2x2(i)+by(i))2\begin{array}{ll} &Loss^{(i)}(w_1,w_2,b) \\\\ =&\frac 1 {2n}\sum\limits_{i=1}^{n}\left(w_1x_1^{(i)}+w_2x_2^{(i)}+b-y^{(i)}\right)^2 \end{array}

我们希望通过损失函数来找到一组参数(w1,w2,b)(w_1^*,w_2^*,b^*),使得样本误差平均值最低

(w1,w2,b)=arg minLoss(w1,w2,b)(w_1^*,w_2^*,b^*)=\argmin Loss(w_1,w_2,b)

算法优化

线性回归模型可以通过公式直接求出最佳参数,这种解称为解析解.然而大多数深度学习模型并没有解析解,只能通过有限次迭代来尽可能接近方程的解,这种解称为数值解

设函数f(x)f(x),为了求出f(x)f(x)的零点,可以通过导数来无限逼近.当f(x0)f^{'}(x_0)太大或太小时,说明x0x_0离零点很远,则下一个值x1x_1需要离x0x0更远.当f(x0)f^{'}(x_0)接近00时,说明x0x_0离零点很近,则下一个值x1x_1需要离x0x_0更近

于是我们得到xi+1x_{i+1}xix_i的关系

xi+1=xiηdfdxx_{i+1}=x_i-\frac{\eta df}{dx}

其中ηη称为学习率,它决定了下一个值与导数之间的倍数关系

将该函数推广到多元函数,只需要用偏导数代替导数,就能得到下面的表达式

设函数f(x1,x2,...,xi)f(x_1,x_2,...,x_i),则

xi=xiηfxix_{i}^{'}=x_i-\frac{\eta \partial f}{\partial x_i}

回到我们上面的线性回归方程,我们只需要把模型的参数进行下面的迭代就能得到最佳参数

w1w1ηSiSLoss(i)(w1,w2,b)w1=w1ηSiSx1(i)(x1(i)w1+x2(i)w2+by(i))w2w2ηSiSLoss(i)(w1,w2,b)w2=w2ηSiSx2(i)(x1(i)w1+x2(i)w2+by(i))bbηSiSLoss(i)(w1,w2,b)b=bηSiS(x1(i)w1+x2(i)+by(i))\begin{array}{ll} w_1 &\leftarrow w_1-\frac{\eta}{|S|}\sum\limits_{i\in S}\frac{\partial Loss^{(i)(w_1,w_2,b)}}{\partial w_1} \\\\ &=w_1-\frac{\eta}{|S|}\sum\limits_{i\in S}x_1^{(i)}\left( x_1^{(i)}w_1+x_2^{(i)}w_2+b-y^{(i)}\right) \\\\ w_2 &\leftarrow w_2-\frac{\eta}{|S|}\sum\limits_{i\in S}\frac{\partial Loss^{(i)(w_1,w_2,b)}}{\partial w_2} \\\\ &=w_2-\frac{\eta}{|S|}\sum\limits_{i\in S}x_2^{(i)}\left( x_1^{(i)}w_1+x_2^{(i)}w_2+b-y^{(i)}\right) \\\\ b &\leftarrow b-\frac{\eta}{|S|}\sum\limits_{i\in S}\frac{\partial Loss^{(i)(w_1,w_2,b)}}{\partial b} \\\\ &=b-\frac{\eta}{|S|}\sum\limits_{i\in S}\left( x_1^{(i)}w_1+x_2^{(i)}+b-y^{(i)}\right) \\\\ \end{array}

模型预测

在训练停止时,我们可以得到一组特殊的参数(w1,w2,b)(w_1^*,w_2^*,b^*),这组参数不一定是使损失函数最小化的最优解,而是一组目前最接近最优解的特殊解,将这些参数带入回归方程就能得到预测值

评论