s o f t m a x softmax softmax回归是一个多分类模型 f ( X ) = s o f t m a x ( X n × d W d × k + b 1 × k ) f(X)=softmax(X_{n\times d}W_{d\times k}+b_{1\times k}) f(X)=softmax(Xn×dWd×k+b1×k),它的输出是每个类别的概率,样本集的标签以独热编码 o n e − h o t e n c o d i n g one-hot\ encoding one−hot encoding给出,这个模型认为给定输出特征 x 1 × d x_{1\times d} x1×d,类别是 j j j的概率是 s o f t m a x ( x W + b ) softmax(xW+b) softmax(xW+b)的第 j j j项,即 P ( y j ∣ x ) = s o f t m a x ( x W + b ) j = y ^ j P(y_j|x)=softmax(xW+b)_j=\hat{y}_j P(yj∣x)=softmax(xW+b)j=y^j,其中 y j y_j yj是标签的独热编码向量,它的第 j j j项不为 0 0 0,其他项都是 0 0 0,而 y ^ j \hat{y}_j y^j是一个数值,是输出向量中的第 j j j个分量。下面说明的是对这种分类任务而言,最大化对数似然函数等价于最小化交叉熵损失
尽管 s o f t m a x softmax softmax是一个非线性函数 s o f t m a x ( o i ) = e x p ( o i ) ∑ k e x p ( o k ) softmax(o_i)=\frac{exp(o_i)}{\sum_k exp(o_k)} softmax(oi)=∑kexp(ok)exp(oi),但它不改变输出 o o o的相对大小,分类结果 a r g m a x j y j ^ = a r g m a x j o j ^ argmax_j\ \hat{y_j}=argmax_j\ \hat{o_j} argmaxj yj^=argmaxj oj^不会改变,因此 s o f t m a x softmax softmax回归的输出仍然由输入特征的仿射变换决定,因此 s o f t m a x softmax softmax回归是一个线性分类模型
假设模型给出的分类概率向量是
y
^
(
i
)
\hat{y}^{(i)}
y^(i),似然函数是
P
(
Y
∣
X
)
=
∏
i
=
1
n
P
(
y
j
(
i
)
∣
x
(
i
)
)
P(Y|X)=\prod_{i=1}^nP(y^{(i)}_j|x^{(i)})
P(Y∣X)=∏i=1nP(yj(i)∣x(i)),其中
x
(
i
)
x^{(i)}
x(i)是第
i
i
i个样本向量,其中
y
j
(
i
)
y^{(i)}_j
yj(i)是第
i
i
i个标签的独热编码且第
j
j
j项不为
0
0
0,其他项都是
0
0
0(注意这里
y
j
(
i
)
y^{(i)}_j
yj(i)是一个向量,而不是分量数值,它表示的是真实发生的标签),而最大化似然函数相当于最小化负对数似然函数
−
l
o
g
P
(
Y
∣
X
)
=
∑
i
=
1
n
−
l
o
g
P
(
y
j
(
i
)
∣
x
(
i
)
)
=
∑
i
=
1
n
−
l
o
g
y
^
j
(
i
)
=
∑
i
=
1
n
H
(
y
(
i
)
,
y
^
(
i
)
)
-logP(Y|X)=\sum_{i=1}^n-logP(y^{(i)}_j|x^{(i)})=\sum_{i=1}^n-log\hat{y}_j^{(i)}=\sum_{i=1}^nH(y^{(i)},\hat{y}^{(i)})
−logP(Y∣X)=∑i=1n−logP(yj(i)∣x(i))=∑i=1n−logy^j(i)=∑i=1nH(y(i),y^(i)),其中真实标签向量和预测标签向量的交叉熵
H
(
y
(
i
)
,
y
^
(
i
)
)
=
−
∑
j
=
1
k
y
j
(
i
)
l
o
g
y
^
j
(
i
)
H(y^{(i)},\hat{y}^{(i)})=-\sum_{j=1}^ky_j^{(i)}log\hat{y}_j^{(i)}
H(y(i),y^(i))=−∑j=1kyj(i)logy^j(i),由于独热编码中只有一项是
1
1
1,因此
H
(
y
(
i
)
,
y
^
(
i
)
)
=
−
l
o
g
y
^
j
(
i
)
H(y^{(i)},\hat{y}^{(i)})=-log\hat{y}_j^{(i)}
H(y(i),y^(i))=−logy^j(i),其中
y
^
j
(
i
)
\hat{y}_j^{(i)}
y^j(i)是真实标签
y
y
y中不为零的那一项对应的预测概率,是一个数值。因此得到
m
a
x
P
(
Y
∣
X
)
⟺
min
∑
i
=
1
n
H
(
y
,
y
^
)
max\ P(Y|X)\iff\min\sum_{i=1}^nH(y,\hat{y})
max P(Y∣X)⟺min∑i=1nH(y,y^)
下面是损失函数
−
∑
j
=
1
k
y
j
l
o
g
y
^
j
-\sum_{j=1}^ky_jlog\hat{y}_j
−∑j=1kyjlogy^j代入模型的过程
l
(
y
,
y
^
)
=
−
∑
j
=
1
k
y
j
l
o
g
e
x
p
(
o
j
)
∑
i
=
1
k
e
x
p
(
o
k
)
=
∑
j
=
1
k
y
j
l
o
g
∑
i
=
1
k
e
x
p
(
o
k
)
−
∑
i
=
1
k
o
j
y
j
=
l
o
g
∑
i
=
1
k
e
x
p
(
o
k
)
−
∑
i
=
1
k
o
j
y
j
l(y,\hat{y})=-\sum_{j=1}^ky_jlog\frac{exp(o_j)}{\sum_{i=1}^kexp(o_k)}\\ =\sum_{j=1}^ky_jlog\sum_{i=1}^kexp(o_k)-\sum_{i=1}^ko_jy_j\\ =log\sum_{i=1}^kexp(o_k)-\sum_{i=1}^ko_jy_j
l(y,y^)=−j=1∑kyjlog∑i=1kexp(ok)exp(oj)=j=1∑kyjlogi=1∑kexp(ok)−i=1∑kojyj=logi=1∑kexp(ok)−i=1∑kojyj
最后一个等式也是利用了
y
y
y中只有一项是
1
1
1,下面求偏导数
∂
o
j
l
(
y
,
y
^
)
=
e
x
p
(
o
j
)
∑
k
e
x
p
(
o
k
)
−
y
j
=
s
o
f
t
m
a
x
(
o
)
j
−
y
j
\partial_{o_j}l(y,\hat{y})=\frac{exp(o_j)}{\sum_k exp(o_k)}-y_j=softmax(o)_j-y_j
∂ojl(y,y^)=∑kexp(ok)exp(oj)−yj=softmax(o)j−yj
因此偏导就是输出中的每一个分量与真实独热标签直接的差异,这很类似回归问题中的绝对损失函数,其中梯度是观测值
y
y
y和估计值
y
^
\hat{y}
y^之间的差异。这不是巧合,在任何指数族分布模型中,对数似然的梯度正是由此得出的,这使得梯度的计算在实践中变得容易很多
这里是
l
o
g
i
s
t
i
c
logistic
logistic回归模型,
l
o
g
i
s
t
i
c
logistic
logistic回归模型实际上是
s
o
f
t
m
a
x
softmax
softmax回归损失函数的特殊情况,下面给出公式解释
下面的表述中忽略转置符号和偏置项(只需在w和x中多加一项即可表达),在softmax回归中
P
(
y
=
j
∣
x
)
=
s
o
f
t
m
a
x
(
w
x
)
=
e
w
j
x
∑
k
=
1
K
e
w
k
x
P(y=j|x)=softmax(wx)=\frac{e^{w_jx}}{\sum_{k=1}^{K}e^{w_kx}}
P(y=j∣x)=softmax(wx)=∑k=1Kewkxewjx
当
K
=
2
,
j
=
0
/
1
K=2,j=0/1
K=2,j=0/1时,
P
(
y
=
1
∣
x
)
=
s
o
f
t
m
a
x
(
w
x
)
=
e
w
1
x
e
w
0
x
+
e
w
1
x
P(y=1|x)=softmax(wx)=\frac{e^{w_1x}}{e^{w_0x}+e^{w_1x}}
P(y=1∣x)=softmax(wx)=ew0x+ew1xew1x
而在logistic回归中
p
(
y
=
1
∣
x
)
=
s
i
g
m
o
i
d
(
w
x
)
=
1
1
+
e
−
w
x
=
e
w
x
1
+
e
w
x
p(y=1|x)=sigmoid(wx)=\frac{1}{1+e^{-wx}}=\frac{e^{wx}}{1+e^{wx}}
p(y=1∣x)=sigmoid(wx)=1+e−wx1=1+ewxewx
将logistic中的
w
w
w理解为
w
1
−
w
0
w_1-w_0
w1−w0(这里就是推广扩展的点),即可得到与softmax一致的表达式
p
(
y
=
1
∣
x
)
=
e
(
w
1
−
w
0
)
x
1
+
e
(
w
1
−
w
0
)
x
=
e
w
1
x
e
w
0
x
+
e
w
1
x
p(y=1|x)=\frac{e^{(w_1-w_0)x}}{1+e^{(w_1-w_0)x}}=\frac{e^{w_1x}}{e^{w_0x}+e^{w_1x}}
p(y=1∣x)=1+e(w1−w0)xe(w1−w0)x=ew0x+ew1xew1x
关于理解w,下面做出解释:在sigmoid(wx)中,分类为0/1的临界点是wx=0,按照softmax中的思路,
w
1
w_1
w1表达了
类别1,而
w
0
w_0
w0表达了类别0,
w
1
x
w_1x
w1x即表达了x为与类别1的相似度,那么分类临界点即应该是
w
1
x
w_1x
w1x=
w
0
x
w_0x
w0x,即
w
w
w理解为
w
1
−
w
0
w_1-w_0
w1−w0