从零开始深度学习 T1. Regression Case Study

来源:互联网 发布:人工智能方向 知乎 编辑:程序博客网 时间:2024/06/05 23:34

回归分析

回归分析(Regression analysis)是统计学的一个概念,用来估计各个变量之间的关系。
机器学习中常见的回归分析类型有:

  • Linear Regression 线性回归
  • Logistic Regression逻辑回归

机器学习中的回归分析大体可以用y=f(x)来表示,即给定输入量x,得出输出结果y,其中函数f是根据已有的数据进行拟合的结果。
李宏毅教授的课上讲了一个比较有意思的例子——根据Pokemon的已有参数(如cp、生命值、身高、体重)等,预测Pokemon进化后的cp值。
整个回归分析分为三个步骤:

  1. 通过建立Model,定义function set
  2. 定义什么样的function是好的
  3. 从function set中选出最好的function

下面分别进行阐述

1. 通过建立Model,定义function set

课程中采用了经典的linear model,这也是一个入门级的model:

y=b+wixi

其中xi代表Pokemon的属性,wi是权重,b是bias,事实上每一组不同的wib都可以定义出一个function,这就构成了function set。

2. 定义什么样的function是好的

首先考虑w是标量的简单情况,在本例中,预测cp值误差小的function是好的。我们定义一个Loss function用来表示预测值与实际值之间的差距。那么就有

L(f)=L(w,b)=n=110(y^(b+wxncp))2

3. 从function set中选出最好的function

从function set中选出L(f)最小的function即为最好的function,其中wb为自变量。梯度下降(Gradient Descent)是解决该问题的一个非常有效的方法。其过程就是沿梯度下降的方向进行参数更新,从而求解极小值时的参数(也可以沿梯度上升方向求解极大值时参数),用数学公式表示为:

θθηL

其中θ代表需要优化的参数,η代表每一次进行参数更新的步长,L代表函数L的梯度(对各个参数进行偏微分组成的向量)。在本例中,
θ=[wb]

L=LwLb

最后得出的拟合结果为
一次

模型的选择

Overfitting

之前我们只考虑了w是标量的情况,在w是一个矢量时,比如

w=[w1,w2]

那么就有
y=b+w1w2+w2x2cp

此时拟合结果为
二次

更进一步

y=b+w1w2+w2x2cp+w3x3cp
y=b+w1w2+w2x2cp+w3x3cp+w4x4cp
...

当多项式的次数过高时,会存在过拟合(Overfitting)的问题。在过拟合时,模型过度拟合训练样本,失去一般性,从而在训练样本上面的误差很小,但是在检测样本上面的误差很大。如下图所示,在多项式的次数增大的时候,Training data上面的误差不断减小,然而Testing data上面的误差先减小,后急剧增大。

overfitting

hidden factors

除了进化之前的xcp值,进化之后的xcp值还可能受Pokemon的种类、高度、重量等影响,这些参数都可以用来redesign model。

regularization

为了让模型拟合的曲线更加平滑,我们可以让模型的参数尽可能变小。为此可以在Loss function中加入参数大小的影响因子,如下公式

L(f)=L(w,b)=n=110(y^(b+wxncp))2+λ(wi)2

更加平滑的function受参数的影响较小。(If some noises corrupt input when testing, a smoother function has less influence)

总结

本文主要介绍了回归分析以及建模步骤,涉及到的新概念有Gradient decent、Overfitting、Regularization等。

原创粉丝点击