softmax回归

在解决多分类问题时,我们可以直接构建一个softmax回归模型,同时对所有类别进行识别。

在softmax回归中,包括了两个步骤。

  • softmax线性预测:
    输入一个样本的特征向量,输出多个线性预测结果。
  • softmax计算类别概率:
    将上述结果输入到softmax函数,softmax函数会将多个线性输出,转换为每个类别的概率。

softmax步骤

softmax线性预测

在某多分类问题中,有三个目标类别o1、o2、o3,四个输入特征,x1到x4。

softmax线性预测输入

softmax回归会基于输入x,计算o1、o2、o3三个线性输出。

softmax线性预测输出

在计算每一个线性输出o时,都会依赖一组w和b参数。
我们可以将softmax回归,看做是一个具有多个输出的单层神经网络。

softmax线性预测w和b

我们可以基于矩阵,计算线性输出o。

例如,在计算o=Wx+b时。
W是一个34的权重矩阵。
b代表了一个3
1的偏置列向量。
x是4*1的特征向量。

softmax线性预测计算

经过计算,会得到3*1的输出结果o。

softmax线性预测计算结果

softmax计算类别概率

计算出线性输出o后,将o输入到softmax函数,从而将线性输出o转换为每个类别的预测概率y。

softmax类别概率

设有n个输出,o1到on。
第k个输出是ok,它对应的类别概率是yk。

softmax类别概率公式

其中yk等于,常数e的ok次方,除以e的o1次方加上e的o2次方,等等到e的on次方,所有指数函数的和。

softmax类别概率公式展开

这样,我们就通过softmax函数,将所有线性输出,都转换为0到1之间的实数了。
并且输出的总和,y1+y2加到yn,这个结果恰好为1。

softmax类别概率总和

softmax计算类别概率示例

设输出o1、o2、o3分别等于3个浮点数,0.3、2.9和4.0。
然后计算e的0.3、2.9、4.0次方。

将它们累加到一起,结果是74.12。
然后使用e的oi次方除以74.12,就得到了对应的yi。
这时计算y1+y2+y3的和,结果恰好等于1。

因为y3的值最大,所以最终识别的结果为类别3。

softmax类别概率示例

softmax回归的总结

总结来说,softmax函数不会改变线性输出o之间的大小顺序,只会为每个类别分配相应的概率。

softmax回归模型的优势

softmax回归模型的优势在于模型简洁和高效。
我们只需要一次训练,就可以得到同时识别所有类别的多分类模型。

另外,softmax回归也可以很好地处理类别间的互斥问题。
softmax函数可以确保预测结果的总和为1,这在某些使用类别互斥的场景下,非常有用。

softmax回归模型的劣势

不过使用softmax回归也存在着一些问题。

在需要优化模型中的某个类别,或增加新的类别时,会影响到其他所有类别,这样就会产生较高的评估与维护成本。