ML Lecture 5: Classification——Logistic Regression(下)

ML Lecture 5: Classification——Logistic Regression


Logistic回归的缺陷:线性不可分问题/布尔函数异或(XOR)问题

假设有四个样本,它们具有 2 维特征,蓝色代表样本的真实类别为 C 2 ,红色代表样本的真实类别为 C 1 。将四个样本点在坐标图上表示:

在二分类问题中,Logistic回归所做的事情是计算 z = w T x + b 。其中, w = [ w 1 w 2 ] x = [ x 1 x 2 ] 都是 2 维向量。所以:

z = w T x + b = w 1 x 1 + w 2 x 2 + b

并将 z 代入到Sigmoid函数转换为一个概率值 σ ( z ) = y
y 0.5 z 0 时,将样本判为第一类。

所以对于上面的样本点应该有:

z = w 1 x 1 + w 2 x 2 + b 是一条线性的直线,它只能将二维平面划分为两个区域,一个区域代表样本属于 C 1 ,另一个区域代表样本属于 C 2 。而这种线性不可分的样本情况,不是单纯用一条直线就能划分清楚,所以无法用直线 z = 0 进行分类,或者说分类效果不好。这是Logistic回归本身能力问题:即只能做线性分类,增加样本个数也是无法改善分类效果的。

这种情况下,如果要用Logistic回归方法,只能通过特征转换(Feature Transformation),使其变为Logistic回归可以处理的线性分类问题,才能对样本进行分类。即通过特征转换,使得转换后的新的蓝色点、红色点分别落在一条直线的两边。

特征转换的方法(核方法)有很多种, 核方法的主要思想是基于这样一个假设:在低维空间中不能线性分割的点集,通过转化为高维空间中的点集时,很有可能变为线性可分的,这里以其中一种为例:

  • 把原来的二维特征 [ x 1 x 2 ] 转换为新的二维特征 [ x 1 x 2 ] ,其中:
    x 1 表示 [ x 1 x 2 ] [ 0 0 ] 之间的距离
    x 2 表示 [ x 1 x 2 ] [ 1 1 ] 之间的距离

  • 通过这种转化,蓝色点、红色点分别落在新的位置上,并且是线性可分的:

    [ 0 1 ] [ 1 1 ]
    [ 1 0 ] [ 1 1 ]
    [ 1 1 ] [ 2 0 ]
    [ 0 0 ] [ 0 2 ]

而如何对特征做转化并非很直觉地就能判断出来,通常需要一些专业知识辅助决策。


核方法下的Logistic回归

前面通过核方法做特征转换后,新的二维特征使得样本点变得线性可分,从而能用Logistic回归方法做分类。从“特征转换 分类”的整个过程,可以看成是很多个Logistic回归相叠加的结果

  1. 原来的样本特征 [ x 1 x 2 ] x 1 的过程,可以视为一个Logistic回归(蓝色)完成的:它的输入是 x 1 x 2 ,输出是 x 1

  2. 原来的样本特征 [ x 1 x 2 ] x 2 的过程,可以视为另外一个Logistic回归(绿色)完成的:它的输入是 x 1 x 2 ,输出是 x 2

  3. 新特征 [ x 1 x 2 ] 使样本变得线性可分,这个分类过程是红色Logistic回归完成的:它的输入是 x 1 x 2 ,它的输出是概率值 y

下面举例说明特征转换的过程确实可以通过Logistic回归完成。对于样本点:

[ 0 0 ] [ 0 1 ] [ 1 1 ] [ 1 0 ]

  1. 假设蓝色Logistic回归的参数为: b = 1 w 1 = 2 w 2 = 2
    对每个样本计算 σ ( w 1 x 1 + w 2 x 2 + b ) ,则经过特征转换后,每个样本的第一维特征发生变化:

    [ 0.27 / ] [ 0.73 / ] [ 0.27 / ] [ 0.05 / ]

    以上转换过程视为矩阵运算

    [ 2 2 1 ] [ 0 0 1 1 0 1 1 0 1 1 1 1 ] = [ 1 1 1 3 ] [ 0.27 0.73 0.27 0.05 ]

  2. 假设绿色Logistic回归的参数为: b = 1 w 1 = 2 w 2 = 2
    对每个样本计算 σ ( w 1 x 1 + w 2 x 2 + b ) ,则经过特征转换后,每个样本的第二维特征发生变化:

    [ / 0.27 ] [ / 0.05 ] [ / 0.27 ] [ / 0.73 ]

    以上转换过程视为矩阵运算

    [ 2 2 1 ] [ 0 0 1 1 0 1 1 0 1 1 1 1 ] = [ 1 3 1 1 ] [ 0.27 0.05 0.27 0.73 ]

  3. 四个样本点都有了新的特征值:

    [ 0.27 0.27 ] [ 0.73 0.05 ] [ 0.27 0.27 ] [ 0.05 0.73 ]
    将其画在二维坐标图上,通过红色Logistic回归进行分类:



总结

综上,尽管Logistic回归没有办法进行非线性的分类,但通过把不同的Logistic回归串接起来:前面的Logistic回归负责特征转换(如第 1 2 步),最后一个Logistic回归负责分类(如第 3 步)。

当把所有的Logistic回归串接起来以后,这些Logistic回归的参数是可以同时训练得到的,只要知道输入值、输出值,就可以利用梯度下降,把所有的参数一次性训练出来。

其中,每一个Logistic回归又称为神经元(Neuron),类似于人脑中的神经元。当把许多个神经元串接在一起后,所形成的整体就称为神经网络(Neural Network),由此进入深度学习的范畴。

参考资料
总结一下遇到的各种核函数~
维基百科:逻辑异或

猜你喜欢

转载自blog.csdn.net/Joyliness/article/details/80215824