Logistic回归做多分类和Softmax回归

时间:2022-12-30 23:41:57

我们已经知道,普通的logistic回归只能针对二分类(Binary Classification)问题,要想实现多个类别的分类,我们必须要改进logistic回归,让其适应多分类问题。

关于这种改进,有两种方式可以做到。

第一种方式是直接根据每个类别,都建立一个二分类器,带有这个类别的样本标记为1,带有其他类别的样本标记为0。假如我们有Logistic回归做多分类和Softmax回归个类别,最后我们就得到了Logistic回归做多分类和Softmax回归个针对不同标记的普通的logistic分类器。

第二种方式是修改logistic回归的损失函数,让其适应多分类问题。这个损失函数不再笼统地只考虑二分类非1就0的损失,而是具体考虑每个样本标记的损失。这种方法叫做softmax回归,即logistic回归的多分类版本。

我们首先简单介绍第一种方式。

对于二分类问题,我们只需要一个分类器即可,但是对于多分类问题,我们需要多个分类器才行。假如给定数据集Logistic回归做多分类和Softmax回归,它们的标记Logistic回归做多分类和Softmax回归,即这些样本有Logistic回归做多分类和Softmax回归个不同的类别。

我们挑选出标记为Logistic回归做多分类和Softmax回归的样本,将挑选出来的带有标记Logistic回归做多分类和Softmax回归的样本的标记置为1,将剩下的不带有标记Logistic回归做多分类和Softmax回归的样本的标记置为0。然后就用这些数据训练出一个分类器,我们得到Logistic回归做多分类和Softmax回归(表示针对标记Logistic回归做多分类和Softmax回归的logistic分类函数)。

按照上面的步骤,我们可以得到Logistic回归做多分类和Softmax回归个不同的分类器。针对一个测试样本,我们需要找到这Logistic回归做多分类和Softmax回归个分类函数输出值最大的那一个,即为测试样本的标记:

Logistic回归做多分类和Softmax回归

下面我们介绍softmax回归。

对于有Logistic回归做多分类和Softmax回归个标记的分类问题,分类函数是下面这样:

Logistic回归做多分类和Softmax回归

在这里,我们将上式的所有的Logistic回归做多分类和Softmax回归组合起来,用矩阵Logistic回归做多分类和Softmax回归来表示,即:

Logistic回归做多分类和Softmax回归

这时候,softmax回归算法的代价函数如下所示(其中Logistic回归做多分类和Softmax回归):

Logistic回归做多分类和Softmax回归

很明显,上述公式是logistic回归损失函数的推广。

我们可以把logistic回归的损失函数改为如下形式:

Logistic回归做多分类和Softmax回归

 

但是,需要特别注意的是,对于Logistic回归做多分类和Softmax回归,softmax回归和logistic回归的计算方式是不同的。

对于选择softmax分类器还是Logistic回归做多分类和Softmax回归个logistic分类器,取决于所有类别之间是否互斥。所有类别之间明显互斥用softmax分类器,所有类别之间不互斥有交叉的情况下最好用Logistic回归做多分类和Softmax回归个logistic分类器。

参考资料:

http://deeplearning.stanford.edu/wiki/index.php/Softmax_Regression
http://blog.csdn.net/u013239871/article/details/51291277