Python机器学习算法: 原理、实现与案例
上QQ阅读APP看书,第一时间看更新

2.2 Softmax回归

Logistic回归只能处理二元分类问题,在其基础上推广得到的Softmax回归可处理多元分类问题。Softmax回归也被称为多元Logistic回归。

2.2.1 Softmax函数

假设分类问题有K个类别,Softmax对实例的类别进行预测时,需分别计算为每一个类别的概率,因此每个类别拥有各自独立的线性函数

这就意味着K个,它们构成一个矩阵:

可定义Softmax回归的函数为:

与Logistic回归的logistic函数相对应,Softmax回归使用softmax函数来预测概率。

softmax函数的输出为一个向量:

其中的分量即是模型预测为第j个类别的概率。定义如下:

经观察可发现,logistic函数实际上是softmax函数的特例:K=2时,softmax函数、分子分母同时除以,便是logistic函数的形式。

2.2.2 Softmax回归模型

Softmax回归模型假设函数为:

的输出是模型预测为各类别的概率,如果通过训练确定了模型参数,便可构建出多元分类函数:

2.2.3 梯度下降更新公式

Softmax回归模型的损失函数被称为交叉熵,定义如下:

其中,为指示函数,当时为1,否则为0。经观察可发现,Logistic回归的损失函数是K = 2时的交叉熵。

下面推导梯度下降算法中参数的更新公式。为矩阵,更新即更新其中每一个,这就需要计算对每一个的梯度。推导过程与Logistic回归类似,这里直接给出计算公式:

其中,可解释为模型预测为第j类别的概率与其实际是否为第j类别(是为1,不是为0)之间的误差。

对于随机梯度下降算法,每次只使用一个样本来计算梯度(m=1),相应梯度计算公式为:

假设梯度下降(或随机梯度下降)算法学习率为的更新公式为:

最终得出,模型参数的更新公式为: