Softmax回归也称多项(multinomial)或者多类(multi-class)的Logistic回归,是Logistic回归在多类分类问题上的推广。和逻辑回归一样属于线性模型。

SoftMax回归简介

对于多类问题,类别标签

可以用C个取值,给定一个样本x,softmax回归预测的是属于类别c的概率为(公式-1):

其中w_c是第c类的权重向量。

softmax回归的决策函数可以表示为(公式-2):


softMax与Logistic回归的关系:

当类别个C=2时,softMax回归的决策函数为(公式-3):

其中I(.)是指示函数,对比二分类决策函数(公式-4)

其中sgn表示符号函数(sign function),可以发现两类分类中的权重向量w=w1-w0


向量表示:

公式-1用向量形式可以写为(公式-5)

其中W=[w_1,w_2,…,w_C]是由C个类的权重向量组成的矩阵,1为全1的向量,

为所有类别的预测条件概率组成的向量,第c维的值是第c类的预测条件概率。

参数学习

给定N个训练样本{(x^n, y^n)},n<=N,softmax回归使用交叉熵损失函数来学习最优的参数矩阵W。

这里用C维的one-hot向量

来表示类别标签,其向量表示为(公式-6):

其中I(.)为指示函数。

采用交叉熵损失函数,softmax的经验风险函数为(公式-7):

其中

为样本x^n在每个类别的后验概率。

==说明:公式-7第一个式变换到第二个式是因为y_c类别中只有一个为1,其余为0,所以将第二个求和去除。==

风险函数R(W)关于W的梯度为(公式-8):

==证明:==

计算公式-8中的梯度,关键在于计算每个样本的损失函数

关于参数W的梯度,其中需要用到两个导数公式为:

  • 若y=softmax(z),则

为第c列为x,其余为0的矩阵。

根据链式法则,

关于w_c的偏导数为(公式-12):

公式-12也可以表示为非向量形式(公式-13):

其中I(.)为指示函数,根据公式-12可以得到(公式-14)

采用梯度下降法,softmax回归的训练过程为:初始化W_0 <- 0,然后通过下式进行迭代更新。

其中a是学习率,

是当参数为W_t时,softmax回归模型的输出。


注意:

softmax回归中使用的C个权重向量是冗余的,即对所有权重向量都减去一个同样的向量v,不改变其输出结果。因此,softmax往往需要正则化来约束参数。此外,可以利用这个特性来避免计算softmax函数时在数值计算上溢出问题。


打开微信扫一扫,关注微信公众号【搜索与推荐Wiki】