四、Softmax回归
解决多分类问题。
1. 换个思路推导出softmax函数
在《回归算法(二):逻辑回归》中提到,P(yi=1|xi)依赖于exp(wxi),用一个参数向量w来推测yi属于1的概率,exp(wxi)大则说明yi属于1的概率大,exp(wxi)小则说明yi属于1的概率小;只不过在二分类问题中,yi属于1的概率小,则yi不属于1,而属于另一类(yi=0)。但在多分类问题中,exp(wxi)小只能说明yi不属于1,但不知道yi属于其他哪一类。所以引入【多个】参数向量w预测该样本属于哪个类的概率。
w1用来预测yi属于1的概率,w2用来预测yi属于2的概率,w3用来预测yi属于3的概率
P∈(0,1),exp() ∈(0,+∞)。因此如何把exp()的值域变成(0,1),且要使得概率之和等于1。如何只是单纯地对每个exp(wjxi)变成sigmoid(wjxi),确实可以解决 “把exp()的值域变成(0,1)”,也能预测多个类;但不能解决概率之和等于1,即可能会出现exp(w1xi)+exp(w2xi)大于1的结果。所以不采取这种方法。而是采用归一化的手段,于是有:
这样就能把exp()的值域变成(0,1),也能预测多个类,同时概率之和等于1,这个就是Softmax函数。
2. 如何求解w?
利用极大似然法,求得损失函数:(k个类,m个样本)
求导:(j表示类别 j)
对其中一向量w的一个值wa求导:(log(a/b) = loga - logb)
这里先解释其中两步重要求导:
上式是对 w(j)a 求导,若yi=j,则为 x(i)a,否则为0。
在 k 中总有一个 j 等于 yi,其余 j 不等于 yi 的项就等于0,所以
有了这两步的解释,可以继续往下推导
3. 如何梯度下降?
4. softmax回归和逻辑回归的关系
当类别数目等于2的时候,softmax回归和逻辑回归的关系会是怎样呢?
这里先说明softmax函数的一个特点:参数冗余
这里可以看出,本来是两个参数,但最后可以变成一个参数,这就是参数冗余;也就是说,无论有多少个参数,最后都能减少一个参数。同时这个例子也说明了softmax回归在处理二分类问题时就是逻辑回归。
5. 其他多分类的方法:基于逻辑回归二分类
(1)OVR(one vs rest)
比如:ABC三个类(共K个类)
分成3种情况:
- A类 其他类(BC)
- B类 其他类(AC)
- C类 其他类(AB)
训练K个分类器(这个例子是3个),放入样本,哪个得分高就是哪个类
(2)OVO(one vs one)
比如:ABCD四个类(共K个类)
每次只取两类样本来训练一个分类器,则有:
A-B分类器、A-C分类器、A-D分类器、B-C分类器、B-D分类器、C-D分类器
则训练个分类器,放入样本,哪个得分高就是哪个类
欢迎转载,转载请标明出处