恒等函数会将输入按原样输出,对于输入的信息,不加以任何改动地直接输出。因此,在输出层使用恒等函数时,输入信号会原封不动地被输出。另外,将恒等函数的处理过程用之前的神经网络图来表示的话,则如图
和前面介绍的隐藏层的激活函数一样,恒等函数进行的转换处理可以用一根箭头来表示。
softmax 函数
公式如下
exp(x) 是表示 ex 的指数函数(e 是纳皮尔常数 2.7182 …)。式(3.10)表示假设输出层共有 n 个神经元,计算第 k 个神经元的输出 yk。如式(3.10)所示,softmax 函数的分子是输入信号 ak 的指数函数,分母是所有输入信号的指数函数的和。
用图表示 softmax 函数的话,如图 3-22 所示。图 3-22 中,softmax 函数的输出通过箭头与所有的输入信号相连。这是因为,从式(3.10)可以看出,输出层的各个神经元都受到所有输入信号的影响。
def softmax(a):
c = np.max(a)
exp_a = np.exp(a - c)
# 溢出对策
sum_exp_a = np.sum(exp_a)
y = exp_a / sum_exp_a
return y
现在我们来实现 softmax 函数。在这个过程中,我们将使用 Python 解释器逐一确认结果。
a = np.array([0.3,2.9,4.0])
y = softmax(a)
print(y)
print(sum(y))
如上所示,softmax 函数的输出是 0.0 到 1.0 之间的实数。并且,softmax 函数的输出值的总和是 1。输出总和为 1 是 softmax 函数的一个重要性质。正因为有了这个性质,我们才可以把 softmax 函数的输出解释为“概率”。