关于sigmoid和softmax
- sigmoid和softmax是神经网络输出层使用的激活函数,分别用于两类判别和多类判别。binary cross-entropy和categorical cross-entropy是相对应的损失函数。
- 两个函数的主要目的是对神经网络的输出logits值转化为概率。
- 下文的logits值由 z i z_i zi表示
- 我们这里主要讨论两个问题,为什么这两个函数 z i z_i zi越大,概率越大呢
sigmoid函数
f ( z ) = 1 1 + e x p ( − z ) = ( 1 + e x p ( − z ) ) − 1 f(z) = \frac {1} {1+exp(-z)} = {(1+exp(-z))}^{-1} f(z)=1+exp(−z)1=(1+exp(−z))−1
即二分类概率 p = f ( z ) p = f(z) p=f(z)
由此, p p p表示的是概率,故 p ∈ ( 0 , 1 ) p\in (0,1) p∈(0,1),其导数也是大于零的,对 z z z越大明显有 p p p越大
softmax函数
P k = e x p ( z k ) ∑ i e x p ( z i ) {P}_{k}=\frac {exp({z}_{k})} {\sum _{i} {exp({z}_{i})}} Pk=∑iexp(zi)exp(zk)
对于一个序列 [ z 1 , . . . , z k , . . . , z n ] [{z}_{1},...,{z}_{k},...,{z}_{n}] [z1,...,zk,...,zn]表示神经网络的输出logits值
将其转换为概率序列 [ p 1 , . . . , p k , . . . , p n ] [{p}_{1},...,{p}_{k},...,{p}_{n}] [p1,...,pk,...,pn],从softmax公式上可以看出,本质上是做一个归一化。
由上图可以看出 z k {z}_{k} zk越大 p k {p}_{k} pk越大// z j {z}_{j} zj越大 p k {p}_{k} pk越小