通俗易懂的讲解Softmax

通俗易懂的讲解Softmax

什么是Softmax

S o f t m a x Softmax 是机器学习中很重要的分类函数。通常位于神经网络的最后一层,它的作用是将前面输出层的数据转换为概率分布,这个概率分布的特点就是:任意事件发生的概率在0-1之间,且所有事件发生的概率总和为1,并且总有一个事件会发生。
假设原始的神经网络输出为 y 1 , y 2 . . . . y n y_{1},y_{2}....y_{n} ,那么经过Softmax回归处理之后的输出如下:
S o f t m a x ( y ) i = y i = e y i j = i n e y j = e x p ( y i ) j = 1 n e x p ( y j ) Softmax(y)_{i}=y_{i}^{'}=\frac{e^{yi}}{\sum_{j=i}^{n}e^{yj}}=\frac{exp(y_{i}^{'})}{\sum_{j=1}^{n}exp(y_{j}^{'})}

上述公式解释如下:
y j y_{j} 表示输入到 S o f t m a x Softmax 之前每一个单元的值,经过 S o f t m a x Softmax 之后,这些单元的数量没有改变,数值变成了概率分布;用 i i 代表经过 S o f t m a x Softmax 之后的每一个单元; y j y_{j} 经过 S o f t m a x Softmax 之后变成 y i y_{i}^{'}

上述公式的分母相当于所有经过 S o f t m a x Softmax 转变之后的数据之和,分子是其中一个数据转变的结果。

Softmax分类过程

在这里插入图片描述
上面的过程就是 S o f t m a x Softmax 的分类过程,简单说明如下:
我们以数字识别为例:
1,数字识别问题最终是一个10分类问题(分类结果以0,1,2,3,4,5,6,7,8,9划分)
2,数据输入是一个28x28=784维的向量(假设我们分析一张图片)
3,经过神经网络的层层筛选,最终到达 S o f t m a x Softmax 这一层之前,输出是一个10维的向量
4,经过 S o f t m a x Softmax 转换为10个概率
5,由于是做数据训练,因此我们会有标签做对标
6,利用交叉熵计算这一组10个概率分类与正确标签之间的距离(相当于计算损失值)
7,反向传播更新权值直到结果符合我们要求。

以上就是Softmax的工作过程,至于公式推导过程,这里不做赘述。公式推导本身并不难,了解这个函数的用法更加实用,希望对大家有所帮助。

发布了64 篇原创文章 · 获赞 25 · 访问量 9908

猜你喜欢

转载自blog.csdn.net/LEEANG121/article/details/103133256