概述
对于一个简单的二分类问题,一般采用逻辑回归算法进行处理,但是在实际应用中会遇到很多多分类问题,此时逻辑回归就没有办法很适用了。下面介绍基于逻辑回归延伸出的Softmax Regression 算法,该算法可以有效处理简单的多分类问题。
模型介绍
Softmax Regression 算法是基于最大熵模型推导出来的。最大熵的原理认为,在所有可能的概率模型中,熵最大的模型就是最好的模型。假设离散随机变量X的概率分布是P(X),那么它的熵就可以表示为:
H
(
P
)
=
−
∑
x
p
(
x
)
l
o
g
p
(
x
)
H(P)=-\sum_xp(x)logp(x)
H(P)=−x∑p(x)logp(x)
基于这个假设经过一系列地推导得到概率模型函数:
p
(
y
(
i
)
=
j
∣
X
(
i
)
;
W
)
=
e
x
p
(
W
j
T
X
(
i
)
)
∑
k
l
=
1
e
x
p
(
W
l
T
X
(
i
)
)
p(y^{(i)}=j|X^{(i)};W)=\frac{exp(W^T_jX^{(i)})}{\sum_k^{l=1}exp(W^T_lX^{(i)})}
p(y(i)=j∣X(i);W)=∑kl=1exp(WlTX(i))exp(WjTX(i))
代价函数介绍
类似逻辑回归,Softmax Regression 的代价函数可以表示为交叉损失函数:
J
(
W
)
=
−
1
m
[
∑
i
=
1
m
∑
j
=
1
k
I
(
y
i
=
j
)
l
o
g
e
x
p
(
W
j
T
X
(
i
)
)
∑
k
l
=
1
e
x
p
(
W
l
T
X
(
i
)
)
]
J(W)=-\frac{1}{m}\left[ \sum_{i=1}^m \sum_{j=1}^kI(y^{i}=j)log\frac{exp(W^T_jX^{(i)})}{\sum_k^{l=1}exp(W^T_lX^{(i)})}\right]
J(W)=−m1[i=1∑mj=1∑kI(yi=j)log∑kl=1exp(WlTX(i))exp(WjTX(i))]
其中
I
(
y
i
=
j
)
I(y^i=j)
I(yi=j)为标记函数,判断正确为1,判断错误为0。
有了代价函数就可以采用梯度下降法进行求解了。
总结
Softmax Regression是逻辑回归在多分类问题上的推广,有和逻辑回归类型的性质。此外Softmax函数也是神经网络中常有的激活函数。
内容参考了《Python 机器学习算法》