[关闭]
@hanxiaoyang 2017-12-14T12:27:14.000000Z 字数 5129 阅读 2009

机器学习系列(2)_从初等数学视角解读逻辑回归

个人博客


作者:龙心尘 && 寒小阳
时间:2015年10月。
出处:http://blog.csdn.net/longxinchen_ml/article/details/49284391
http://blog.csdn.net/han_xiaoyang/article/details/49332321
声明:版权所有,转载请注明出处,谢谢。

一、 引言

前一篇文章《机器学习系列(1)_逻辑回归初步》中主要介绍了逻辑回归的由来,作用和简单的应用,这里追加这篇《机器学习系列(2)用初等数学视角解读逻辑回归》来看看从直观的数学视角,可以怎么去理解逻辑回归的思想思路。

为了降低理解难度,本文试图用最基础的初等数学来解读逻辑回归,少用公式,多用图形来直观解释推导公式的现实意义,希望使读者能够对逻辑回归有更直观的理解。

二、 逻辑回归问题的通俗几何描述

逻辑回归处理的是分类问题。我们可以用通俗的几何语言重新表述它:
空间中有两群点,一群是圆点“〇”,一群是叉点“X”。我们希望从空间中选出一个分离边界,将这两群点分开。

逻辑回归几何

注:分离边界的维数与空间的维数相关。如果是二维平面,分离边界就是一条线(一维)。如果是三维空间,分离边界就是一个空间中的面(二维)。如果是一维直线,分离边界就是直线上的某一点。不同维数的空间的理解下文将有专门的论述。

为了简化处理和方便表述,我们做以下4个约定:

  1. 我们先考虑在二维平面下的情况。
  2. 而且,我们假设这两类是线性可分的:即可以找到一条最佳的直线,将两类点分开
  3. 用离散变量y表示点的类别,y只有两个可能的取值。y=1表示是叉点“X”,y=0表示是是圆点“〇”。
  4. 点的横纵坐标用x(X1,X2)表示。

于是,现在的问题就变成了:怎么依靠现有这些点的坐标(X1,X2)和标签(y),找出分界线的方程。

三、 如何用解析几何的知识找到逻辑回归问题的分界线?

  1. 我们用逆推法的思路:
    假设我们已经找到了这一条线,再寻找这条线的性质是什么。根据这些性质,再来反推这条线的方程。
  2. 这条线有什么性质呢?
    首先,它能把两类点分开来。——好吧,这是废话。( ̄▽ ̄)”
    然后,两类点在这条线的法向量p上的投影的值的正负号不一样,一类点的投影全是正数,另一类点的投影值全是负数
    • 首先,这个性质是非常好,可以用来区分点的不同的类别
    • 而且,我们对法向量进行规范:只考虑延长线通过原点的那个法向量p。这样的话,只要求出法向量p,就可以唯一确认这条分界线,这个分类问题就解决了。
      法向量投影
      投影结果
  3. 还有什么方法能将法向量p的性质处理地更好呢?
    因为计算各个点到法向量p投影,需要先知道p的起点的位置,而起点的位置确定起来很麻烦,我们就干脆将法向量平移使其起点落在坐标系的原点,成为新向量p’。因此,所有点到p’的投影也就变化了一个常量。
    原点法向量投影
    原点法向量投影结果
    假设这个常量为θ0,p’向量的横纵坐标为(θ1,θ2)。空间中任何一个点x (X1,X2)到p’的投影就是θ1X1+θ2X2,再加上前面的常量值就是:θ0+θ1X1+θ2X2
    看到上面的式子有没有感到很熟悉?这不就是逻辑回归函数hθ(x)=g(θ0+θ1X1+θ2X2)中括号里面的部分吗?
    z=θ0+θ1X1+θ2X2 就可以根据z的正负号来判断点x的类别了。

四、 从概率角度理解z的含义。

由以上步骤,我们由点x的坐标得到了一个新的特征z,那么:

z的现实意义是什么呢?

首先,我们知道,z可正可负可为零。而且,z的变化范围可以一直到正负无穷大。
z如果大于0,则点x属于y=1的类别。而且z的值越大,说明它距离分界线的距离越大,更可能属于y=1类。
那可否把z理解成点x属于y=1类的概率P(y=1|x) (下文简写成P)呢?显然不够理想,因为概率的范围是0到1的。
但是我们可以将概率P稍稍改造一下:令Q=P/(1-P),期望用Q作为z的现实意义。我们发现,当P的在区间[0,1]变化时,Q在[0,+∞)区间单调递增。函数图像如下(以下图像可以直接在度娘中搜“x/(1-x)”,超快):
发生比函数图像
但是Q的变化率在[0,+∞)还不够,我们是希望能在(-∞,+∞)区间变化的。而且在P=1/2的时候刚好是0。这样才有足够的解释力。

注:因为P=1/2说明该点属于两个类别的可能性相当,也就是说这个点恰好在分界面上,那它在法向量的投影自然就是0了。

而在P=1/2时,Q=1,距离Q=0还有一段距离。那怎么通过一个函数变换然它等于0呢?有一个天然的函数log,刚好满足这个要求。
于是我们做变换R=log(Q)=log(P/(1-P)),期望用R作为z的现实意义。画出它的函数图像如图:
logit函数
这个函数在区间[0,1]中可正可负可为零,单调地在(-∞,+∞)变化,而且1/2刚好就是唯一的0值!基本完美满足我们的要求。
回到我们本章最初的问题,

“我们由点x的坐标得到了一个新的特征z,那么z的具体意义是什么呢?”

