2020李宏毅机器学习与深度学习笔记——Regression

Case举例:
股票预测系统 f(一些股票资料)=预测明天股票的点数
无人驾驶 f(道路状况)=方向盘角度
推荐系统 f(使用者A 商品B)=使用者A购买商品B的可能性


课程范例:预测宝可梦的CP值(战斗力)
f(某一只宝可梦相关的infomation)=进化后的CP值
输入X:某一只宝可梦
Xs:它的种类;Xhp:它的生命值;Xw:它的重量;Xh:它的高度;Xcp:它的CP值
输出Y(一个数值)

Step1:Model(找一个function set)
eg.Y=b+w*Xcp (w和b是参数,可以是任何数值)
形如这种例子的模型被称为线性模型
2020李宏毅机器学习与深度学习笔记——Regression
Step2:Goodness of Function
抓10只宝可梦作为训练数据:
2020李宏毅机器学习与深度学习笔记——Regression
损失函式(function的function):输入一个函式,输出它有多不好。
2020李宏毅机器学习与深度学习笔记——Regression
L函式实际是对评估参数w、b的好坏(这里采用的是最小二乘法)。
将损失函式作图如下,其中横轴是参数b,纵轴是参数w,颜色代表Loss函式的好坏,越接近红色表示Loss函式输出越大,对应的function越糟糕,反之越好。
2020李宏毅机器学习与深度学习笔记——Regression
Step3:Best Function
在function set里找到最好的function(暴力解法:穷举)
2020李宏毅机器学习与深度学习笔记——Regression

另一种方法:梯度下降法

假设Loss函式L(w)只有一个参数w,L可微分。
·随机选取一个初始点w0
·计算dl/dw|w=w0,为负-增加w,为正-减少w。
参数更新: 2020李宏毅机器学习与深度学习笔记——Regression
更新部分有两个值,一个是在当前w处的微分值,其绝对值越大代表越陡峭,下次移动距离更大,反之越平缓,移动距离较小;另一部分是我们事先定好的学习速率。
梯度下降的结果是一个局部最优,但Regression中线性函式是凸的,不存在这个问题。

假设Loss函式L(w,b)有两个参数。
·选择起始点w0,b0
·计算偏微分,更新参数: 2020李宏毅机器学习与深度学习笔记——Regression

实际上Loss函式的值沿着法线在更新:
2020李宏毅机器学习与深度学习笔记——Regression
偏微分的计算:
2020李宏毅机器学习与深度学习笔记——Regression


结果分析
样本集上误差是31.9,测试集上误差值35.0。
选择另一个model,引入平方项:
2020李宏毅机器学习与深度学习笔记——Regression
样本集上误差15.0,测试集上误差是18.3。
其他model,引入四次项:
2020李宏毅机器学习与深度学习笔记——Regression
样本集上误差14.9,测试集上误差是28.8。


模型选择
在样本集和测试集上的误差走向如下,这是很容易理解的,越复杂的model可以包含越多的function,我们更关心在测试集上的更好结果:
2020李宏毅机器学习与深度学习笔记——Regression
实际上我们的CP计算不仅限于十只同种宝可梦上的拟合,将模型进行改进,对不同的物种设置不同的参数:
2020李宏毅机器学习与深度学习笔记——Regression
实际上该模型改进后还是线性函式:
2020李宏毅机器学习与深度学习笔记——Regression
结果如下:
2020李宏毅机器学习与深度学习笔记——Regression
2020李宏毅机器学习与深度学习笔记——Regression
在样本集上误差为3.8,在测试集上误差为14.3。
存在其他可能参数对CP值得影响?重量、高度、HP?考虑这些会有以下function,同样也可把它写成一个线性的式子:
2020李宏毅机器学习与深度学习笔记——Regression
结果在样本集上误差是1.9,但在测试集上市102.3,过拟合了!


对这个结果得处理,进行Regularization
调整我们的Loss函数,如下:
2020李宏毅机器学习与深度学习笔记——Regression
这个式子表明我们期待一个更小的参数wi,为什么呢?当我们的wi越接近0时,我们的function更加平滑,输出对输入变化不敏感,当我们输入受到杂讯干扰时,实际上对我们输出的影响会比较小。
改进后的结果如下:
2020李宏毅机器学习与深度学习笔记——Regression
两点解释:
1.在样本集上,随着λ增加,误差是增加的,这是因为λ越大,在Loss函式中,我们对wi的考虑越重要,与我们regularization求wi接近0的想法相反。
2.在做regularization时,不用考虑bias项,因为我们这一步的目的是得到更加平滑的曲线,这个和参数b无关。

  • regression对应的作业,第一次上手看评论估计还要补充一些其他的知识。
  • 作业情况做好笔记记录。