前两章介绍了logistic回归,logistic模型能够解决二分类的问题。虽然logistic本身只能解决二分类的问题,但是增加一些操作,也能从算法层面实现多分类的问题。
本章开始介绍另一种回归模型:softmax回归
softmax回归: 是logistic回归的一般化,适用于K分类的问题,第k类的参数与向量θk,组成的二维矩阵为 θk*n;
先想明白以下几个问题:
1、θk是什么?
θk是一个向量,即第k个分类所对应的一组θ值。
2、n是什么?
n是特征的个数。
3、二维矩阵θk*n是什么?:
第一类分类的θ值: θ11, θ12, ... , θ1n
第二类分类的θ值: θ21, θ22, ... , θ2n
....
第 K类分类的θ值: θk1, θk2, ... , θkn
可见,在softmax回归中,需要求解的参数非常多。
softmax函数的本质是:将一个k维的任意实数向量,映射成另一个k维的实数向量,其中向量的每个元素取值都介于0~1之间。
softmax回归概率函数为:
演绎:
在Logistic中,属于第一类的概率是p,属于第二类的概率是1-p。
同理,在softmax回归中,若K=3,三种分类的概率之和必然也等于1。
数学公式如下:
接下来我们看看,softmax回归概率函数是如何推导出来的。
推导思路和Logistic回归类似,但现在的分类个数 K ≥ 2。
回顾一下Odds的概念:15 回归算法 - Logistic回归 - Logit函数
首先,根据Odds Ration定义,将构造函数写出来:
很多书上的推导公式最终都到上一步为止,经过统一化转换后可以得到我们一开始讲到的softmax回归概率函数:
先看明白以上的推导过程,并记住这个结论,以后有时间再进一步解释。
softmax算法的原理:
h(θ) 即预测的概率 p
p的构成:
在logistic中:分类属于0的概率 p,分类属于1的概率1-p ;最终预测结果构成的也是一个向量 [p, 1-p]
在softmax中:
现在思考,让我们获取到了概率矩阵后,如何求解θ?
构造损失函数:
考虑 j 取1~k的时候连乘的问题:
当 j=1时,连乘的是箭头中的内容,只有当样本 i 属于第1类的时候,I=1,箭头内的内容才需要被计算。否则当样本i 不属于第1类时,I=0,箭头内的内容乘以0还是等于0。
Softmax算法梯度下降求解θ:
最后手写一部分推导公式: