通俗易懂的讲解Softmax
什么是Softmax
是机器学习中很重要的分类函数。通常位于神经网络的最后一层,它的作用是将前面输出层的数据转换为概率分布,这个概率分布的特点就是:任意事件发生的概率在0-1之间,且所有事件发生的概率总和为1,并且总有一个事件会发生。
假设原始的神经网络输出为
,那么经过Softmax回归处理之后的输出如下:
上述公式解释如下:
表示输入到
之前每一个单元的值,经过
之后,这些单元的数量没有改变,数值变成了概率分布;用
代表经过
之后的每一个单元;
经过
之后变成
上述公式的分母相当于所有经过 转变之后的数据之和,分子是其中一个数据转变的结果。
Softmax分类过程
上面的过程就是
的分类过程,简单说明如下:
我们以数字识别为例:
1,数字识别问题最终是一个10分类问题(分类结果以0,1,2,3,4,5,6,7,8,9划分)
2,数据输入是一个28x28=784维的向量(假设我们分析一张图片)
3,经过神经网络的层层筛选,最终到达
这一层之前,输出是一个10维的向量
4,经过
转换为10个概率
5,由于是做数据训练,因此我们会有标签做对标
6,利用交叉熵计算这一组10个概率分类与正确标签之间的距离(相当于计算损失值)
7,反向传播更新权值直到结果符合我们要求。
以上就是Softmax的工作过程,至于公式推导过程,这里不做赘述。公式推导本身并不难,了解这个函数的用法更加实用,希望对大家有所帮助。