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

回归

    • 1. 回归定义
      • 应用举例
    • 2. 模型步骤
      • Step 1:模型假设 - 线性模型
      • Step 2:模型评估 - 损失函数
        • (1)收集和查看训练数据
        • (2)判断众多模型的好坏
      • Step 3:最佳模型 - 梯度下降
        • (1)筛选最优的模型(参数w,b)
        • (2)梯度下降推演最优模型的过程
        • (3)梯度下降算法中面临的挑战
    • 3. 验证训练好的模型的好坏
    • 4. 过拟合问题
    • 5. 步骤优化
      • step1:重新设计模型
      • step2:考虑更多参数
      • step3优化:加入正则化

1. 回归定义

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

应用举例

【机器学习】day2:回归(李宏毅)_第1张图片
股市预测(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:模型假设 - 线性模型

【机器学习】day2:回归(李宏毅)_第2张图片
【机器学习】day2:回归(李宏毅)_第3张图片
【机器学习】day2:回归(李宏毅)_第4张图片

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

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

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

在这里插入图片描述
【机器学习】day2:回归(李宏毅)_第5张图片

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

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

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

推导公式如下:
【机器学习】day2:回归(李宏毅)_第6张图片
在这里插入图片描述
推导图示:
【机器学习】day2:回归(李宏毅)_第7张图片
我们将 w, b 在二维坐标图中展示,如图所示:
【机器学习】day2:回归(李宏毅)_第8张图片
图中每一个点代表着一个模型对应的 w 和 b
颜色越深代表模型更优
可以与后面的等高线图进行对比

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

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

【机器学习】day2:回归(李宏毅)_第9张图片
在这里插入图片描述
在这里插入图片描述
使用梯度下降
【机器学习】day2:回归(李宏毅)_第10张图片
在这里插入图片描述

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

单参数 w 的情况:
【机器学习】day2:回归(李宏毅)_第11张图片
多参数 w,b 的情况:
【机器学习】day2:回归(李宏毅)_第12张图片
【机器学习】day2:回归(李宏毅)_第13张图片
w和b偏微分的计算方法

【机器学习】day2:回归(李宏毅)_第14张图片

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

【机器学习】day2:回归(李宏毅)_第15张图片

  • 每一条线围成的圈就是等高线,代表损失函数的值,颜色约深的区域代表的损失函数越小
  • 红色的箭头代表等高线的法线方向
  • 沿着红色箭头更新参数

(3)梯度下降算法中面临的挑战

【机器学习】day2:回归(李宏毅)_第16张图片

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

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

我们使用将10组原始数据,训练集求得平均误差为31.9,如图所示:
【机器学习】day2:回归(李宏毅)_第17张图片
然后再使用10组Pokemons测试模型,测试集求得平均误差为35.0 如图所示:
【机器学习】day2:回归(李宏毅)_第18张图片
由上图可知,训练集的误差值小于预测值的误差值,这是因为,模型本来就是根据训练集选取的。
要想再减少误差值,需要重新定义模型:
【机器学习】day2:回归(李宏毅)_第19张图片

4. 过拟合问题

在模型上,我们再可以进一部优化,使用更高次方的模型,如图所示
【机器学习】day2:回归(李宏毅)_第20张图片
【机器学习】day2:回归(李宏毅)_第21张图片
【机器学习】day2:回归(李宏毅)_第22张图片
由上面的图可知:

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

可知,测试集的平均误差并没有随着训练集平均误差的减小而减小,反而减小到一定值后增大,这就是过拟合问题。
【机器学习】day2:回归(李宏毅)_第23张图片
但是,对于训练数据来说:

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

【机器学习】day2:回归(李宏毅)_第24张图片
注:上图中的椭圆形称为函数空间

简单来说函数空间就是:满足给定条件的函数的集合(这里的空间是数学中的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. 步骤优化

【机器学习】day2:回归(李宏毅)_第25张图片
由上面的左图可知:输入更多Pokemons数据,相同的起始CP值,但进化后的CP差距竟然是2倍。
由上面的右图可知:其实将Pokemons种类通过颜色区分,就会发现Pokemons种类是隐藏得比较深得特征,不同Pokemons种类影响了进化后的CP值的结果。

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

step1:重新设计模型

将有两个输入的四个线性模型合并到一个线性模型中:
【机器学习】day2:回归(李宏毅)_第26张图片
【机器学习】day2:回归(李宏毅)_第27张图片
此时,训练测试后的结果如图所示:
【机器学习】day2:回归(李宏毅)_第28张图片
由上图可知:误差更小,效果更好。

step2:考虑更多参数

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

在最开始我们有很多特征,图形化分析特征,将血量(HP)、重量(Weight)、高度(Height)也加入到模型中:
【机器学习】day2:回归(李宏毅)_第29张图片
【机器学习】day2:回归(李宏毅)_第30张图片
由上图可知:更多特征,更多input,数据量没有明显增加,仍旧导致overfitting。

step3优化:加入正则化

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

你可能感兴趣的:(机器学习,机器学习,回归,人工智能)