#Datawhale X 李宏毅苹果书 AI夏令营#1.2了解线性模型

1.2线性模型

什么是线性模型?

初始模型y=100+0.97x_{1},

其中y表示观看人数,x1表示前一天的观看人数,这个模型就是在用前一天的观看人数来预测当前的观看人数。

模型改进:

然而真实的数据是有周期性的,每隔7天,一个循环。这样只使用前一天的数据来预测就显得不准确,我们应该考虑7天的数据。

这样我们便有了第二个模型:

 这个模型考虑了前七天的数据,做了一个参数的加权求和,再加上偏置项。

如果我们使用28天的数据来预测呢?

这就有了第3个模型:

 如果我们使用更多的数据,56天的数据呢?这就有了第4个模型:

总结:以上4个模型都是线性模型,且随着我们使用的数据越多,模型预测的越准确,

损失比较:

模型训练损失未见过数据上的损失
初始模型1480580
模型2(7天)380490
模型3(28天)330460
模型4(56天)320460

随着我们使用数据的增加,训练损失和验证损失都在减少,到一定程度后,验证损失不在减小,表明仅靠增加数据,模型已达到上限。

这4个模型都是线性模型,我们就此给出线性模型的定义:

“这些模型都是把输入的特征x乘上一个权重,再加上一个偏置就得到预测的结果,这样的模型称为线性模型(linear model)。”

分段线性曲线

线性模型是最简单的模型之一。这种模型存在局限性。线性模型只能模拟简单的线性关系,无法模拟复杂的非线性关系,然后现实中的问题通常是复杂的。是非线性的,这就需要一个更复杂、更有灵活性的模型。

所以我们需要对线性模型进行改进。一个非线性函数可以用多段线性曲线来逼近。

我们先举一个割圆术的例子,使用正切多边形逼近圆形是一个非常好的类比,可以帮助我们理解如何使用分段线性曲线来逼近非线性关系。理论上来说,只有多边形取得足够多,那么就可以无限接近圆,我们需要建立这种思想。

 回到我们非线性曲线。下面两张图是书本中的原图。

 图1的这条红色曲线,我们可以把它看作是由下面几段蓝色曲线叠加得到的,如果不理解的话,那么换个说法,这们可以把红色曲线看到是由自身的三段折线叠加组合而成。推广开来,对于右图中的黑色曲线,我们同样可以把他看作是由无数多的折线叠加而成的。这个思想可以参考割圆术。

那么使用分段曲线,理论上我们可以叠加得到任何形式的曲线,只要我们每一段折线取得够短。

这样我们就可以使用分段线性曲线叠加来表示一个非线性曲线了。随着线性段数量的增加,分段线性曲线能够更好地逼近非线性关系。类似于多边形逼近圆形的过程,分段线性曲线最终可以逼近任意连续曲线。

这里进一步,我们可以用Sigmoid函数来代替Hard Sigmoid(也就是图中的蓝色折线段),那么我们连续曲线可以是有多段Sigmoid函数叠加得到的。

模型变形

这里我们还可以进一步对模型进行变形,前面我们已经尝试了Hard Sigmoid和Sigmoid函数,我们可以替换成ReLU函数。

ReLU函数:

ReLU(x)=max⁡(0,x),如果 x<0,输出为 0;否则输出为 x。

同样一段非线性曲线可以是由多个ReLU函数叠加得到。

接下来是书中提到的一些概念。

激活函数:在机器学习里面,Sigmoid 或 ReLU 称为激活函数(activation function)。

神经网络:Sigmoid 或 ReLU 称为神经元(neuron),很多的神经元称为神经网络 (neural network)。

隐藏层:每一排称为一层,称为隐藏层(hidden layer),很多的隐藏层就“深”,这套技术称为深度学习。

过拟合:在训练数据和测试数据上的结果是不一致的,训练数据上效果很好,在测试数据(没看过的数据)上,效果变差,这种情况称为过拟合(overfitting)。

机器学习框架

首先划分训练集和测试集。

训练步骤如下:

  • 定义一个含未知数的函数
  • 定义损失函数
  • 解优化问题,得到使损失函数最小的参数

喜欢的小伙伴收藏点赞关注吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值