2.2.3 Softmax输出分类
Softmax函数也称归一化指数函数或多项(Multinomial)、多类(Multi-Class)的回归。将一个含任意实数的K维向量Z压缩到一个K维实向量σ(z)中,使得向量中每一个元素的值都在(0,1)区间,且所有元素的和为1,即向量离散概率分布的梯度对数归一化。
在人工神经网络中,该函数主要用于解决多分类问题。对于多分类任务,类别标签y∈{1,2,…,K},可以有K个取值。Softmax回归预测的属于每个分类i的概率为
其中,分母充当了正则项的作用,有。
对于一个有K个神经元x的输出层,式(2-21)中的每个分类i的条件概率为
其中,wi是分类i的权重向量。
式(2-22)的向量形式表示为
其中,W=[w1,…,wK]是由K个类的权值向量组成的矩阵;1K为K维的全1向量;为所有类别的预测条件概率组成的向量,第i维的值是分类i的预测条件概率。
Softmax模型的训练过程为首先初始化W0←0,然后通过下式进行迭代更新:
其中,η是学习率;是当参数为Wt时,Softmax模型的输出。
例2.1 某个神经元网络有7个输出值,向量为[1.0,2.0,3.0,10.0,1.0,2.0,3.0]。求Softmax函数的值,并输出一个one-hot编码形式的二分类结果。
解:因为e1≈2.72,e2≈7.39,e3≈20.09,e4≈22026.47,e5≈2.72,e6≈7.39,e7≈20.09,所以有
P5≈0.00012
P6≈0.00033
P7≈0.00091
因此最后输出二分类one-hot编码形式的结果为[0,0,0,1,0,0,0]。以下为例2.1的代码实现过程。