TensorFlow知识图谱实战
上QQ阅读APP看书,第一时间看更新

1.4.3 Python代码小练习:计算softmax函数

对于Python科学计算来说,最简单的想法就是可以将数学公式直接表达成程序语言,可以说Python满足了这个想法。本小节将使用Python实现和计算一个深度学习中最为常见的函数——softmax函数。至于这个函数的作用,现在不加以说明,笔者只是带领读者尝试实现其程序的编写。

softmax计算公式如下所示:

其中,Zi是长度为L序列中的一个节点。公式的含义实际上是对每个节点计算以e为底Zi为幂指数的值,之后除以所有计算节点之和进行归一化,从而得到一个介于[0,1]之间的值,代表节点某个类别的概率,或者称作似然(Likelihood)。

提示

softmax用以解决概率计算中概率结果大而占绝对优势的问题。例如,函数计算结果中有2个值ab,且a>b,如果简单地以值的大小为单位衡量,那么在后续的使用过程中,a永远被选用,而b使用由于数值较小而不会被选择,但是有时候也需要使用数值小的b,那么softmax就可以解决这个问题。

softmax按照概率选择ab,由于a的概率值大于b,在计算时a经常会被取得,而b由于概率较小,取得的可能性也较小,但是也有概率被取得。

公式softmax的代码如下所示。

【程序1-2】

可以看到,当传入一个数列后,分别计算每个数值所对应的指数函数值,之后将其相加后计算每个数值在数值和中的概率。

结果如下所示。