回归模型
一个房子的价格取决于多个因素,例如房屋状况,位置,占地面积等
如果仅考虑面积和房龄,可设面积为x1,房龄为x2,价格为y这样我们就能建立起一套基于x1和x2的线性方程来计算y的值
y^=w1x1+w2x2+b
其中wi称为权重,b称为偏差.它们均为标量.模型的输出y^是对真实价格y的估计,它们之间不可避免地存在误差
模型训练
为了训练上面地回归模型,我们需要收集一些真实地数据,这些数据地集合被称为训练集,其中地某一项被称为样本
假设对于上面的线性回归模型,我们收集了n个样本,则我们就能通过下面的表达式来计算出预测值
y^(i)=w1x1(i)+w2x2(i)+b
损失函数
由于估计值不可避免地与实际值存在偏差,为了量化偏差的大小,提出了损失函数的概念,下面的函数能够计算一个样本的偏差
Loss(i)(w1,w2,b)=21(y^(i)−y(i))2
该函数的实质是方差,前面的系数21是为了在求导后能够抵消掉平方,使其在形式上更简单
因此,损失函数的值越小,表示估计值越精确.当损失函数为0时,说明估计值完全等于实际值
在计算整个训练集的偏差时,通常用样本误差的平均值来衡量预测质量
=Loss(i)(w1,w2,b)2n1i=1∑n(w1x1(i)+w2x2(i)+b−y(i))2
我们希望通过损失函数来找到一组参数(w1∗,w2∗,b∗),使得样本误差平均值最低
(w1∗,w2∗,b∗)=argminLoss(w1,w2,b)
算法优化
线性回归模型可以通过公式直接求出最佳参数,这种解称为解析解.然而大多数深度学习模型并没有解析解,只能通过有限次迭代来尽可能接近方程的解,这种解称为数值解
设函数f(x),为了求出f(x)的零点,可以通过导数来无限逼近.当f′(x0)太大或太小时,说明x0离零点很远,则下一个值x1需要离x0更远.当f′(x0)接近0时,说明x0离零点很近,则下一个值x1需要离x0更近
于是我们得到xi+1与xi的关系
xi+1=xi−dxηdf
其中η称为学习率,它决定了下一个值与导数之间的倍数关系
将该函数推广到多元函数,只需要用偏导数代替导数,就能得到下面的表达式
设函数f(x1,x2,...,xi),则
xi′=xi−∂xiη∂f
回到我们上面的线性回归方程,我们只需要把模型的参数进行下面的迭代就能得到最佳参数
w1w2b←w1−∣S∣ηi∈S∑∂w1∂Loss(i)(w1,w2,b)=w1−∣S∣ηi∈S∑x1(i)(x1(i)w1+x2(i)w2+b−y(i))←w2−∣S∣ηi∈S∑∂w2∂Loss(i)(w1,w2,b)=w2−∣S∣ηi∈S∑x2(i)(x1(i)w1+x2(i)w2+b−y(i))←b−∣S∣ηi∈S∑∂b∂Loss(i)(w1,w2,b)=b−∣S∣ηi∈S∑(x1(i)w1+x2(i)+b−y(i))
模型预测
在训练停止时,我们可以得到一组特殊的参数(w1∗,w2∗,b∗),这组参数不一定是使损失函数最小化的最优解,而是一组目前最接近最优解的特殊解,将这些参数带入回归方程就能得到预测值