「精读」自然言语处理基础之softmax函数

图灵汇官网

在接下来的几节【精读】中,我们将探讨自然语言处理领域中的一些关键基础知识。

这些内容中有一个共同的重要部分——[b]softmax函数[/b]。这一函数在各种类型的神经网络和语言模型的最终输出阶段作为激活函数使用。

首先,我们可以通过一个例子来说明:

假设我们在深度学习中遇到的是一个多分类问题。例如,我们希望人工智能能够判断图片的内容。在训练过程中,我们已经教会了人工智能识别三种动物:小猫、小狗和小兔。然后,我们让它识别一张全新的、未见过的图片。最终的结果必须是互斥的,即这张图片不能同时被识别为小猫和小狗。

为了建立这种映射关系,我们使用一个函数ϕ1(x),将图片与可能的结果(即这三种动物)一一对应。这样,ϕ1(x)会映射到一个三维向量(y={c1,c2,c3})。向量中的每个维度代表一种分类结果(如c1=1或0,表示是否为小猫)。

由于结果是互斥的,y可以有以下几种形式:[b]小猫=[1,0,0],小狗=[0,1,0],小兔=[0,0,1][/b]。

假设计算机对这张新图片的输出结果为:[b]新图片= [3,1,-3][/b]。通过softmax函数的计算,我们可以得出不同类别的相对概率,新图片=[b][0.88,0.12,0][/b]。很明显,0.88最大,这意味着这张图片最有可能是小猫。

接下来,我们来了解一下softmax的概念及其组成部分:

“softmax”这个词由两部分组成:“max”和“soft”。从数学的角度来看,“max”意味着在两个数a和b中选择较大的一个。用代码表示就是:if a > b return a; else b。但在分类问题中,尤其是多分类问题中,这种方法显得过于绝对。因此,我们希望通过概率来表示分类结果,即较大的值更常见,但较小的值也有一定的可能性。

这时,softmax函数便发挥了作用。它将分类结果映射到0到1之间的实数区间,并且所有结果的和为1,从而保证了分类的概率之和也为1。

softmax函数的定义如下:假设我们有一个数组V,其中Vi表示V中的第i个元素,则该元素的softmax值为:

[ text{softmax}(Vi) = frac{e^{Vi}}{sum{j} e^{Vj}} ]

这个公式表示的是该元素的指数与所有元素指数之和的比例。

下图更直观地展示了softmax函数的具体求解过程:

通过以上介绍,我们可以看到softmax函数在多分类问题中的重要作用。

本文来源: 图灵汇 文章作者: 三言财经