线性回归模型介绍

934 阅读8分钟

楔子

  • 最近几十年,人工智能经历了一轮又一轮的高潮和低谷;今天,机器学习、深度学习再一次被赋予强人工智能的历史使命;

  • 机器学习作为人工智能中最重要的一环,天生就带有数学家和工程师的基因,旨在于发现数据之间的秘密,研究最优化问题(构造一个合适的目标函数,然后求最优解)。

一、概述

  • 机器学习根据训练数据方法的不同,可以分为监督学习半监督学习无监督学习强化学习。其中监督学习的主要任务是分类回归

  • 分类回归问题都需要根据训练样本找到一个实数值函数g(x)g(x) g (x) ;然后回归根据g(x)g(x) g (x) ,可以推导出给定新样本的输出值,而分类是根据g(x)g(x) g (x) ,推导出新样本的类别(如0或1)。

  • 在现实世界中普遍存在变量之间的关系,关系大概分两种:确定的函数关系统计相关关系(非确定但又相互依赖的关系);回归分析就是研究变量之间统计相关关系的方法。

  • 唯物辩证法中认为:事物之间的联系是普遍存在的、相互影响、相互作用和相互制约的;佛家认为:前世因,今世果;数学家认为: y=a1x1+a2x2+a3x3+⋯+by = a_1x_1 + a_2x_2 + a_3x_3 + {\cdots}+ b y =a 1 ​ x 1 ​ +a 2 ​ x 2 ​ +a 3 ​ x 3 ​ + ⋯+ b

  • 回归问题中,按照自变量和变量之间的关系类型,分为线性回归分析和非线性回归分析(如对数模型:f(x)=11+e−xf(x) = \frac{1}{1+ e^{-x}} f (x)= 1+e −x 1 ​ ),本文介绍对象是线性回归(Linear Regression)模型。

二、回归方程

1、概述

在回归分析中,只包括一个自变量和一个因变量,且两种的关系可以使用一条直线近似表示,称为一元线性回归分析。如果有两个及以上的自变量,且自变量和因变量是线性关系,称为多元线性回归分析

  • 一元线性回归方程: y=ax+by = ax + b y =ax +b

  • 多元线性回归方程: y=a1x1+a2x2+a3x3+⋯+by = a_1x_1 + a_2x_2 + a_3x_3 + {\cdots} + b y =a 1 ​ x 1 ​ +a 2 ​ x 2 ​ +a 3 ​ x 3 ​ + ⋯+ b

2、建立回归方程

hθ(x)=θ0+θ1x1+θ2x2+⋯+θnxn=θ⃗TX⃗h_θ(x) = θ_0 + θ_1x_1+θ_2x_2+{\cdots}+θ_nx_n = \vec{θ}^T\vec{X} h θ ​ (x)=θ 0 ​ +θ 1 ​ x 1 ​ +θ 2 ​ x 2 ​ +⋯ +θ n ​ x n ​ = θ T X

其中,θ⃗=[θ0θ1θ2⋯θn]X⃗=[1x1x2⋯xn]\vec{θ} = \begin{bmatrix} θ_0 \\ θ_1 \\ θ_2 \\ {\cdots} \\ θ_n \end{bmatrix} \,\,\,\,\,\,\vec{X} = \begin{bmatrix} 1 \\ x_1 \\ x_2 \\ {\cdots} \\ x_n \end{bmatrix} θ = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ ​ θ 0 ​ θ 1 ​ θ 2 ​ ⋯ θ n ​ ​ ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ ​ X = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ ​ 1 x 1 ​ x 2 ​ ⋯ x n ​ ​ ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ ​

说明1:θ0,θ1,θ2,⋯θnθ_0 , θ_1,θ_2,{\cdots}θ_n θ 0 ​ ,θ 1 ​ ,θ 2 ​ ,⋯θ n ​ 是回归系数,我们的目标是求解出它们,然后代入回归方程,来预测新数据的输出值。

说明2:求解该模型就需要用到损失函数(目标函数)梯度下降算法

二、损失函数 (Loss Function)

确立了回归方程后,需要寻找一个评估真实值 与预测值之间的差异,我们使用最小均方(Least Mean Square)来描述误差:

J(θ)=12n∑i=1n(hθ(xi)−yi)2,n为样本数J(θ) = \frac {1}{2n} \sum_{i=1}^n(h_θ(x^i) - y^i)^2,\,\,\text{n为样本数} J (θ)= 2n 1 ​ i=1 ∑ n ​ (h θ ​ (x i )− y i ) 2 , n为样本数

其矩阵表达式为

J(θ)=12n(Xθ−Y)T(Xθ−Y),n为样本数J(θ) = \frac {1}{2n}(Xθ - Y)^T(Xθ - Y) ,\,\,\text{n为样本数} J (θ)= 2n 1 ​ (Xθ −Y) T (Xθ −Y), n为样本数

说明:以上就是线性回归的损失函数;接下来的目标是求θθ θ 的值, 使得J(θ)J(θ) J( θ) 最小,常见的处理方法是梯度下降法

三、梯度下降(Gradient Descent)算法

1、 简介

梯度下降算法是一种求局部最优解的方法;在数学上,函数的梯度(导数)方向是函数值增长最快的方向,其相反方向就是下降最快的方向。

  • 首先对θ⃗\vec{θ} θ 赋值,这个值可以是随机的,也可以是一个全零的向量。

  • 改变θ⃗\vec{θ} θ 的值,使得J(θ)J(θ) J (θ) 按梯度下降的方向进行减少。

