首先先说结论,两者的主要不同体现在(1)softmax用来解决多分类问题,lr解决二分类问题(2)softmax输出每一类的概率值,并确定概率最大的类是正确的,lr只区别是还是不是。事实上softmax是lr的一般情况。下面具体来看。
1.Logistic回归
一般线性分类器的是通过输入一系列的样本数据,学习一组权重系数 w0 w 0 , w1 w 1 … wn w n 来进行分类,即:
x=w0+w1x1+...+wnxn x = w 0 + w 1 x 1 + . . . + w n x n
这里
x1 x 1 ….
xn x n 是指每个样本的n个特征。
Logistic回归引入了sigmoid函数来进行学习,如下所示:
f(x)=11+e−x f ( x ) = 1 1 + e − x
这里的x和上面的表示是一样的,总之要通过这个sigmoid函数来学习这些系数。很显然f(x)的范围是在0到1之间的,令输出的值大小为y。则有
P(y=1|x,w)=f(x),P(y=0|x,w)=1−f(x) P ( y = 1 | x , w ) = f ( x ) , P ( y = 0 | x , w ) = 1 − f ( x )
我们定义一件事发生概率和不发生概率的比值为一件事发生的几率,即:
logP1−P=log(P(y=1|x,w)P(y=0|x,w))=Σnwixi l o g P 1 − P = l o g ( P ( y = 1 | x , w ) P ( y = 0 | x , w ) ) = Σ n w i x i
可以看出,输出类别1对数几率是x的线性函数。
学习的过程就是训练数据求出最优参数
wi w i 使得预测尽可能准确。由于预测的是P(y|x,w),所以使用极大似然函数估计时如下:
L(w)=∏i=1nP(yi|xi,w)=∏i=1nf(xi)yi(1−f(xi)1−yi) L ( w ) = ∏ i = 1 n P ( y i | x i , w ) = ∏ i = 1 n f ( x i ) y i ( 1 − f ( x i ) 1 − y i )
对上式求对数,得:
l(w)=logL(w)=log∏i=1nf(xi)yi(1−f(xi))1−yi=Σni=1yilogf(xi)+(1−yi)log(1−f(xi)) l ( w ) = l o g L ( w ) = l o g ∏ i = 1 n f ( x i ) y i ( 1 − f ( x i ) ) 1 − y i = Σ i = 1 n y i l o g f ( x i ) + ( 1 − y i ) l o g ( 1 − f ( x i ) )
最小化该式就可以求解出w,求解过程略(一般使用梯度下降法),进行判别时,计算P(y|x,w),如果大于0.5,预测类别为1,否则则为0。
2.Softmax回归
简单的来说,softmax用来分类时P(y|x,w)中y可以为1,2,..k,即可以对k类数据进行分类,不局限于2类。所以各类的分类表示如下:
P(y=1|x)=ew1xΣki=1ewix P ( y = 1 | x ) = e w 1 x Σ i = 1 k e w i x
……
P(y=k|x)=ewkxΣki=1ewix P ( y = k | x ) = e w k x Σ i = 1 k e w i x
参考Logistic损失函数建立的形式,这里同样采用了对数损失函数,表达如下:
J(w)=−1k(Σni=1Σkt=11[yi=t]logwtxiΣkm=1wmxi) J ( w ) = − 1 k ( Σ i = 1 n Σ t = 1 k 1 [ y i = t ] l o g w t x i Σ m = 1 k w m x i )
其中,
1[yi=t] 1 [ y i = t ] 是指示函数,若
yi=t y i = t 为真,否则为0。
综上可以看出,当类别数 k = 2 时,softmax 回归退化为 logistic 回归。这表明 softmax 回归是 logistic 回归的一般形式。
参考:
1.https://www.zhihu.com/question/26855978
2.http://www.cnblogs.com/guyj/p/3800519.html
3.https://blog.csdn.net/zhangliyao22/article/details/48379291