![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=1739020076-jISkKuNRzzOoRZ1rUoVIephxBwkrnvHL-0-fc062b686be95fe4909c2aed51df1b80)
这就意味着有K个,它们构成一个矩阵:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P35_11496.jpg?sign=1739020076-CdIQPBkr1UP4gSysmzyfwXCnFFeX5fMj-0-514e174bb45ac42379b3c06c10892c03)
可定义Softmax回归的函数为:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P35_11502.jpg?sign=1739020076-nxoeP1azQLTvSPeh1EQO0eXN5mWAalMF-0-14dfcf06e32e1bf8eddbafb18739a532)
与Logistic回归的logistic函数相对应,Softmax回归使用softmax函数来预测概率。
softmax函数的输出为一个向量:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P36_11511.jpg?sign=1739020076-XTpmC2F16DqLUyzSxNW5tgc9nTq8tbrw-0-67d8bdfad635730fca540209323ba33e)
其中的分量即是模型预测
为第j个类别的概率。
定义如下:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P36_11523.jpg?sign=1739020076-frsbgbBgDE2Y4sDjGXYRChuljTYuvopA-0-122b8571310d9f03d0d12c663b147c86)
经观察可发现,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=1739020076-BxPTcjQqamNbL6h9Nl3iCNI0yK3xW1zf-0-8543d8dfd72bf198d05932bc6fd1a537)
的输出是模型预测
为各类别的概率,如果通过训练确定了模型参数
,便可构建出多元分类函数:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P36_11541.jpg?sign=1739020076-dvHeSSuPKGpEcJTItBbiIqfxQnejZAia-0-77cf050ef1567029ee32c728a333238a)
2.2.3 梯度下降更新公式
Softmax回归模型的损失函数被称为交叉熵,定义如下:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P36_11545.jpg?sign=1739020076-fcWqIo5nl9cCabfXmFNQVJRQc2c07HCo-0-79b1ced8b81526c8da78fa3e1735e1be)
其中,为指示函数,当
时为1,否则为0。经观察可发现,Logistic回归的损失函数是K = 2时的交叉熵。
下面推导梯度下降算法中参数的更新公式。
为矩阵,更新
即更新其中每一个
,这就需要计算
对每一个
的梯度。推导过程与Logistic回归类似,这里直接给出计算公式:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P37_11574.jpg?sign=1739020076-4e0w6wJE2bYDOY83PJkKBwncphPF9NlB-0-13d8805978805cf6ce6bdd2ba3e3ba9c)
其中,可解释为模型预测
为第j类别的概率与其实际是否为第j类别(是为1,不是为0)之间的误差。
对于随机梯度下降算法,每次只使用一个样本来计算梯度(m=1),相应梯度计算公式为:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P37_11586.jpg?sign=1739020076-xeZ28IOP4DpOuKQrsmKrm6Rrd1OhapCI-0-52e9a5e4db3a9e8ee7ca1dd999c310f6)
假设梯度下降(或随机梯度下降)算法学习率为,
的更新公式为:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P37_11595.jpg?sign=1739020076-XiZRQwWQ6MmUSrBSU2AdEufngCx64Ixj-0-ac32c2794892fc8f4e6150015190f7fa)
最终得出,模型参数的更新公式为:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P37_11601.jpg?sign=1739020076-TBtdW3T6AMqSj2PSAcOcPWSL5AXqGyOv-0-fc49c25b04c0018cfb3abc9e7e700db4)