![Python机器学习算法: 原理、实现与案例](https://wfqqreader-1252317822.image.myqcloud.com/cover/317/27563317/b_27563317.jpg)
上QQ阅读APP看书,第一时间看更新
2.2 Softmax回归
Logistic回归只能处理二元分类问题,在其基础上推广得到的Softmax回归可处理多元分类问题。Softmax回归也被称为多元Logistic回归。
2.2.1 Softmax函数
假设分类问题有K个类别,Softmax对实例的类别进行预测时,需分别计算
为每一个类别的概率,因此每个类别拥有各自独立的线性函数
:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P35_11490.jpg?sign=1739307578-zfypuQ4Op1KmqqyQcuSSARvHSV8kdzF0-0-9e998f29293f7ea4aea60bf74ef0083b)
这就意味着有K个,它们构成一个矩阵:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P35_11496.jpg?sign=1739307578-Y0u3GAxw0sRPKnqmqMMjKnhIZohVcQUZ-0-dd5c370a60754ec2de3b07e614fcdb97)
可定义Softmax回归的函数为:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P35_11502.jpg?sign=1739307578-TqQoFhJS5P4oOOokCckojPGMnGesPr7d-0-166f651c459de63f61f8f00532e03a39)
与Logistic回归的logistic函数相对应,Softmax回归使用softmax函数来预测概率。
softmax函数的输出为一个向量:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P36_11511.jpg?sign=1739307578-NlcE2PrUdCAdn2EmPguRiKgTVX3a29SK-0-05c75fb7b363d3af8dc0c301803272c5)
其中的分量即是模型预测
为第j个类别的概率。
定义如下:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P36_11523.jpg?sign=1739307578-7V7ZvJ32vEtulCIoJB2UhIEfpKB9DbUD-0-85d6508dd42c73036207953497b0b470)
经观察可发现,logistic函数实际上是softmax函数的特例:K=2时,softmax函数、分子分母同时除以,便是logistic函数的形式。
2.2.2 Softmax回归模型
Softmax回归模型假设函数为:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P36_11531.jpg?sign=1739307578-V1MLzfg4tocvUbQQ7eaGvmm0JvZY9hOj-0-dc4b76b61204c0e8d2d6f8be08407b0d)
的输出是模型预测
为各类别的概率,如果通过训练确定了模型参数
,便可构建出多元分类函数:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P36_11541.jpg?sign=1739307578-7kuFFHqUsRHabl2JpbtW6npYWqFJC7Ey-0-1aa197e9dafdf4f7f03bf166d24ba818)
2.2.3 梯度下降更新公式
Softmax回归模型的损失函数被称为交叉熵,定义如下:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P36_11545.jpg?sign=1739307578-VfYYSVA8lp8NjHwYXoiuZBhl7dOEaYG9-0-468880426d9532dbd9ded4128a256f22)
其中,为指示函数,当
时为1,否则为0。经观察可发现,Logistic回归的损失函数是K = 2时的交叉熵。
下面推导梯度下降算法中参数的更新公式。
为矩阵,更新
即更新其中每一个
,这就需要计算
对每一个
的梯度。推导过程与Logistic回归类似,这里直接给出计算公式:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P37_11574.jpg?sign=1739307578-fOacQmbjjqAfMRg1Z35hl1PVujTBQrft-0-f5c0d24b274e7548d1ae63fb7a2b3b85)
其中,可解释为模型预测
为第j类别的概率与其实际是否为第j类别(是为1,不是为0)之间的误差。
对于随机梯度下降算法,每次只使用一个样本来计算梯度(m=1),相应梯度计算公式为:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P37_11586.jpg?sign=1739307578-f3YD9AZcIIUCVTRlnPbPZ6WIhOMECAfI-0-b52f32cd3e937eedb96b88d69935c15d)
假设梯度下降(或随机梯度下降)算法学习率为,
的更新公式为:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P37_11595.jpg?sign=1739307578-gzCsFtxjzP6tkJzZdQcLw67PNp2m2OCe-0-169683f39bd6b34a86b099f7aca7e6b2)
最终得出,模型参数的更新公式为:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P37_11601.jpg?sign=1739307578-WhuBNwURIxf5W5rCtEOlk2JsV2qAJN74-0-ff40b7a88742568add75f05aee1d5404)