前言

  • 前面讲的都是用线性回归模型预判某件事是否会发生,这一节讲回归用于分类。

二分类问题

  • 我们以二分类为例子,定义模型输出大于0时,属于class1,小于0时属于class2.此时如果我们依然用y=b+wx作为我们的回归方程的话,就会出现如下的问题:

  • 当样本如图一所示的时候,程序能够很准确找出两类的边界,但是样本是像图二分布的话,程序找出来的分界线就会像紫色线那样,>>1的样本会被当成误差很大的样本点,实际上在分类问题中这类样本并不属于误差点。
  • 因此在分类问题中我们需要重新寻找模型函数,使得输入为样本x,F输出为为类别class,这类模型可以用感知器(perceptron)和SVM,但我们今天先讲另外一种模型。
  • 损失函数L可以定义为错误分类的次数,即L越小,分类错误数越小。如图:

Gaussain Distribution and Bayes’s theorem

  • 我们假设已知的训练样本满足高斯分布(Gaussain Distribution),当然假设样本时其他分布也行,比如二值特征还可以用伯努利分布(Bernoulli Distribution),但是在现实中高斯分布比较常见,我先假设样本满足高斯分布,可以减少工作量。高斯分布函数如下:

  • 由高斯函数求出来的是样本的先验概率P(X|C1),根据贝叶斯(Bayes)公式:

  • 我们就能求出样本的后验概率P(C1|X),即测试样本的概率。现在我们的问题就转化为根据训练样本求高斯函数的参数,一般我们采用最大似然估计法(Maximum Likelihood)求解这两个参数。有关最大似然估计法(Maximum Likelihood)可以参考我的这篇文章:从最大似然估计|贝叶斯估计|EM算法浅解|线性判别分析
  • 我们整理一下上图的后验概率公式,可以得到一个sigmoid函数:

  • 把高斯函数代入z中,经过一系列的数学变换,可以把Z整理成wx+b的形式。 其中的w与b和前面用最大似然估计求出来的有关。求出来的结果如下:

  • 整理成wx+b的形式了大家是不是已经很熟悉了,因为我们在前面的线性回归案例中用的回归方程就是这种形式啊,那么是不是我们也可以用Gradient Descent的方法来求w与b呢,整最大似然法不是舍近求远了吗?
  • 这两种求w与b的方法分别对应我们题目所说的判别模型(Discriminative model)和生成模型(Generative model),说了这么多,终于提到了和文章标题有关的东西了好难啊!用Gradient Descent的是判别模型,用最大似然法求解高斯参数的是生成模型。

    Logistic Regression

  • 上面的回归过程我们大致可以这样描述:某个事物有i个属性组成一个vector:(x1,x2,…,xi),在某个节点处进行wx+b操作,得到的结果作为sigmoid函数的输入,函数的输出为即为事物的类别。我们把这整个这一组合的操作定义为函数f(x),过程如图:

  • 假设已知w与b,给定一组Training data的特征和标签如下:

  • 则上图的序列出现的概率为,如果我们的模型越准确,则这个概率值越大,对其取反就变成模型越准确,值越小,正好满足loss function的要求。因此我们对前面的公式取反整理一下就变成:,从下图我们可以看出Logistic RegressionLinear Regression的异同:

  • 到这一步的时候,问题就来了,为什么我们不能像Linear Regression一样用均方根差当作误差呢?我们用均方根差当作误差当作我们的loss function

  • 这样求偏导的时候,会出现如下情况,当超级接近目标时,梯度方向导数为0,即停止迭代。但是距目标超级远的时候也会出现梯度方向导数为0的情况,这就是我们不想要的结果了。所以在逻辑回归时,不能使用均方根差当作误差。数学推导过程如下:

判别模型(Discriminative model) VS 生成模型(Generative model)

  • 我们用相同的Training data,分别用判别模型(Discriminative model) 和 生成模型(Generative model)求出w和b。然后比较他们的perfermance,实验结果为,生成模型模型准确率为:73%,判别模型准确率为79%。

生成模型的优点

  • 因为训练前假设了数据分布模型,可以用较少的数据量训练出性能比较好的模型;
  • 因为训练前假设了数据分布模型,使其对噪音更加具有鲁棒性;

判别模型的优点

  • 通过学习大量的Training data,一般准确率要略高于生成模型。