符号定义
这里定义《深入浅出ML》系列中涉及到的公式符号,如无特殊说明,符号含义均按下述定义解释:
写在前面
回归技术在整个数据科学体系中占有非常重要的位置,回归分析是统计学中的相关分析知识体系中重要组成部分。在机器学习中,回归、分类和标注共同构成了监督学习技术。
监督学习(supervised learning)是机器学习在工业界应用最广的一个领域分支。在学术界中也是研究最多的领域之一。大家都知道的数据挖掘十大经典算法中,监督学习技术占据6席。
回归分析介绍
在介绍具体的回归技术之前,有必要探讨下以下几个问题。回归分析是什么?为什么要使用回归分析呢?
什么是回归分析?
回归分析是解决预测建模任务时的一种方法,用于研究自变量与因变量之间的关系。该方法主要用于预测、时间序列建模以及寻找变量之间的因果关系。 举例,rash driving和number of road accidents by a driver通过回归技术可以进行更好的研究。
回归分析是用于建模和数据分析的一个重要工具。这里,我们用曲线/直线去拟合数据点,希望所有数据点到曲线或直线的距离差异之和最小(后面会给出公式量化)。
上图是某一阶段的股票指数波动示意图,用一条(红色)曲线拟合真实数据。
为什么要使用回归分析?
正如上面描述,回归分析多用于建立两个或多个变量之间的关系表达。我们通过一个例子理解这个问题:
假如,你想根据当前的经济环境预估企业的营收增长情况。公司最近的财报表明营收增长大约是经济增长的2.5倍。利用这个关系,就可以根据当前和过去的营收和经济数据,预测公司未来的营收增长情况。
使用回归分析有诸多好处,比如:
- 它可以清晰的表示自变量(特征)与因变量(结果)之间的显著关系;
- 还可以表明多个自变量(特征)对因变量(结果)的影响程度(根据feature对应权重大小).
- 同时,回归分析也可以去比较两个变量之间的影响,比如促销活动的次数与价格波动的影响。这些有助于帮助市场研究人员/数据分析师/数据科学家去消除或评估最佳的一组变量用于建立预测模型。
回归技术分类
有很多种不同的回归技术可做预测。根据目标变量的个数、因变量的类型以及回归函数的形状这三个维度对回归技术做一个归类。我们从回归家族中拿出两个经典的回归技术——线性回归和逻辑斯蒂回归,详细阐述其技术原理和应用场景。
一睹为快,简要的看下二者在变量上的差异:
线性回归(Linear Regression)
线性回归是最被广泛应用的建模技术之一。顾名思义,就是用一组变量(或特征)的线性组合,来建立与结果的关系。即期望用一条最佳的直线(被称为回归线)来表示因变量(Y)和一个或多个自变量(X)之间的关系。
线性回归模型
模型表达
关于参数w:
- 在物理上可以这样解释:在自变量(特征)之间相互独立的前提下,wi反映自变量xi对因变量影响程度,wi越大,说明xi对结果y的影响越大。
- 通过每个字变量(特征)前面的参数,可以很直观的看出哪些特征分量对结果的影响比较大。
- 在统计中,w1,w2,⋯,wn称为偏回归系数,w0称为截距。
参数学习准则
参数学习-线性回归目标函数
如何调整参数w使得J(w)取得最小值?方法有很多,这里先介绍两种比较经典的方法,即最小二乘法和梯度下降法。
最小二乘法(Least Square)
最小二乘法是一种完全数学描述的方法,直接给出闭式解结果。它用X表示观测数据中的特征矩阵,结果表示成Y向量,目标函数仍是(ml.1.1.3),那么w可直接用下面公式表示:
梯度下降法(Gradient Descent)
由于最小二乘法直接进行矩阵运算(求逆等),尽管可以得到全局最优解。但是在互联网海量数据背景下的回归分析或预测问题,其计算效率较低,甚至无法完成(涉及超大矩阵的求逆运算)。
而基于梯度法求解参数是一个不错的选择,原因主要有2点:
- 算法复杂度与样本规模(样本数m、特征维度n)呈线性关系;
- 如果目标函数是凸函数,批梯度法可保证能得到最优解,随机梯度法也能近似得到最优解。
最小二乘法与梯度下降法求解异同
相同点:
- 本质相同:两种求解方法都是在给定已知数据(自变量x,因变量y)的前提下对因变量y算出一个估值函数(x与y关联表达式),然后对给定的新输入x通过估值函数得出y。
- 目标相同:都是在已知数据的框架下,使得估算值与真实值的之差的平方和尽可能小。
不同点:
- 实现方法与结果不同:最小二乘法直接通过建立等价关系找到全局最小,非迭代法。而梯度下降法作为迭代法的一种,先给定一个参数向量初始值,然后向目标函数下降最快的方向调整(即梯度方向),在若干次迭代之后找到全局最小。
- 相比最小二乘法,随机梯度下降法的一个缺点是:在接近极值时收敛速度变慢,并且该方法对初始值的选取比较敏感。
概率解释-回归模型目标函数
一般地,机器学习中不同的模型会有相应的目标函数。而回归模型(尤其是线性回归类)的目标函数通常用平方损失函数作为优化的目标函数(即真实值与预测值之差的平方和)。为什么要选用误差平方和作为目标函数呢?答案可以从概率论中的中心极限定理、高斯分布等知识中找到。
中心极限定理
目标函数的概率解释需要用到中心极限定理。中心极限定理本身就是研究独立随机变量和的极限分布为正态分布的问题。
中心极限定理公式表示:
中心极限定理定义:
高斯分布
- 回归模型的最终目标是建立自变量x与结果y之间的关系(通过函数表达式),希望通过x能较准确的表示结果y。
- 而在实际应用场景中,很难甚至不可能把导致y结果的所有变量(特征)都找出来,并放到回归模型中。那么模型中存在的x通常认为是影响结果y最主要的变量集合(又称因子, 在ML中叫做特征集)。根据中心极限定理,把那些对结果影响比较小的变量(假设独立同分布)之和认为服从正态分布是合理的。
示例说明误差服从高斯分布是合理的:
Andrew Ng《机器学习》课程第1节的线性回归例子中,根据训练数据建立房屋的面积x与房屋的售价y之间的函数表达。
它的数据集中把房屋面积最为主要的变量。除此之外我们还知道房屋所在的地段(地铁、学区、城区、郊区),周边交通状况,当地房价,楼层,采光,绿化面积,… 等等诸多因素会影响房价。
在实际中,因数据收集问题可能拿不到所有影响房屋售价的因素(变量),可以假设多个因素变量相互独立,根据中心极限定理,认为变量之和服从高斯分布。即:
那么x和y的条件概率可表示为:
极大似然估计与损失函数极小化等价
根据公式(ml.1.1.6)估计得到一条样本的结果概率,模型的最终目标是希望在全部样本上预测最准,也就是概率积最大,这个概率积就是似然函数。优化的目标的函数即为似然函数,表示如下:
我们可以发现,经过最大似然估计推导出来的待优化的目标函数(ml.1.1.9)与平方损失函数(ml.1.1.3)是等价的。因此,可以得出结论:线性回归 误差平方损失极小化与极大似然估计等价。其实在概率模型中,目标函数的原函数(或对偶函数)极小化(或极大化)与极大似然估计等价,这是一个带有普遍性的结论。
为什么是条件概率?
因为我们希望预测值与真实值更接近,这就意味着希望求出来的参数w,在给定输入x的情况下,得到的预测值等于真实值的可能性越大越好。而w,x均是前提条件,因此用条件概率p(y|x;w)表示。即p(y|x;w)越大,越能说明估计的越准确。(当然也不能一味地只优化该条件概率,还要考虑拟合过度以及模型的泛化能力问题)
回归模型与正则化
Ridge Regression,又称Tikhonov Regularization,由1943年苏联人Tikhonov发表。
L1与L2
L1范数与L2范数正则化都有助于降低过拟合风险,但L1还会带来一个额外的好处,就是L1正则化更易于获得“稀疏”(sparse)解,即它求得的参数w会有更少的非零分量。
为什么L1更容易获得稀疏解?我们假定特征集合x只有两个特征,表示为x=(x1,x2)。那么对应的参数向量w也对应两个分量,即w=(w1,w2),我们将其作为两个坐标轴,然后在分别在2维坐标上绘制出损失函数的等值线(即在(w_1, w_2)空间中平方误差项取值相同的点的连线)。然后分别在左右两个图上绘制出L1范数和L2范数的等值线。如下图所示:
带正则化项求得的解w要在损失函数项和正则化项之间这种,即出现在图中损失函数项等值线与正则化项等值线相交处。从图2-2可以看出,采用L1范数时平方损失项的等值线与正则化项等值线的交点出现在(参数空间)坐标轴上,即w1或w2为0;而在采用L2范数时,两个等值线的相交点常出现在某个象限内(如图示第2象限),即w1或w2均非0。从图示例可以看出,在目标函数中,加入采用L1范数比L2范数更易于得到稀疏解。
逻辑斯蒂回归(Logistic Regression)
逻辑斯蒂分布
介绍逻辑斯蒂回归模型之前,首先看一个并不常见的概率分布——逻辑斯蒂分布。
逻辑斯蒂分布
设X是连续随机变量,如果随机变量X对应的概率密度函数f(x)和累积分布函数F(x)分别是:
那么,X服从逻辑斯蒂分布。其中,μ为位置参数,s>0为形状参数。
累积分布函数属于逻辑斯蒂函数,其图形是一条S型曲线(又称为Sigmoid曲线)。该曲线的特点是:以点(μ,1/2)为中心对称,即满足:
曲线在中心附近增长较快,在两端增长速度较慢。从密度函数和分布函数图形都能看出,形状参数s的值越小,曲线在中心附近增长的越快。
逻辑斯蒂回归模型
前面介绍的线性回归,其应用场景大多是回归分析,一般不用在分类问题上。原因可以概括为以下两个:
- 回归模型是连续型模型,即预测出的值都是连续值(实数值),非离散值;
预测结果受样本噪声的影响比较大。 - 而本节要介绍的逻辑斯蒂回归模型(Logistic Regression Model,简称LR模型)是一种可用来分类的模型。在这里,自变量X取值为连续值或离散值,因变量Y取值为1或0。
LR模型表达式
LR模型表达式为参数化的逻辑斯蒂(累积)分布函数(默认参数μ=0,s=1)即:
理解LR模型
对数几率
函数映射
除了从对数几率的角度理解LR外,从函数映射也可以理解LR模型:
线性函数的值愈接近正无穷∞,概率值就越接近1;反之,其值越接近负无穷,概率值就越接近0。这样的模型就是LR模型。
逻辑斯蒂回归本质上还是线性回归,只是特征到结果的映射过程中加了一层函数映射(即sigmoid函数),即先把特征/变量线性求和,然后使用sigmoid函数将线性和约束至(0,1)之间,结果值用于二分或回归预测。
LR模型——概率解释
LR模型多用于解决二分类问题,如广告是否被点击(是/否)、商品是否被购买(是/否)等互联网领域中常见的应用场景。
但是实际场景中,我们又不把它处理成“绝对的”分类问题,而是用其预测值作为事件发生的概率。
这里从事件、变量以及结果的角度给予解释。
我们所能拿到的训练数据统称为观测样本。问题:样本是如何生成的?
参数学习算法
公式(ml.1.1.18)不仅可以理解为在已观测的样本空间中的概率分布表达式。如果从统计学的角度可以理解为参数w似然性的函数表达式(即似然函数表达式)。参数在整个样本空间中的似然函数可表示为:
公式(ml.1.1.22)中的α表示学习率(learning rete,又称学习步长)。
基于梯度法求目标函数极值,另一种推导方式:
同样的,对每个参数求偏导,推导结果为:
Sigmoid函数性质:
重要考察点
注:这部分公式推导是LR模型的核心部分,在机器学习相关面试中,LR模型公式推导是可能是考察频次最高的一个点。打算寻求数据挖掘、机器学习等职位的朋友,建议能做到公式的熟练推导。
交叉熵误差
值得说明的是:不止LR模型的损失函数是交叉熵损失,几乎所有的条件概率模型对应的Loss Function都是交叉熵损失。
LR模型与广义线性模型、最大熵模型、指数族分布
LR模型是广义线性模型的特例
当目标值分布服从伯努利分布时
LR模型是最大熵模型的特例
最大熵模型是基于最大熵原理(见《第2章:深入浅出ML之Entropy Methods家族》),优化条件概率p(y|x)熵,并通过对偶函数极大化或极大似然估计得到的概率模型。当y满足二项分布时,得到的概率模型即为P(y=1|x).
LR模型满足指数族分布
LR模型与指数族分布也存在密切的关系
指数族分布的归一化形式(Canonical Form):
前面说道,LR模型对应的结果只有两种可能,多次独立同分布实验服从二项分布。LR模型是指数族分布中y服从二项分布的特例。
LR模型在工业界的应用
本节主要是想聊聊LR模型在工业界中的应用。毫不扩张地说,LR模型是工业界应用最多的模型之一,不管是在各种预估问题场景(如推荐、广告系统中的点击率预估,转化率预估等),亦或是分类场景(如用户画像中的标签预测,判断内容是否具有商业价值,判断点击作弊等等),我们发现都会出现LR的身影。
总结发现,LR模型自身的特点具备了应用广泛性。总结如下:
- 模型易用:LR模型建模思路清晰,容易理解与掌握;
- 概率结果:输出结果可以用概率解释(二项分布),天然的可用于结果预估问题上;
- 强解释性:特征(向量)和标签之间通过线性累加与Sigmoid函数建立关联,参数的取值直接反应特征的强弱,具有强解释性;
- 简单易用:有大量的机器学习开源工具包含LR模型,如sklearn、spark-mllib等,使用起来比较方便,能快速的搭建起一个learning task pipeline;
但在工业界中典型的大规模学习任务-如广告的CTR预估问题。除了预估模型自身外,还要考虑模型能否解决学习任务、业务场景中出现的问题。比如:
- 学习的过拟合问题;
- 学习的数据稀疏性问题;
- 模型自身的学习效率(收敛速度,稳定性);
- 训练模型时数据、特征的扩展性问题,即学习算法可否在分布式环境下工作;
- 如何结合实际应用场景(比如多资源位/多广告位的点击预估问题),给出相应的解决方案.
从模型的角度,过拟合和稀疏性问题可以在优化求解中的LR损失函数基础上加上正则项来解决:
超大规模稀疏LR模型学习问题,LR模型自身是做不到的。这个时候需要我们为它选择一个学习算法和分布式系统。在分布式环境下,约束优化求解理想方案之一-ADMM算法(交叉方向乘子法),可用于求解形式为"loss function + 正则项"目标函数极值问题。
关于ADMM,这里给出简单的概括:
- ADMM算法在拉格朗日函数中引入惩罚函数项(二阶项)用于保证求解时的收敛效率(收敛速度)和结果的健壮性(放松目标函数为强凸的限制)。
- 目标函数可分的,可以将数据集划分多了数据block,各自学习得到局部参数,然后汇总得到全局参数;进一步将全局参数“广播”(broadcast)至各个计算节点,用于下一轮局部参数学习的初始值。
- ADMM算法框架将目标函数划分为两部分(为了引入全局参数),局部参数与全局参数的组合作为约束条件;算法自身结构也是为了适应在分布式环境下求解。
注:LR模型用于解决大规模预估问题还是有很多挑战的。比如上面提到的几个问题,当然都不是预估模型的问题,而是一个大规模机器学习任务所面临的问题:
- 特征离散化表示后(尤其是ID类特征),特征会非常稀疏,学习时需要考虑稀疏性问题;
- 训练数据集相比样本的高维度特征向量表示来说,显得“捉襟见肘”时,学习时要考虑过拟合问题;
- 如何在更多的训练数据集和更高的数据特征维度上,借助分布式框架+优化求解算法框架解决超大规模离散LR模型学习问题
上面列出了3个比较重要的问题。2016年Q2时,我会结合之前的研究、学习和工作经验,整理出一个《广告点击率预估》这样一个专题,重点讨论里面的核心问题、解决方案以及相关工具。
回归问题相关解释
广义线性回归
其实,回归家族的模型可以统称为广义上的线性回归。如果把w看作是参数,而xi,xixj,x2i等看作参数的常量(他们可直接从线性观测数据中计算得到),如此上面介绍的回归模型都可以看作是参数w的线性函数。
线性回归与线性关系
线性回归固然可以表达线性关系,但是也可以表达非线性关系。如<广义线性回归>中解释的那样,如果先把每个特征变量映射到一个函数(如xi→x2i),然后再进行线性计算。如此,线性回归可以表达特征与结果之间的非线性关系。
广义线性回归既可以表达线性关系,也可以表达非线性关系。
更多案例请关注“思享会Club”公众号或者关注思享会博客:http://gkhelp.cn/