θ=θ−α∂J(θ)∂θ,α是学习率,步长θ = θ - \alpha \frac{\partial J(θ)}{\partial θ}, \,\,\, \alpha\text{是学习率,步长} θ =θ −α ∂θ ∂J( θ) ​ , α是学习率,步长

   具体对θθθ 的每个分量的求导公式如下:

∂J(θ)∂θj=(hθ(xi)−yi)xji\frac{\partial J(θ)}{\partial θ_j} = (h_θ(x^i) - y^i)x^i_j ∂ θ j ​ ∂J( θ) ​ = (h θ ​ (x i )− y i )x j i ​

说明:梯度下降(GD)是最小化损失函数的一种常用方法,主要有批量梯度下降随机梯度下降两种迭代求解思路。

2、 批量梯度下降 (Batch Gradient Descent)

repeat until convergence {
θj:=θj+α∑i=1n(hθ(xi)−yi)xji\,\,\,\,\,\,\,\,\,θ_j:= θ_j + \alpha \sum_{i=1}^n(h_θ(x^i) - y^i)x^i_j θ j ​ := θ j ​ +α∑ i=1 n ​ (h θ ​ (x i )− y i )x j i ​
}

说明:每更新一个θjθ_j θ j ​ ,都要遍历一次样本集;如果样本的数量n很大,开销比较大;BGD可以得到一个全局最优解,使得损失函数的风险最小

3、随机梯度下降 (Stochastic Gradient Descent)

repeat until convergence {
   for i=1 to n {
θj:=θj+α(hθ(xi)−yi)xji\,\,\,\,\,\,\,\,θ_j:= θ_j + \alpha (h_θ(x^i) - y^i)x^i_j θ j ​ := θ j ​ +α(h θ ​ (x i )− y i )x j i ​
   }
}

说明1:在随机梯度下降法中,每更新θjθ_j θ j ​ 只需要一个样本 (xi,yi)(x^i,y^i) (x i ,y i ) ;在样本数量巨大时,SGD的性能比较好,但是最终结果未必是全局最优解

4、其他
  • 随机梯度下降法在还能够应用到一些更加复杂的算法中,如逻辑回归(Logic Regression)算法(虽有回归两字,但实际上是分类算法)等;

  • 在回归模型的损失函数求解中,还有正规方程的方式,它不需要调节学习率α\alpha α ,但是要求矩阵可逆,数据维度不能太大。

四、特征缩放

当样本的特征的数值之间差异比较大时,梯度下降的过程不仅曲折,而且耗时;这时候需要将各个特征归一化到统一的区间。常见的做法如下:

1、0均值标准化(Z-score normalization)

将原始数据集归一化为均值为0、方差1的数据集,归一化后的特征将分布在 [−1,1] 区间,公式如下:
z=x−μδz=\frac {x - μ}{δ} z = δ x−μ ​

其中,μμ μ 、σσσ 分别为原始数据集的均值方差

2、线性函数归一化(Min-Max Scaling)

将原始数据线性化的方法转换到[0,1]的范围,公式如下:

Xnormal=X−XminXmax−XminX_{normal} = \frac {X - X_{min}}{ X_{max} - X_{min}} X norm al ​ = X max ​ −X min ​ X −X min ​ ​

说明:实现对原始数据的等比例缩放,其中XnormX_{norm} X norm ​ 为归一化后的数据,X为原始数据,XmaxX_{max} X max ​ 、XminX_{min} X min ​ 分别为原始数据集的最大值和最小值。

3、总结
  • 在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,Z-score standardization表现更好。

  • 在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用Min-Max Scaling或其他归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围。

五、多项式回归

1、多项式

多项式由称为不定元的变量和常数系数通过有限次加减法、乘法以及自然数幂次的乘方运算得到的代数表达式,可以分为一次一元多项式和多元多项式。我们主要讨论一元多项式,其形式如下:

y=a0+a1∗x+a2∗(x2)+...+an∗(xn)+ey = a_0 + a_1 * x + a_2 * (x^2) + ... + a_n * (x^n) + e y =a 0 ​ +a 1 ​ ∗x +a 2 ​ ∗( x 2 )+ ...+a n ​ ∗ (x n )+ e

2、多项式回归
  • 当回归函数不能用直线来描述时,要考虑用非线性回归函数。 多项式回归属于非线性回归的一种。这里主要介绍一元多项式回归。

  • 一般非线性回归函数是未知的,或即使已知也未必可以用一个简单的函数变换转化为线性模型。常用的做法是用因子的多项式

  • 从散点图观察到回归函数有一个“弯”,则可考虑用二次多项式;有两个弯则考虑用三次多项式;有三个弯则考虑用四次多项式,等等。

  • 真实的回归函数未必就是某个次数的多项式,但只要拟合得好,用适当的多项式来近似真实的回归函数是可行的。

六、过拟合和欠拟合

  • 在机器学习中,我们希望能用模型最好地拟合数据,但是常常会出现过拟合欠拟合问题;以下三幅图分别描述了对数据的欠拟合(拟合程度不高)、拟合过拟合(过度拟合)。
欠拟合、拟合和过拟合.png
  • 在机器学习中,避免过拟合的方法有:early stopping、数据集扩增(Data augmentation)、正则化(Regularization)包括L1、L2(L2 regularization也叫weight decay)、dropout

End

  • 机器学习是门非常有趣的学科,本文只是简单介绍下线性回归模型,引入很多新的概念,但是没有进行深入的展开,后面会慢慢讲到,其中包括公式的推导,一些更具体的处理办法

  • 如文章有不妥之处,望不吝赐教