回归(三):Softmax回归

回归(三)

Softmax回归

二分类到多分类问题

在Logistic回归中,我们处理的是二分类的问题。我们假定事件的对数几率满足线性模型,得到的概率函数满足sigmoid函数的形式。在使用模型预测的时候,如果求出的概率大于0.5,就预测;否则就预测。即:

如果碰到多分类问题呢?先以三分类为例;假设有三个类别,那么我们就可以做三次logistic回归,假定有n个特征值,我们可以定义:

那么的概率分别为:

这就做了三次logistic回归。然后比较三者的概率大小。那么是否能够直接使用某种方法,通过一次回归就得到属于每个类别的概率呢?

假设现在我们已经求出了的概率,分别为。那么一定满足:

  • (1)的越大,则事件的可能性越大
  • (2)

显然,是满足条件(1)的,要让概率和为零,只需要对做一个归一化操作。最简单的就是,但是这种处理虽然简单也易于理解,但是在之后的一些处理如求导的操作中比较麻烦。

使用softmax回归处理多分类问题

数学可以得到,可以用来近似地表示,通常这么做是因为相对于更容易求偏导和微分。这里我们对上面的归一化做一些修改,不再是简单地除以所有的和,我们对重新赋予含义:

拓展到K分类的问题,第k类的参数为,组成二维矩阵。那么:

同样可以计算似然函数,对数似然和求随机梯度:

似然函数:

对数似然:J_m(\theta) = ln L(\theta) = \sum_{i=1}^m\sum_{k=1}^K y^{(i)}_k\centerdot\left( \theta^T_kx^{(i)} - ln\sum^K_{l=1}exp(\theta^T_lx^{(i)}) \right)\\ J(\theta) = \sum_{k=1}^K y_k\centerdot\left( \theta^T_kx - ln\sum^K_{l=1}exp(\theta^T_lx) \right)

随机梯度:

公式中的采用one-hot编码,对于训练数据如果,则有:

这样,使用模型预测时得到的K维列向量中,每一个维度的数值就可以表征属于对应类别的概率。

你可能感兴趣的:(回归(三):Softmax回归)