在后面几节【精读】中,终极君向大家引见了自然言语处理中的几个重要的基础内容。
这些内容外面都有一个异样的部分--softmax函数。
也就是各种类型的神经网络和言语模型最后输入的一个激活函数
先举个例子
在深度学习中,最常见的就是多分类成绩。
比如我们要让人工智能判别图片的内容。
判别之前我们曾经训练人工智能可以辨认小猫,小狗,小兔(3种动物)。
再让它去区分一张从未见过的新图片。
而最后的结果又是互斥的(即这张图片不能既是小猫又是小狗)
那么首先我们要建立数学的映射关系ϕ1(x)。
将我们的图片和结果(上述的3种动物)分别对应起来,那么ϕ1(x)会映射到一个3维向量(y={c1,c2,c3})当中。
向量中的每一维,都对应着一个能够的分类结果(如c1=1或0,是小猫或不是小猫)。
由于结果是互斥的,所以y存在以下n种方式:小猫=[1,0,0],小狗=[0,1,0],小兔=[0,0,1]
电脑看了这张新图片后,假设最后输入的结果为:新图片= [3,1,-3]
那么我们经过softmax的函数公式,计算得到不同类别之间的相对概率,新图片=[0.88,0.12,0]。不难发现0.88最大,也就是说这张图片是小猫的能够性最大。
概念组成
我们首先来看softmax这个词的组成:
max:从数学下去讲,有两个数a和b, 假如a>b,当取max的时分,就直接取a,没有第二种能够。
用代码表示 if a > b return a; else b
在分类成绩中(尤其是多分类成绩),这样做太相对了些。
所以我们更想用一个概率去表示分类结果,也就是说大的那个我们常常可以获得到,但是小的那个偶然也可以获得到。
这个时分softmax就派上用场了,它把分类结果映射为0-1之间的实数,并且归一化保证和为1,因此分类的概率之和也刚好为1。
那我们来看看他的定义,假设我们有一个数组V,Vi表示V中的第i个元素,那么这个元素的softmax值就是:
即该元素的对数值与一切的元素对数的和的比值
下图更笼统的展现了softmax函数的详细求解过程
好了,明天就先讲到这儿 |