机器学习系列(2)——回归

定义

Regression就是找到一个函数function,通过输入特征x,输出一个数值scalar

应用举例

  • 股市预测(Stock market forecast)
    - 输入:过去10年的股票变动、新闻资讯、公司并购资讯等
    - 输出:预测股市明天的平均值
  • 自动驾驶(Self-driving Car)
    - 输入:无人车上的各个sensor的数据,例如路况、测出的车距等
    - 输出:方向盘的角度
  • 商品推荐(Recommendation)
    - 输入:商品A的特性,商品B的特性
    - 输出:购买商品B的可能性

模型步骤

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

模型假设——线性模型

一元线性模型(单个特征):
以一个特征xcpx_{cp}为例,线性模型假设y=b+wxcpy=b+w·x_{cp},所以w和b可以猜测很多模型:
f1:y=10.0+9.0xcpf1:y=10.0+9.0·x_{cp}
f2:y=9.8+9.2xcpf2:y=9.8+9.2·x_{cp}
f3:y=0.81.2xcpf3:y=-0.8-1.2·x_{cp}
......
多元线性模型(多个特征)
在实际应用中,输入特征肯定不止xcpx_{cp}这一个。特征会有很多。所以我们假设线性模型Linear modely=b+wixiy=b+\sum w_i·x_i

  • xix_i:就是各种特征(feature)
  • wiw_i:各个特征的权重
  • bb:偏移量

模型评估——损失函数

考虑单个特征:xcpx_{cp}
机器学习系列(2)——回归
通过真实数据,使用损失函数(Loss function)来衡量模型的好坏,统计原始数据(y^nf(xcpn))2(\hat{y}^n-f(x^n_{cp}))^2的和,和越小模型越好。
L(f)=n=110(y^nf(xcpn))2L(f)=\sum ^{10}_{n=1}(\hat{y}^n-f(x^n_{cp}))^2,将[f(x)=y][f(x)=y][y=b+wxcp][y=b+w·x_{cp}]代入得到最终定义损失函数
Loss function:L(f)=n=110(y^n(b+wxcp))2L(f)=\sum ^{10}_{n=1}(\hat{y}^n-(b+w·x_{cp}))^2
将w,b在二维坐标图中展示为:
机器学习系列(2)——回归

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

最佳模型——梯度下降

考虑单个特征:xcpx_{cp}
已知损失函数为L(f)=n=110(y^n(b+wxcp))2L(f)=\sum ^{10}_{n=1}(\hat{y}^n-(b+w·x_{cp}))^2,需要找到一个令结果最小的ff^*,在实际的场景中,我们遇到的参数肯定不止w,b,先从简单的只有一个参数w入手,定义w=argminxL(w)w^*=arg\,\min_xL(w)
机器学习系列(2)——回归
这里引入一个概念学习率:移动的步长,即图中的η\eta

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

机器学习系列(2)——回归
步骤1中,我们随机选取一个w0w^0,我们有可能会找到当前的最小值,并不是全局的最小值,这里我们保留这个疑问。
以上解释完单个模型参数w,引入两个模型参数w和b,其实过程是类似的,需要做的是偏微分,过程如下图:
机器学习系列(2)——回归
计算的方法为下图:
机器学习系列(2)——回归
我们通过梯度下降gradient decent不断更新损失函数的结果,这个结果会越来越小,但是此过程还会有其他的问题。

  • 当前最优(Stuck at local minima)
  • 等于0(Stuck at saddle point)
  • 趋近于0(Very slow at the plateau)

机器学习系列(2)——回归
其实在线性模型里面都是一个山谷形状,梯度下降基本上能找到最优点,但是在其他更复杂的模型里面,就会遇到后两个问题了。

验证模型的好坏

不是能画出直线就是线性模型,各种复杂的曲线也可能是线性模型,因为把xcp1=(xcp)2x^1_{cp}=(x_{cp})^2看作一个特征,其实也就是线性模型。
在训练集上main表现更为优秀的模型,为什么在测试集上反而变差了?这就是模型在训练集上过拟合的问题。
如图所示,每一个模型结果都是一个集合,3次模型\subseteq 4次模型 \subseteq 5次模型,所以在4次模型里面知道的最佳模型,肯定不会比5次模型里面找到的更差。
机器学习系列(2)——回归

步骤优化:

  1. 2个input的四个线性模型合并到一个线性模型中
  2. 增加更多的参数,更多的input
  3. 加入正则化
    - w越小,表示function较平滑的,function输出值与输入值相差不大
    - 并不是w越小模型越平滑越好,但是经验值告诉我们w越小大部分情况下都是好的
    - b的值越接近于0,对曲线平滑没有影响
    机器学习系列(2)——回归