李宏毅老师机器学习课程笔记_ML Lecture 1: 回归案例研究

引言:

最近开始学习“机器学习”,早就听说祖国宝岛的李宏毅老师的大名,一直没有时间看他的系列课程。今天听了一课,感觉非常棒,通俗易懂,而又能够抓住重点,中间还能加上一些很有趣的例子加深学生的印象。
视频链接(bilibili):李宏毅机器学习(2017)
另外已经有有心的同学做了速记并更新在github上:李宏毅机器学习笔记(LeeML-Notes)
所以,接下来我的笔记只记录一些我自己的总结和听课当时的困惑,如果有能够帮我解答的朋友也请多多指教。

1、回归问题的应用

图片1
回归问题因为主要输出的是数字,所以可以有以下应用:

  • 股票市场预测:输入历史股票数据,预测第二天大盘点位
  • 自动驾驶:输出的是方向盘应该转动的角度
  • 推荐系统:输出购买者购买某商品或阅读某文章的可能性

    2、解决回归问题需要了解的一些概念

    图片2
    以宝可梦训练后的CP值(战斗力数值)预测为例,y=b+wxcp这组线性函数就是模型(model),xi 是特征(feature),wi 是权重(weight),b是偏差(bias)

    3、宝可梦cp预测项目的分析步骤

  • 根据数据选择模型:选择线性模型
  • 评估模型中函数的好坏:根据10只宝可梦的训练数据计算出估测误差loss function(如图3)
  • 选出最好的函数:即第二步中可以使得loss function中数值最小的函数。这里李老师推荐方法为gradient descent(梯度下降法),因为它是一种对可微函数取最小值的通用解决方案。
    图3
    图4

4、Gradient descent(梯度下降法)

图5
以比较简单的损失函数为例(如图5),梯度下降法就是对该函数的x坐标求导,即曲线在该点的斜率,如果斜率为负,需要向右加载,反之亦然,知道斜率为零,找到极小值或局部最优解(Local optimal)。每次加载的距离被称为步长或学习率。
图6

5、梯度下降法最害怕的事情

如图6左侧,如果损失函数像左侧那样,那么梯度下降法能不能找到全局的最优解就是考验“人品”的事情,但幸运的是,对于线性回归问题,它的损失函数都是凸函数(convex),也就是不会出现像图5或图6左侧那种情况,它只有最小值,没有局部的极小值。

6、如何让损失值降到最小?

图7

图8

图9

图10

损失函数取值最小,很多人第一感觉就是增加函数的复杂度。图7到图10分别是二元至五元方程的模型,但可以看出虽然在训练集上损失值变得较小,但测试集上却没有这种趋势,甚至五元方程的模型还表现出了很荒谬的结果。

图11

7、过拟合

图12

上面出现那种荒谬结果的现象被称为过拟合。

8、导入更多数据后结果如何?

图13

导入更多数据后发现,很多宝可梦的点并没有落在预测的模型函数曲线上,推测在起初建模的时候忽略了一些重要的特征(feature),当不同类型的宝可梦训练的时候,成长曲线是不同的。

图14

增加特征以后如何构建线性模型?见图14。

9、如何防止过拟合?

图15
需要重新定义损失函数,有一种方法叫正则化。
因为过拟合往往是因为原有模型空间过大,而正则化就是一种控制模型空间的方法。

猜你喜欢

转载自www.cnblogs.com/leogoforit/p/12541588.html