二分类的激活函数通常选择sigmoid或者softmax函数,对于二分类的问题,sigmoid函数和softmax函数可以等价
首先记隐层的输出为h。
如果使用sigmoid的话,输出层有一个结点,值为
θ
h
\theta h
θh。然后类别1,2的预测概率分别为:
p
1
=
s
i
g
m
o
i
d
(
θ
h
)
=
1
1
+
e
−
θ
h
p_{1} = sigmoid(\theta h) = \frac{1}{1+e^{-\theta h}}
p1=sigmoid(θh)=1+e−θh1
p
2
=
1
−
s
i
g
m
o
i
d
(
θ
h
)
=
1
1
+
e
θ
h
p_{2} = 1-sigmoid(\theta h) = \frac{1}{1+e^{\theta h}}
p2=1−sigmoid(θh)=1+eθh1
这里面的
θ
\theta
θ相等于softmax层之中的一个权重参数。
而如果使用softmax,输出层有两个结点,值分别是
θ
1
h
\theta_{1}h
θ1h与
θ
2
h
\theta_{2}h
θ2h,然后类别1,2的预测概率分别为
p
1
=
e
θ
1
h
e
θ
1
h
+
e
θ
2
h
=
1
1
+
e
(
θ
2
−
θ
1
)
h
p_{1} = \frac{e^{\theta_{1}h}}{e^{\theta_{1}h}+e^{\theta_{2}h}} = \frac{1}{1+e^{(\theta_{2}-\theta_{1})h}}
p1=eθ1h+eθ2heθ1h=1+e(θ2−θ1)h1
p
2
=
e
θ
2
h
e
θ
1
h
+
e
θ
2
h
=
1
1
+
e
(
θ
1
−
θ
2
)
h
p_{2} = \frac{e^{\theta_{2}h}}{e^{\theta_{1}h}+e^{\theta_{2}h}} = \frac{1}{1+e^{(\theta_{1}-\theta_{2})h}}
p2=eθ1h+eθ2heθ2h=1+e(θ1−θ2)h1
这里面的
θ
1
\theta_{1}
θ1和
θ
2
\theta_{2}
θ2相当于softmax网络之中的两个权重参数
可以看到,sigmoid网络中的
θ
\theta
θ与softmax网络中的
(
θ
1
−
θ
2
)
(\theta_{1}-\theta_{2})
(θ1−θ2)是等价的。也就是说,不管sigmoid网络能产生什么样的预测,也一定存在softmax网络能产生相同的预测,只要令
θ
1
−
θ
2
=
θ
\theta_{1}-\theta_{2} = \theta
θ1−θ2=θ即可。
所以softmax网络的训练过程可以看作是在直接优化
θ
1
−
θ
2
\theta_{1}-\theta_{2}
θ1−θ2,优化结果和sigmoid应该没什么差异。所以我自己在做的时候会直接用softmax,这样也比较方便改成多分类模型。