李宏毅机器学习 回归Regression

回归(Regression)

回归的应用:

  • 股市预测:Stock Market Forecast,输入前面的股市行情,输出明天的结果
  • 自动驾驶:Self-driving car,输入一些场景,输出方向盘角度
  • 推荐系统:Recommendation,使用者A购买商品B的可能性
  • 预测宝可梦的攻击值:Estimating the Combat Power(CP) of a pokemon after evolution,输入宝可梦的所有属性(进化前的CP值、物种Bulbasaur、血量HP、重量Weight、高度Height),输出进化后的CP值

模型步骤

  • 模型假设,选择模型框架(线性模型Linear model),即选择function set
  • 模型评估定义,如何判断function set中的好坏,定义损失函数L
  • 模型优化,筛选出最好的模型(梯度下降)

模型假设

假设线性模型为: y = b + ∑ w i x i y = b + \sum w_ix_i y=b+wixi

  • x i x_i xi:模型的输入,也叫做特征feature
  • w i w_i wi:各个特征的权重weight
  • b b b:偏移量bias

模型评估

1.收集数据

这里定义 x 1 x^1 x1是进化前的CP值, y ^ 1 \hat{y}^1 y^1是进化后的CP值,其中 ^ \hat{} ^表示是真实值,这里一共收集了10组原始数据,如下图所示:

在这里插入图片描述

2.定义损失函数Loss function

损失函数L的输入是function,输出该函数的好坏程度,这里通过使用均方误差的方式来定义损失函数,如下:

在这里插入图片描述

L ( f ) = ∑ n = 1 10 ( y ^ n − f ( x c p n ) ) 2 , 将 【 f ( x ) = y 】 , 【 y = b + w ⋅ x c p 】 代 入 = ∑ n = 1 10 ( y ^ n − ( b + w ⋅ x c p ) ) 2 \begin{aligned} L(f) & = \sum_{n=1}^{10}\left ( \hat{y}^n - f(x_{cp}^n) \right )^2,将【f(x) = y】, 【y= b + w·x_{cp}】代入 \\ & = \sum_{n=1}^{10}\left ( \hat{y}^n - (b + w·x_{cp}) \right )^2\\ \end{aligned} L(f)=n=110(y^nf(xcpn))2f(x)=y,y=b+wxcp=n=110(y^n(b+wxcp))2
最终的损失函数Loss function: L ( w , b ) = ∑ n = 1 10 ( y ^ n − ( b + w ⋅ x c p ) ) 2 L(w,b)= \sum_{n=1}^{10}\left ( \hat{y}^n - (b + w·x_{cp}) \right )^2 L(w,b)=n=110(y^n(b+wxcp))2

w w w, b b b 在二维坐标图中展示,如图所示:

在这里插入图片描述

  • 图中每一个点代表着一个模型对应的 w w w b b b
  • 颜色越深代表模型更优

模型优化-梯度下降

1.梯度下降gradient descent

已知损失函数是 L ( w , b ) = ∑ n = 1 10 ( y ^ n − ( b + w ⋅ x c p ) ) 2 L(w,b)= \sum_{n=1}^{10}\left ( \hat{y}^n - (b + w·x_{cp}) \right )^2 L(w,b)=n=110(y^n(b+wxcp))2 ,需要找到一个令结果最小的 f ∗ f^* f,在实际的场景中,我们遇到的参数肯定不止 w w w, b b b

在这里插入图片描述

先从最简单的只有一个参数 w w w入手,定义 w ∗ = a r g   min ⁡ ⁡ x L ( w ) w^* = arg\ \underset{x}{\operatorname{\min}} L(w) w=arg xminL(w)

