回归(三)
Softmax回归
二分类到多分类问题
在Logistic回归中,我们处理的是二分类的问题。我们假定事件的对数几率满足线性模型,得到的概率函数满足sigmoid函数的形式。在使用模型预测的时候,如果求出的概率大于0.5,就预测;否则就预测。即:
如果碰到多分类问题呢?先以三分类为例;假设有三个类别,那么我们就可以做三次logistic回归,假定有n个特征值,我们可以定义:
那么的概率分别为:
这就做了三次logistic回归。然后比较三者的概率大小。那么是否能够直接使用某种方法,通过一次回归就得到属于每个类别的概率呢?
假设现在我们已经求出了的概率,分别为。那么一定满足:
- (1)的越大,则事件的可能性越大
- (2)
显然,是满足条件(1)的,要让概率和为零,只需要对做一个归一化操作。最简单的就是,但是这种处理虽然简单也易于理解,但是在之后的一些处理如求导的操作中比较麻烦。
使用softmax回归处理多分类问题
数学可以得到,可以用来近似地表示,通常这么做是因为相对于更容易求偏导和微分。这里我们对上面的归一化做一些修改,不再是简单地除以所有的和,我们对重新赋予含义:
拓展到K分类的问题,第k类的参数为,组成二维矩阵。那么:
同样可以计算似然函数,对数似然和求随机梯度:
似然函数:
对数似然:
随机梯度:
公式中的采用one-hot编码,对于训练数据如果,则有:
这样,使用模型预测时得到的K维列向量中,每一个维度的数值就可以表征属于对应类别的概率。