Softmax 函数是什么?

Softmax 函数是一种常用的激活函数,主要用于多类别分类问题中。它将一个实数向量映射为概率分布,使得每个类别的概率值在 [0, 1] 范围内,并且所有类别的概率之和等于 1。Softmax 函数的数学表达式如下:

对于输入向量 \(\mathbf{z} = (z_1, z_2, \ldots, z_k)\),Softmax 函数的输出 $ \mathbf{p} = (p_1, p_2, \ldots, p_k) $ 计算公式为:

\[p_i = \frac{e^{z_i}}{\sum_{j=1}^{k} e^{z_j}} \]

其中,\(e\) 是自然对数的底(欧拉数),\(k\) 是类别的数量,\(z_i\) 是输入向量的第 \(i\) 个元素。


下面是一个具体的例子,假设我们有向量 \(\mathbf{z} = (1.0, 2.0, 3.0)\),我们可以计算其经过 Softmax 处理后的概率分布:

\[p_1 = \frac{e^{1.0}}{e^{1.0} + e^{2.0} + e^{3.0}} = 0.090 \]

\[p_2 = \frac{e^{2.0}}{e^{1.0} + e^{2.0} + e^{3.0}} = 0.245 \]

\[p_3 = \frac{e^{3.0}}{e^{1.0} + e^{2.0} + e^{3.0}} = 0.665 \]

这里,\(e\) 是自然对数的底,通常取值约为 2.71828 。通过计算,我们可以得到这个例子中的概率分布。请注意,Softmax 函数的输出是一个概率分布,其中每个 \(p_i\) 都在 [0, 1] 范围内,而且 \(p_1+p_2+p_3 = 1\)


Softmax 函数的主要特点是对输入进行归一化,使得输出的概率值表示输入属于每个类别的可能性。由于Softmax函数的分母包含所有类别的指数项之和,它的输出受到输入向量中每个元素的影响,即每个类别的相对大小。通常在神经网络的输出层用于进行多类别分类问题的概率估计。

Softmax 函数的应用不仅限于分类问题,它也常用于深度学习中其他任务,例如生成对抗网络(GANs)中的生成器的输出层,以及强化学习中的策略网络的输出。


相关知识:

  • 在统计学和机器学习中,归一化(Normalization)是指将数据转换为标准尺度或相对尺度的过程,以便更好地适应模型的训练和提高模型性能。归一化的目的是消除不同特征之间的尺度差异,使得所有特征都能以一致的方式对模型产生影响
posted @ 2024-02-04 09:58  茴香豆的茴  阅读(18)  评论(0编辑  收藏  举报