首先在这里引入一个概念 学习率learning rate :移动的步长,如图7中 η \eta η

  • 步骤1:随机选取一个 w 0 w^0 w0
  • 步骤2:计算微分,也就是当前的斜率,根据斜率来判定移动的方向
    • 大于0向右移动(增加 w w w
    • 小于0向左移动(减少 w w w
  • 步骤3:根据学习率移动
  • 重复步骤2和步骤3,直到找到最低点

在这里插入图片描述

解释完单个模型参数 w w w,引入2个模型参数 w w w b b b , 其实过程是类似的,需要做的是偏微分,过程如下图所示:

在这里插入图片描述

整理成一个更简洁的公式:

在这里插入图片描述

其中 w w w b b b偏微分的计算方法如下:

在这里插入图片描述

2.梯度下降面临的挑战

通过梯度下降gradient descent不断更新损失函数的结果,这个结果会越来越小,但是会存在以下问题:

  • 局部最优:stuck at local minima
  • 等于0:stuck at saddle point
  • 趋近于0:very slow at the plateau

在这里插入图片描述

注意:其实在线性模型里面都是一个碗的形状(山谷形状),梯度下降基本上都能找到最优点,但是再其他更复杂的模型里面,就会遇到 问题2 和 问题3 了

验证模型的好坏

使用训练集和测试集的平均误差来验证模型的好坏
我们使用将10组原始数据,训练集求得平均误差为31.9,其中的误差 e = ∣ y ^ − y ∣ e = \left|\hat{y}-y\right| e=y^y,如图所示:

在这里插入图片描述

再使用10组Pokemons测试模型,测试集求得平均误差为35.0 如图所示:

在这里插入图片描述

更复杂的模型:1元N次线性模型

在模型上,可以进一步的优化,选择更复杂的模型,如使用1元2次方程,如下图:

在这里插入图片描述

这里注意:上述模型仍然是线性模型,因为把 x c p 1 x_{cp}^1 xcp1 = ( x c p ) 2 (x_{cp})^2 (xcp)2 看作一个特征,那么 y = b + w 1 ⋅ x c p + w 2 ⋅ x c p 1 y = b + w_1·x_{cp} + w_2·x_{cp}^1 y=b+w1xcp+w2xcp1 其实就是线性模型。

过拟合问题

在模型上,可以进一步选择更复杂的模型,但是发现在训练集上面表现更为优秀的模型,在测试集上效果反而变差,这就是模型在训练集上出现了过拟合overfitting的问题。

如下图,每一个模型结果都是一个集合,在低次模型找到的最佳模型肯定不会比高次模型的更差

在这里插入图片描述

特征选择优化

在前面的模型选择中,使用的模型都只考虑了起始CP值作为特征,通过对比可以发现Pokemons种类也会影响进化后的CP值。

2个特征的四个线性模型合并到一个线性模型中

在这里插入图片描述

在这里插入图片描述

进一步优化:引入更多特征更多参数

在最开始我们有很多特征,图形化分析特征,将血量(HP)、重量(Weight)、高度(Height)也加入到模型中。

在这里插入图片描述

更多特征,数据量没有明显增加,导致overfitting

加入正则化

更多特征,但是权重 w w w 可能会使某些特征权值过高,仍旧导致overfitting,所以加入正则化

在这里插入图片描述

在这里插入图片描述

  • w w w 越小,表示 f u n c t i o n function function 较平滑的, f u n c t i o n function function输出值与输入值相差不大
  • 在很多应用场景中,并不是 w w w 越小模型越平滑越好,但是经验值告诉我们 w w w 越小大部分情况下都是好的。
  • b b b 的值接近于0 ,对曲线平滑是没有影响

总结

  • Pokemon:原始的CP值极大程度的决定了进化后的CP值,但可能还有其他的一些因素。
  • Gradient descent:梯度下降的做法;后面会讲到它的理论依据和要点。
  • Overfitting和Regularization:过拟合和正则化,主要介绍了表象;后面会讲到更多这方面的理论

思考题:

  • 常用于回归的损失函数有哪些
  • 梯度下降的优缺点,怎么解决局部最优的这个缺点的?
  • 参数量过大会导致什么问题,后续可以采取什么样的方式进行解决这个问题

References

[1] https://datawhalechina.github.io/leeml-notes/#/chapter3/chapter3

[2] https://relph1119.github.io/my-team-learning/#/lee_ml37/task03

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值