【机器学习】day2:回归(李宏毅)

1. 回归定义

Regression 就是找到一个函数 functionfunction ,通过输入特征 xx,输出一个数值 ScalarScalar。

应用举例


股市预测(Stock market forecast)
输入:过去10年股票的变动、新闻咨询、公司并购咨询等
输出:预测股市明天的平均值
自动驾驶(Self-driving Car)
输入:无人车上的各个sensor的数据,例如路况、测出的车距等
输出:方向盘的角度
商品推荐(Recommendation)
输入:商品A的特性,商品B的特性
输出:购买商品B的可能性
Pokemon精灵攻击力预测(Combat Power of a pokemon):
输入:进化前的CP值、物种(Bulbasaur)、血量(HP)、重量(Weight)、高度(Height)
输出:进化后的CP值

2. 模型步骤

step1:模型假设,选择模型框架(线性模型)
step2:模型评估,如何判断众多模型的好坏(损失函数)
step3:模型优化,如何筛选最优的模型(梯度下降)

Step 1:模型假设 - 线性模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注:后面的 step 2 和 step 3 都是使用的单个特征
在这里插入图片描述

Step 2:模型评估 - 损失函数

(1)收集和查看训练数据

在这里插入图片描述
在这里插入图片描述

(2)判断众多模型的好坏

使用损失函数(Loss function) 来衡量模型的好坏,即求【进化后的CP值】与【模型预测的CP值】差(从数学的角度来讲,是使用距离)。统计10组原始数据(真实值和预测后的数据之差的平方)的和,和越小模型越好。

真实值和预测后的数据之差的平方:
在这里插入图片描述

推导公式如下:
在这里插入图片描述
在这里插入图片描述
推导图示:
在这里插入图片描述
我们将 w, b 在二维坐标图中展示,如图所示:
在这里插入图片描述
图中每一个点代表着一个模型对应的 w 和 b
颜色越深代表模型更优
可以与后面的等高线图进行对比

Step 3:最佳模型 - 梯度下降

(1)筛选最优的模型(参数w,b)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用梯度下降
在这里插入图片描述
在这里插入图片描述

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

单参数 w 的情况:
在这里插入图片描述
多参数 w,b 的情况:
在这里插入图片描述
在这里插入图片描述
w和b偏微分的计算方法

在这里插入图片描述

(2)梯度下降推演最优模型的过程

在这里插入图片描述

  • 每一条线围成的圈就是等高线,代表损失函数的值,颜色约深的区域代表的损失函数越小
  • 红色的箭头代表等高线的法线方向
  • 沿着红色箭头更新参数
(3)梯度下降算法中面临的挑战

在这里插入图片描述

3. 验证训练好的模型的好坏

使用训练集和测试集的平均误差来验证模型的好坏

我们使用将10组原始数据,训练集求得平均误差为31.9,如图所示:
在这里插入图片描述
然后再使用10组Pokemons测试模型,测试集求得平均误差为35.0 如图所示:
在这里插入图片描述
由上图可知,训练集的误差值小于预测值的误差值,这是因为,模型本来就是根据训练集选取的。
要想再减少误差值,需要重新定义模型:
在这里插入图片描述

4. 过拟合问题

在模型上,我们再可以进一部优化,使用更高次方的模型,如图所示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由上面的图可知:

  • 训练集平均误差【15.4】【15.3】【14.9】【12.8】
  • 测试集平均误差【18.4】【18.1】【28.8】【232.1】

可知,测试集的平均误差并没有随着训练集平均误差的减小而减小,反而减小到一定值后增大,这就是过拟合问题。
在这里插入图片描述
但是,对于训练数据来说:

每一个模型结果都是一个集合,5次模型⊇4次模型⊇3次模型,所以在4次模型里面找到的最佳模型,肯定不会比5次模型里面找到更差。

在这里插入图片描述
注:上图中的椭圆形称为函数空间

简单来说函数空间就是:满足给定条件的函数的集合(这里的空间是数学中的Space含义,并未物理意义上的空间,时间这种概念的空间);但更准确的,空间的概念是在集合上的更进一步,定义了元素的一些运算。
比如:要求拟合的函数形式是 y=ax^2 +bx+c,a b c 为实数 (这就定义了一个函数空间), 那么y =3x^2+ 2x+1, y=0x^2+0x+3=3, y=0x^2+5x+0=5x 这样这些函数都满足这个条件,由所有满足给定条件的函数组成的集合就是这个函数空间,再比如这个例子里 y=2x^3+1就不属于这个函数空间(不满足定义的形式)。

5. 步骤优化

在这里插入图片描述
由上面的左图可知:输入更多Pokemons数据,相同的起始CP值,但进化后的CP差距竟然是2倍。
由上面的右图可知:其实将Pokemons种类通过颜色区分,就会发现Pokemons种类是隐藏得比较深得特征,不同Pokemons种类影响了进化后的CP值的结果。

Step1优化:2个input的四个线性模型是合并到一个线性模型中
Step2优化:如果希望模型更强大表现更好(更多参数,更多input)
Step3优化:加入正则化

step1:重新设计模型

将有两个输入的四个线性模型合并到一个线性模型中:
在这里插入图片描述
在这里插入图片描述
此时,训练测试后的结果如图所示:
在这里插入图片描述
由上图可知:误差更小,效果更好。

step2:考虑更多参数

如果还想让模型更强大,可以考虑更多的参数,更多的输入。

在最开始我们有很多特征,图形化分析特征,将血量(HP)、重量(Weight)、高度(Height)也加入到模型中:
在这里插入图片描述
在这里插入图片描述
由上图可知:更多特征,更多input,数据量没有明显增加,仍旧导致overfitting。

step3优化:加入正则化

更多特征,但是权重 w 可能会使某些特征权值过高,仍旧导致overfitting,所以加入正则化。
在这里插入图片描述
上图中的红框里面没有加b是因为,正则化中一般不考虑bias,因为我们预期的是想要一个平滑的function,而b的大小和function的平滑程度没有关系,调整b时只能使function上下移动。
在这里插入图片描述
由上图可知:在很多应用场景中,并不是 w 越小模型越平滑越好,但是经验值告诉我们 w 越小大部分情况下都是好的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值