由此,我们就可以将z理解成x属于y=1类的概率P经过某种变换后对应的值。也就是说,z= log(P/(1-P))。反过来就是P=g(z)=1/(1+e-z)。图像如下:
sigmoid函数
这两个函数log(P/(1-P)) 、1/(1+e-z)看起来熟不熟悉?

这就是传说中的logit函数和sigmoid函数!

小小补充一下:

于是,我们不光得到了z的现实意义,还得到了z映射到概率P的拟合方程:

P=hθ(x)=g(θ0+θ1X1+θ2X2)= g(z)=1/(1+e-z)

有了概率P,我们顺便就可以拿拟合方程P=g(z)=1/(1+e-z)来判断点x所属的分类:

当P>=1/2的时候,就判断点x属于y=1的类别;当P<1/2,就判断点x属于y=0的类别。

logit变换

五、 构造代价函数求出参数的值

到目前为止我们就有两个判断某点所属分类的办法,一个是判断z是否大于0,一个是判断g(z)是否大于1/2。
然而这并没有什么X用,

以上的分析都是基于“假设我们已经找到了这条线”的前提得到的,但是最关键的(θ0,θ1,θ2)三个参数仍未找到有效的办法求出来。

还有没有其他的性质可供我们利用来求出参数(θ0,θ1,θ2)的值?

由此可见,设计一个好的代价函数,将是我们处理好分类问题的关键。而且不同的代价函数,可能会有不同的结果。因此更需要我们将代价函数设计得解释性强,有现实针对性。
为了衡量“预估结果和实际结果的差距”,我们首先要确定“预估结果”“实际结果”是什么。

接下来是衡量两个结果的“差距”。

代价函数确定了,接下来的问题就是机械计算的工作了。常见的方法是用梯度下降法。于是,我们的平面线形可分的问题就可以说是解决了。

六、 从几何变换的角度重新梳理我们刚才的推理过程。

回顾我们的推理过程,我们其实是在不断地将点x(X1,X2)进行几何坐标变换的过程。

七、 对于简单的非线性可分的问题。

  1. 由以上分析可知。比较关键的是第一步,我们之所以能够这样映射是因为假设我们点集是线性可分的。但是如果分离边界是一个圆呢?考虑以下情况。
    非线性可分
  2. 我们仍用逆推法的思路:
    • 通过观察可知,分离边界如果是一个圆比较合理。
    • 假设我们已经找到了这个圆,再寻找这个圆的性质是什么。根据这些性质,再来反推这个圆的方程
  3. 我们可以依据这个性质:
    • 圆内的点到圆心的距离小于半径,圆外的点到圆心的距离大于半径
    • 假设圆的半径为r,空间中任何一个点x (X1,X2)到原点的距离为X12+X22
    • z= X12+X22-r2,就可以根据z的正负号来判断点x的类别了
    • 然后令P=hθ(x)=g( X12+X22-r2)= g(z)=1/(1+e-z),就可以继续依靠我们之前的逻辑回归的方法来处理和解释问题了。
  4. 从几何变换的角度重新梳理我们刚才的推理过程。
    • 第一步是将分布在整个二维平面的点x(X1,X2)通过某种方式映射到一维直线中,成为点x(z)
    • 第二步是将分布在整个一维射线的点x(z)通过sigmoid函数映射到一维线段[0,1]中成为点x(g(z))。
    • 第三步是将所有这些点的坐标通过代价函数统一计算成一个值v,如果这是最小值,相应的参数就是我们所需要的理想值。
      这里写图片描述

八、 从特征处理的角度重新梳理我们刚才的分析过程

其实,做数据挖掘的过程,也可以理解成做特征处理的过程。我们典型的数据挖掘算法,也就是将一些成熟的特征处理过程给固定化的结果
对于逻辑回归所处理的分类问题,我们已有的特征是这些点的坐标(X1,X2),我们的目标就是判断这些点所属的分类y=0还是y=1。那么最理想的想法就是希望对坐标(X1,X2)进行某种函数运算,得到一个(或者一些)新的特征z,基于这个特征z是否大于0来判断该样本所属的分类。
对我们上一节非线性可分问题的推理过程进行进一步抽象,我们的思路其实是:

九、 对于复杂的非线性可分的问题

由以上分析可知。比较关键的是第一步,如何设计转换函数z=f(X1,X2)。我们现在开始考虑分离边界是一个极端不规则的曲线的情况。
复杂非线性可分
我们仍用逆推法的思路:

十、 多维逻辑回归的问题

以上考虑的问题都是基于在二维平面内进行分类的情况。其实,对于高维度情况的分类也类似。
高维空间的样本,其区别也只是特征坐标更多,比如四维空间的点x的坐标为(X1,X2,X3,X4)。但直接运用上文特征处理的视角来分析,不过是对坐标x(X1,X2,X3,X4)进行参数更多的函数运算得到新的特征z=f(X1,X2,X3,X4)并假设z是某种程度的逻辑发生比,通过其是否大于0来判断样本所属分类。
而且,如果是高维线性可分的情况,则可以有更近直观的理解。

十一、 多分类逻辑回归的问题

以上考虑的问题都是二分类的问题,基本就是做判断题。但是对于多分类的问题,也就是做选择题,怎么用逻辑回归处理呢?
多分类
其基本思路也是二分类,做判断题。
比如你要做一个三选一的问题,有ABC三个选项。首先找到A与BUC(”U”是并集符号)的分离边界。然后再找B与AUC的分离边界,C与AUB的分离边界。
多分类-二分类
这样就能分别得到属于A、B、C三类的概率,综合比较,就能得出概率最大的那一类了。
最大化

十二、 总结列表

为了把本文的关系梳理清楚,我们画了以下这张图表。
逻辑回归

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注